[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3] Add GRUB_DISABLE_UUID
From: |
Javier Martinez Canillas |
Subject: |
Re: [PATCH v3] Add GRUB_DISABLE_UUID |
Date: |
Wed, 23 Oct 2019 15:25:51 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 |
On 10/23/19 10:55 AM, Daniel Kiper wrote:
> Adding Nicholas...
>
I thought that updated my CC list adding him but that wasn't the case...
> On Tue, Oct 22, 2019 at 10:44:28AM +0200, Javier Martinez Canillas wrote:
>> From: Peter Jones <address@hidden>
>>
>> The grub-mkconfig and 10_linux scripts by default attempt to use a UUID to
>> set the root kernel command line parameter and the $root GRUB environment
>> variable.
>>
>> The former can be disabled by setting the GRUB_DISABLE_LINUX_UUID variable
>> to "true", but there is currently no way to disable the latter.
>>
>> The generated grub config uses the search command with the --fs-uuid option
>> to find the device that has to be set as $root, i.e:
>>
>> search --no-floppy --fs-uuid --set=root ...
>>
>> This is usually more reliable but in some cases it may not be appropriate,
>> so this patch introduces a new GRUB_DISABLE_UUID variable that can be used
>> to disable searching for the $root device by filesystem UUID.
>>
>> When disabled, the $root device will be set to the value specified in the
>> device.map as found by the grub-probe --target=compatibility_hint option.
>>
>> When setting GRUB_DISABLE_UUID=true, the GRUB_DISABLE_LINUX_UUID and
>> GRUB_DISABLE_LINUX_PARTUUID variables will also be set to "true" unless
>> these have been explicitly set to "false".
>>
>> That way, the GRUB_DISABLE_UUID variable can be used to force using the
>> device names for both GRUB and Linux.
>>
>> Signed-off-by: Peter Jones <address@hidden>
>> Signed-off-by: Javier Martinez Canillas <address@hidden>
>> Reviewed-by: Daniel Kiper <address@hidden>
>
> Nicholas, are you OK with that patch right now? If yes and you could
> add your RB that would be perfect.
>
>> ---
>>
>> Changes in v3:
>> - Make the patch more consistent with the logic in commit 51be3372ec8
>> ("templates: Update grub script template files").
>> - Add Reviewed-by tag from Daniel Kiper.
>>
>> Changes in v2:
>> - Explain better in the commit message why the GRUB_DISABLE_UUID variable
>> is needed and the difference with the existing GRUB_DISABLE_LINUX_UUID/
>> GRUB_DISABLE_LINUX_PARTUUID variables.
>> - Remove logic that disabled setting the root cmdline param to either the
>> filesystem UUID or partition UUID and instead use the existing variables
>> to disable this.
>>
>> docs/grub.texi | 9 +++++++++
>> util/grub-mkconfig.in | 10 ++++++++++
>> util/grub-mkconfig_lib.in | 4 ++--
>> 3 files changed, 21 insertions(+), 2 deletions(-)
>>
>> diff --git a/docs/grub.texi b/docs/grub.texi
>> index d788efe440f..c25ab7a5fe7 100644
>> --- a/docs/grub.texi
>> +++ b/docs/grub.texi
>> @@ -1441,6 +1441,15 @@ enable the use of partition UUIDs, set this option to
>> @samp{false}.
>> 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}. Setting this option to @samp{true}, will also set the options
>> +@samp{GRUB_DISABLE_LINUX_UUID} and @samp{GRUB_DISABLE_LINUX_PARTUUID} to
>> +@samp{true}, unless they have been explicilty set to @samp{false}.
>> +
>> @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 a6ce375ed18..fb7fd4902f4 100644
>> --- a/util/grub-mkconfig.in
>> +++ b/util/grub-mkconfig.in
>> @@ -158,6 +158,15 @@ if test -f ${sysconfdir}/default/grub ; then
>> . ${sysconfdir}/default/grub
>> fi
>>
>> +if [ "x${GRUB_DISABLE_UUID}" = "xtrue" ]; then
>> + if [ -z "${GRUB_DISABLE_LINUX_UUID}" ]; then
>> + GRUB_DISABLE_LINUX_UUID="true"
>> + fi
>> + if [ -z "${GRUB_DISABLE_LINUX_PARTUUID}" ]; then
>> + GRUB_DISABLE_LINUX_PARTUUID="true"
>> + fi
>> +fi
>> +
>> # XXX: should this be deprecated at some point?
>> if [ "x${GRUB_TERMINAL}" != "x" ] ; then
>> GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}"
>> @@ -227,6 +236,7 @@ export GRUB_DEFAULT \
>> GRUB_DISABLE_LINUX_UUID \
>> GRUB_DISABLE_LINUX_PARTUUID \
>> GRUB_DISABLE_RECOVERY \
>> + GRUB_DISABLE_UUID \
>
> I will move this before GRUB_DISABLE_LINUX_UUID before committing.
> I hope this is not a problem for you.
>
Yes, I'm OK with that. Thanks.
> Daniel
>
Best regards,
--
Javier Martinez Canillas
Software Engineer - Desktop Hardware Enablement
Red Hat