diff --git a/ChangeLog b/ChangeLog index 476a09776..d230581d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-05-30 Robert Millan + + * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable. + * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and + GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as + the `root' parameter to Linux. + 2008-05-30 Robert Millan * commands/search.c (options): Rename --fs_uuid to --fs-uuid. diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in index e57f3e1a2..9aac6327b 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -27,6 +27,12 @@ else OS="${GRUB_DISTRIBUTOR} GNU/Linux" fi +if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] ; then + LINUX_ROOT_DEVICE=${GRUB_DEVICE} +else + LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} +fi + test_numeric () { local a=$1 @@ -105,7 +111,7 @@ while [ "x$list" != "x" ] ; do cat << EOF menuentry "${OS}, linux ${version}" { - linux ${rel_dirname}/${basename} root=${GRUB_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} + linux ${rel_dirname}/${basename} root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} EOF if test -n "${initrd}" ; then cat << EOF @@ -118,7 +124,7 @@ EOF cat << EOF menuentry "${OS}, linux ${version} (single-user mode)" { - linux ${rel_dirname}/${basename} root=${GRUB_DEVICE} ro single ${GRUB_CMDLINE_LINUX} + linux ${rel_dirname}/${basename} root=${LINUX_ROOT_DEVICE} ro single ${GRUB_CMDLINE_LINUX} EOF if test -n "${initrd}" ; then cat << EOF diff --git a/util/update-grub.in b/util/update-grub.in index f34ad9e17..9296e7336 100644 --- a/util/update-grub.in +++ b/util/update-grub.in @@ -152,7 +152,7 @@ esac export GRUB_DEVICE GRUB_DEVICE_UUID GRUB_DEVICE_BOOT GRUB_DEVICE_BOOT_UUID GRUB_FS GRUB_FONT_PATH GRUB_PRELOAD_MODULES # These are optional, user-defined variables. -export GRUB_DEFAULT GRUB_TIMEOUT GRUB_DISTRIBUTOR GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX_DEFAULT GRUB_TERMINAL GRUB_SERIAL_COMMAND +export GRUB_DEFAULT GRUB_TIMEOUT GRUB_DISTRIBUTOR GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX_DEFAULT GRUB_TERMINAL GRUB_SERIAL_COMMAND GRUB_DISABLE_LINUX_UUID exec > ${grub_cfg}.new