2009-06-04 Felix Zielcke
* util/i386/pc/grub-install.in: Add a parameter --disk-module.
diff --git a/util/i386/pc/grub-install.in b/util/i386/pc/grub-install.in
index 468a72e..7033477 100644
--- a/util/i386/pc/grub-install.in
+++ b/util/i386/pc/grub-install.in
@@ -49,6 +49,12 @@ force_lba=
recheck=no
debug=no
+if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+ disk_module=biosdisk
+else
+ disk_module=ata
+fi
+
# Usage: usage
# Print the usage.
usage () {
@@ -68,6 +74,13 @@ Install GRUB on your drive.
--no-floppy do not probe any floppy drive
--recheck probe a device map even if it already exists
--force install even if problems are detected
+EOF
+if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+ cat < /dev/nul
devabstraction_module=`$grub_probe --target=abstraction --device ${grub_device}`
# The order in this list is critical. Be careful when modifying it.
-if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
- modules="$modules biosdisk"
-else
- modules="$modules ata"
-fi
+modules="$modules $disk_module"
modules="$modules $fs_module $partmap_module $devabstraction_module"
prefix_drive=
@@ -269,11 +278,11 @@ if [ "x${devabstraction_module}" = "x" ] ; then
# Strip partition number
install_drive="`echo ${install_drive} | sed -e s/,[0-9]*[a-z]*//g`"
grub_drive="`echo ${grub_drive} | sed -e s/,[0-9]*[a-z]*//g`"
- if [ "${target_cpu}-${platform}" != "i386-pc" ] ; then
- # generic method (used on coreboot)
+ if [ "$disk_module" = ata ] ; then
+ # generic method (used on coreboot and ata mod)
uuid="`$grub_probe --target=fs_uuid --device ${grub_device}`"
if [ "x${uuid}" = "x" ] ; then
- echo "UUID needed on this platform, but the filesystem containing ${grubdir} does not support UUIDs." 1>&2
+ echo "UUID needed on this platform and with ata mod, but the filesystem containing ${grubdir} does not support UUIDs." 1>&2
exit 1
fi
prefix_drive="(UUID=${uuid})"