You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
4.1 KiB
99 lines
4.1 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Peter Jones <pjones@redhat.com> |
|
Date: Thu, 4 Sep 2014 16:49:25 -0400 |
|
Subject: [PATCH] Add GRUB_DISABLE_UUID. |
|
|
|
This will cause "search --fs-uuid --set=root ..." not to be generated by |
|
grub2-mkconfig, and instead simply attempt to use the grub device name |
|
as it understands it. |
|
|
|
Good luck. |
|
|
|
Resolves: rhbz#1027833 |
|
Signed-off-by: Peter Jones <pjones@redhat.com> |
|
--- |
|
docs/grub.texi | 7 +++++++ |
|
util/grub-mkconfig.in | 12 ++++++++++-- |
|
util/grub-mkconfig_lib.in | 4 ++-- |
|
3 files changed, 19 insertions(+), 4 deletions(-) |
|
|
|
diff --git a/docs/grub.texi b/docs/grub.texi |
|
index 46b9e7f8e31..6b112c18804 100644 |
|
--- a/docs/grub.texi |
|
+++ b/docs/grub.texi |
|
@@ -1409,6 +1409,13 @@ disable the use of UUIDs, set this option to @samp{true}. |
|
If this option is set to @samp{true}, disable the generation of recovery |
|
mode menu entries. |
|
|
|
+@item GRUB_DISABLE_UUID |
|
+Normally, @command{grub-mkconfig} will generate menu entries that use |
|
+universally-unique identifiers (UUIDs) to identify various filesystems to |
|
+search for files. This is usually more reliable, but in some cases it may |
|
+not be appropriate. To disable this use of UUIDs, set this option to |
|
+@samp{true}. |
|
+ |
|
@item GRUB_VIDEO_BACKEND |
|
If graphical video support is required, either because the @samp{gfxterm} |
|
graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set, |
|
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in |
|
index beb22deee79..bc26e7c109e 100644 |
|
--- a/util/grub-mkconfig.in |
|
+++ b/util/grub-mkconfig.in |
|
@@ -130,11 +130,11 @@ fi |
|
|
|
# Device containing our userland. Typically used for root= parameter. |
|
GRUB_DEVICE="`${grub_probe} --target=device /`" |
|
-GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true |
|
+GRUB_DEVICE_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true |
|
|
|
# Device containing our /boot partition. Usually the same as GRUB_DEVICE. |
|
GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" |
|
-GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true |
|
+GRUB_DEVICE_BOOT_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true |
|
|
|
# Filesystem for the device containing our userland. Used for stuff like |
|
# choosing Hurd filesystem module. |
|
@@ -148,6 +148,13 @@ if test -f ${sysconfdir}/default/grub ; then |
|
. ${sysconfdir}/default/grub |
|
fi |
|
|
|
+if [ "x$GRUB_DISABLE_UUID" != "xtrue" -a -z "$GRUB_DEVICE_UUID" ]; then |
|
+ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" |
|
+fi |
|
+if [ "x$GRUB_DISABLE_UUID" != "xtrue" -a -z "$GRUB_DEVICE_BOOT_UUID" ]; then |
|
+ GRUB_DEVICE_BOOT_UUID="$GRUB_DEVICE_BOOT_UUID_GENERATED" |
|
+fi |
|
+ |
|
# XXX: should this be deprecated at some point? |
|
if [ "x${GRUB_TERMINAL}" != "x" ] ; then |
|
GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}" |
|
@@ -213,6 +220,7 @@ export GRUB_DEFAULT \ |
|
GRUB_SERIAL_COMMAND \ |
|
GRUB_DISABLE_LINUX_UUID \ |
|
GRUB_DISABLE_RECOVERY \ |
|
+ GRUB_DISABLE_UUID \ |
|
GRUB_VIDEO_BACKEND \ |
|
GRUB_GFXMODE \ |
|
GRUB_BACKGROUND \ |
|
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in |
|
index 7ac0bbed0d3..5c9ed84a5e7 100644 |
|
--- a/util/grub-mkconfig_lib.in |
|
+++ b/util/grub-mkconfig_lib.in |
|
@@ -156,7 +156,7 @@ prepare_grub_to_access_device () |
|
if [ "x$fs_hint" != x ]; then |
|
echo "set root='$fs_hint'" |
|
fi |
|
- if fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then |
|
+ if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && 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}" |
|
@@ -173,7 +173,7 @@ grub_get_device_id () |
|
IFS=' |
|
' |
|
device="$1" |
|
- if fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then |
|
+ if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then |
|
echo "$fs_uuid"; |
|
else |
|
echo $device |sed 's, ,_,g'
|
|
|