grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add support for specifying the boot device by label


From: Oskari Pirhonen
Subject: Re: [PATCH] Add support for specifying the boot device by label
Date: Sun, 10 Sep 2023 16:12:44 -0500

On Sun, Sep 10, 2023 at 09:30:24 +0000, darkpenguin wrote:
> Specifying the boot device by its label rather than its UUID can be
> pretty useful in various situations (e.g. multiple test VMs).
> 
> This might have to be adapted a little to meet the coding standards I'm
> not familiar with. Please feel free to improve it in any way you want.
> 
> This patch works for me on an older version of grub2 (=2.06-13 in Debian
> Bookworm), but it's rather trivial, and only touches two parts that are
> otherwise untouched for ages.
> 
> - Specify "GRUB_DISABLE_LINUX_UUID=LABEL" in /etc/default/grub
> - It will attempt to use a label instead of UUID
> - If a device with the necessary label is not found in
> /dev/disk/by-label/ , it falls back to using UUID
> - If you just assigned new labels, run 'partprobe' to populate
> /dev/disk/by-label/ properly
> 
> The decision to reuse GRUB_DISABLE_LINUX_UUID was because:
> 1) This is more of an addition on top of UUID rather than "disabling"
> it, it still uses UUID internally, and it falls back to UUID
> 2) I could not come up with a better way to do it

I'm not a fan of overloading a "disable" var to mean "try something else
first". Something like GRUB_DISABLE_LINUX_LABEL with the appropriate
logic would make more sense IMO.

> 3) I could not figure out how to source other variables from
> /etc/defaults/grub and why not all of them are there. :)
> 

This looks to be in util/grub-mkconfig.in (lines 160-162 in git master
at the time of writing):

    if test -f ${sysconfdir}/default/grub ; then
      . ${sysconfdir}/default/grub
    fi

The vars then get exported further down (lines 213-258) before running
the various config snippets:

    # These are optional, user-defined variables.
    export GRUB_DEFAULT \
      GRUB_HIDDEN_TIMEOUT \
      GRUB_HIDDEN_TIMEOUT_QUIET \
      GRUB_TIMEOUT \
      GRUB_TIMEOUT_STYLE \
      GRUB_DEFAULT_BUTTON \
    # ... snip ...

Hope that helps.

- Oskari

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]