From a4a74e06ccc7868c9dd3a5da8c24d7244fdae50e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 24 Mar 2013 13:11:19 +0100 Subject: [PATCH 229/471] * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix handling of multi-device filesystems. --- ChangeLog | 5 +++++ util/grub-mkconfig_lib.in | 16 +++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6fab49f..4df000e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2013-03-24 Vladimir Serbinenko + * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix + handling of multi-device filesystems. + +2013-03-24 Vladimir Serbinenko + * grub-core/Makefile.core.def (vbe): Disable on coreboot and multiboot platforms. diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in index e560dd7..b48e2af 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -115,9 +115,7 @@ EOF prepare_grub_to_access_device () { - device="$1" - - partmap="`"${grub_probe}" --device "${device}" --target=partmap`" + partmap="`"${grub_probe}" --device "$@" --target=partmap`" for module in ${partmap} ; do case "${module}" in netbsd | openbsd) @@ -128,30 +126,30 @@ prepare_grub_to_access_device () done # Abstraction modules aren't auto-loaded. - abstraction="`"${grub_probe}" --device "${device}" --target=abstraction`" + abstraction="`"${grub_probe}" --device "$@" --target=abstraction`" for module in ${abstraction} ; do echo "insmod ${module}" done - fs="`"${grub_probe}" --device "${device}" --target=fs`" + fs="`"${grub_probe}" --device "$@" --target=fs`" for module in ${fs} ; do echo "insmod ${module}" done if [ x$GRUB_CRYPTODISK_ENABLE = xy ]; then - for uuid in "`"${grub_probe}" --device "${device}" --target=cryptodisk_uuid`"; do + for uuid in "`"${grub_probe}" --device "$@" --target=cryptodisk_uuid`"; do echo "cryptomount -u $uuid" done fi # If there's a filesystem UUID that GRUB is capable of identifying, use it; # otherwise set root as per value in device.map. - fs_hint="`"${grub_probe}" --device "${device}" --target=compatibility_hint`" + fs_hint="`"${grub_probe}" --device "$@" --target=compatibility_hint`" if [ "x$fs_hint" != x ]; then echo "set root='$fs_hint'" fi - if fs_uuid="`"${grub_probe}" --device "${device}" --target=fs_uuid 2> /dev/null`" ; then - hints="`"${grub_probe}" --device "${device}" --target=hints_string 2> /dev/null`" || hints= + if fs_uuid="`"${grub_probe}" --device "$@" --target=fs_uuid 2> /dev/null`" ; then + hints="`"${grub_probe}" --device "$@" --target=hints_string 2> /dev/null`" || hints= echo "if [ x\$feature_platform_search_hint = xy ]; then" echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" echo "else" -- 1.8.2.1