[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [GRUB PARTUUID PATCH V10 4/4] Update grub script template files
From: |
Daniel Kiper |
Subject: |
Re: [GRUB PARTUUID PATCH V10 4/4] Update grub script template files |
Date: |
Tue, 17 Apr 2018 15:36:40 +0200 |
User-agent: |
Mutt/1.3.28i |
On Mon, Apr 16, 2018 at 10:36:26PM -0700, Nicholas Vinson wrote:
> 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
>
> Note: GRUB_DISABLE_LINUX_PARTUUID and GRUB_DISABLE_LINUX_UUID equate to
> 'false' when unset or set to any value other than 'true'.
> GRUB_DISABLE_LINUX_PARTUUID defaults to 'true'.
> Signed-off-by: Nicholas Vinson <address@hidden>
> ---
> docs/grub.texi | 67 ++++++++++++++++++++++++++++++++++---
> util/grub-mkconfig.in | 3 ++
> util/grub.d/10_linux.in | 22 ++++++++++--
> util/grub.d/20_linux_xen.in | 22 ++++++++++--
> 4 files changed, 104 insertions(+), 10 deletions(-)
>
> diff --git a/docs/grub.texi b/docs/grub.texi
> index 0f2ab91fc..6aa65552f 100644
> --- a/docs/grub.texi
> +++ b/docs/grub.texi
> @@ -1214,10 +1214,11 @@ GRUB is configured using @file{grub.cfg}, usually
> located under
> need to write the whole thing by hand.
>
> @menu
> -* Simple configuration:: Recommended for most users
> -* Shell-like scripting:: For power users and developers
> -* Multi-boot manual config:: For non-standard multi-OS scenarios
> -* Embedded configuration:: Embedding a configuration file into GRUB
> +* Simple configuration:: Recommended for most users
> +* Root Identifcation Heuristics:: Summary on how the root file system is
> identified.
> +* Shell-like scripting:: For power users and developers
> +* Multi-boot manual config:: For non-standard multi-OS scenarios
> +* Embedded configuration:: Embedding a configuration file into GRUB
> @end menu
>
>
> @@ -1425,6 +1426,17 @@ 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} can 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 @samp{GRUB_DISABLE_LINUX_PARTUUID} is set to
> address@hidden, the Linux kernel version must be 2.6.37 (3.10 for systems
> using
> +the MSDOS partition scheme) or newer. This option defaults to @samp{true}.
> To
> +enable the use of partition UUIDs, set this option to @samp{false}.
> +
> @item GRUB_DISABLE_RECOVERY
> If this option is set to @samp{true}, disable the generation of recovery
> mode menu entries.
> @@ -1556,6 +1568,53 @@ edit the scripts in @file{/etc/grub.d} directly.
> menu entries; simply type the menu entries you want to add at the end of
> that file, making sure to leave at least the first two lines intact.
>
> address@hidden Root Identifcation Heuristics
> address@hidden Root Identifcation Heuristics
> +If the target operating system uses the Linux kernel, @command{grub-mkconfig}
> +attempts to identify the root file system via a heuristic algoirthm. This
> +algorithm selects the identification method of the root file system by
> +considering three factors. The first is if an initrd for the target
> operating
> +system is also present. The second is @samp{GRUB_DISABLE_LINUX_UUID} and if
> set
> +to @samp{true}, prevents @command{grub-mkconfig} from identifying the root
> file
> +system by its UUID. The third is @samp{GRUB_DISABLE_LINUX_PARTUUID} and if
> set
> +to @samp{true}, prevents @command{grub-mkconfig} from identifying the root
> file
> +system via the UUID of its enclosing partition. If the variables are
> assigned
> +any other value, that value is considered equivalent to @samp{false}. The
> +variables are also considered to be set to @samp{false} if they are not set.
> +
> +When booting, the Linux kernel will delegate the task of mounting the root
> +filesystem to the initrd. Most initrd images determine the root file system
> by
> +checking the Linux kernel's command-line for the @samp{root} key and use its
> +value as the identification method of the root file system. To improve the
> +reliability of booting, most initrd images also allow the root file system
> to be
> +identified by its UUID. Because of this behavior, the
> @command{grub-mkconfig}
> +command will set @samp{root} to @samp{root=UUID=...} to provide the initrd
> with
> +the filesystem UUID of the root file system.
> +
> +If no initrd is detected or @samp{GRUB_DISABLE_LINUX_UUID} is set then
s/set/set to @samp{true}/?
> address@hidden will identify the root filesystem by setting the kernel
> +command-line variable @samp{root} to @samp{root=PARTUUID=...} unless
> address@hidden is also set to @samp{true}. If
> address@hidden is also set to @samp{true},
> address@hidden will identify by its LInux device name.
s/LInux/Linux/g
> +
> +The following table summarizes the behavior of the @command{grub-mkconfig}
> +command.
> +
> address@hidden {detected} {GRUB_DISABLE_LINUX_PARTUUID}
> {GRUB_DISABLE_LINUX_UUID} {Linux Root}
> address@hidden Initrd detected @tab GRUB_DISABLE_LINUX_PARTUUID Set To @tab
> GRUB_DISABLE_LINUX_UUID Set To @tab Linux Root ID Method
> address@hidden false @tab false @tab false
> @tab part UUID
> address@hidden false @tab false @tab true
> @tab part UUID
I hope that you have tested these two settings and they work. If yes then
I am happy with all the patches. If there are no objections I will commit
all of them in a week or so. I will fix both nitpicks listed above just
before commit.
Daniel