[Bug 1800722] [NEW] EFI booting + /boot on LVM == inaccessible boot menu

Steve Langasek steve.langasek at canonical.com
Tue Oct 30 20:38:32 UTC 2018


Public bug reported:

Because EFI does not support instantaneous read of modifier keys (i.e.
holding down shift at boot), the only way to reliably show a boot menu
is by letting the system boot, interrupting the boot, and letting the
menu be displayed because 'recordfail' has been set.

If /boot/grub is on LVM, recordfail does not work, because grub doesn't
have write support on LVM, so saveenv doesn't work.  Indeed, from the
grub.cfg on such a system, the recordfail function is written as:

function recordfail {
  set recordfail=1
  # GRUB lacks write support for lvm, so recordfail support is disabled.
}

The interaction of these two limitations means that systems with
/boot/grub on LVM cannot reliably get a grub menu, ever.

While I think that in the long term we should always put /boot/grub on
the ESP (which means it will always be writable by grub), which is in
fact what we did for Ubuntu Core, in the meantime I believe what we need
to do here is always show the boot menu if we are booted under EFI and
we have a non-writable grubenv.

** Affects: grub2 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1800722

Title:
  EFI booting + /boot on LVM == inaccessible boot menu

Status in grub2 package in Ubuntu:
  New

Bug description:
  Because EFI does not support instantaneous read of modifier keys (i.e.
  holding down shift at boot), the only way to reliably show a boot menu
  is by letting the system boot, interrupting the boot, and letting the
  menu be displayed because 'recordfail' has been set.

  If /boot/grub is on LVM, recordfail does not work, because grub
  doesn't have write support on LVM, so saveenv doesn't work.  Indeed,
  from the grub.cfg on such a system, the recordfail function is written
  as:

  function recordfail {
    set recordfail=1
    # GRUB lacks write support for lvm, so recordfail support is disabled.
  }

  The interaction of these two limitations means that systems with
  /boot/grub on LVM cannot reliably get a grub menu, ever.

  While I think that in the long term we should always put /boot/grub on
  the ESP (which means it will always be writable by grub), which is in
  fact what we did for Ubuntu Core, in the meantime I believe what we
  need to do here is always show the boot menu if we are booted under
  EFI and we have a non-writable grubenv.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1800722/+subscriptions



More information about the foundations-bugs mailing list