[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GRUB PARTUUID PATCH V9 4/5] Update grub script template files
From: |
Nicholas Vinson |
Subject: |
[GRUB PARTUUID PATCH V9 4/5] Update grub script template files |
Date: |
Sat, 7 Apr 2018 16:28:13 -0700 |
Update grub-mkconfig.in and 10_linux.in to support grub-probe's new
partuuid target. Update grub.texi documentation. The following table
shows how GRUB_DISABLE_LINUX_UUID, GRUB_DISABLE_LINUX_PARTUUID, and
initramfs detection interact:
Initramfs GRUB_DISABLE_LINUX_PARTUUID GRUB_DISABLE_LINUX_UUID Linux Root
detected Set Set ID Method
False False False part UUID
False False True part UUID
False True False dev name
False True True dev name
True False False fs UUID
True False True part UUID
True True False fs UUID
True True True dev name
Signed-off-by: Nicholas Vinson <address@hidden>
---
docs/grub.texi | 10 ++++++++++
util/grub-mkconfig.in | 3 +++
util/grub.d/10_linux.in | 18 +++++++++++++++---
3 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/docs/grub.texi b/docs/grub.texi
index 65b4bbeda..06f0afe45 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -1424,6 +1424,16 @@ the Linux kernel, using a @samp{root=UUID=...} kernel
parameter. This is
usually more reliable, but in some cases it may not be appropriate. To
disable the use of UUIDs, set this option to @samp{true}.
address@hidden GRUB_DISABLE_LINUX_PARTUUID
+If @command{grub-mkconfig} cannot identify the root filesystem via its
+universally-unique indentifier (UUID), @command{grub-mkconfig} will use the
UUID
+of the partition containing the filesystem to identify the root filesystem to
+the Linux kernel via a @samp{root=PARTUUID=...} kernel parameter. This is not
+as reliable as using the filesystem UUID, but is more reliable than using the
+Linux device names. When enabled, this option requires the Linux kernel
version
+to be greater than 2.6.37 (3.10 for systems using the MSDOS partition scheme)
or
+newer. To disable the use of partition UUIDs, set this option to @samp{true}.
+
@item GRUB_DISABLE_RECOVERY
If this option is set to @samp{true}, disable the generation of recovery
mode menu entries.
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index 35ef583b0..33332360e 100644
--- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in
@@ -134,6 +134,7 @@ 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_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid
2> /dev/null`" || true
# Device containing our /boot partition. Usually the same as GRUB_DEVICE.
GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`"
@@ -188,6 +189,7 @@ if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then
GRUB_ACTUAL_DEFAULT="`"${grub
# override them.
export GRUB_DEVICE \
GRUB_DEVICE_UUID \
+ GRUB_DEVICE_PARTUUID \
GRUB_DEVICE_BOOT \
GRUB_DEVICE_BOOT_UUID \
GRUB_FS \
@@ -223,6 +225,7 @@ export GRUB_DEFAULT \
GRUB_TERMINAL_OUTPUT \
GRUB_SERIAL_COMMAND \
GRUB_DISABLE_LINUX_UUID \
+ GRUB_DISABLE_LINUX_PARTUUID \
GRUB_DISABLE_RECOVERY \
GRUB_VIDEO_BACKEND \
GRUB_GFXMODE \
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index faedf74e1..6916f1841 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -45,10 +45,16 @@ esac
# btrfs may reside on multiple devices. We cannot pass them as value of root=
parameter
# and mounting btrfs requires user space scanning, so force UUID in this case.
-if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" =
"xtrue" ] \
- || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
+if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ) \
+ || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
+ && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \
+ || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
+ && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \
|| ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm );
then
LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \
+ || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then
+ LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID}
else
LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
fi
@@ -242,7 +248,13 @@ while [ "x$list" != "x" ] ; do
if test -z "${initramfs}" && test -z "${initrd_real}" ; then
# "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's
# no initrd or builtin initramfs, it can't work here.
- linux_root_device_thisversion=${GRUB_DEVICE}
+ if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \
+ || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then
+
+ linux_root_device_thisversion=${GRUB_DEVICE}
+ else
+ linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID}
+ fi
fi
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
--
2.16.3
- [GRUB PARTUUID PATCH V9 0/5] Add PARTUUID detection support, Nicholas Vinson, 2018/04/07
- [GRUB PARTUUID PATCH V9 1/5] Centralize guid prints, Nicholas Vinson, 2018/04/07
- [GRUB PARTUUID PATCH V9 2/5] Update grub_gpt_partentry, Nicholas Vinson, 2018/04/07
- [GRUB PARTUUID PATCH V9 3/5] Add PARTUUID detection support to grub-probe, Nicholas Vinson, 2018/04/07
- [GRUB PARTUUID PATCH V9 5/5] Default to disabling partition UUID support, Nicholas Vinson, 2018/04/07
- [GRUB PARTUUID PATCH V9 4/5] Update grub script template files,
Nicholas Vinson <=
- Re: [GRUB PARTUUID PATCH V9 4/5] Update grub script template files, Daniel Kiper, 2018/04/10
- Re: [GRUB PARTUUID PATCH V9 4/5] Update grub script template files, Nick Vinson, 2018/04/10
- Re: [GRUB PARTUUID PATCH V9 4/5] Update grub script template files, Daniel Kiper, 2018/04/11
- Re: [GRUB PARTUUID PATCH V9 4/5] Update grub script template files, Nick Vinson, 2018/04/11
- Re: [GRUB PARTUUID PATCH V9 4/5] Update grub script template files, Daniel Kiper, 2018/04/16
- Re: [GRUB PARTUUID PATCH V9 4/5] Update grub script template files, Nick Vinson, 2018/04/17
- Re: [GRUB PARTUUID PATCH V9 0/5] Add PARTUUID detection support, Daniel Kiper, 2018/04/10