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

Mathieu Trudel-Lapierre mathieu.tl at gmail.com
Tue Jan 29 21:19:31 UTC 2019


Verification-done for bionic with grub2 / grub2-signed:

ubuntu at ubuntu:~$ dpkg -l grub-efi\* | grep ii | awk '{print $2" "$3 }'
grub-efi-amd64 2.02-2ubuntu8.10
grub-efi-amd64-bin 2.02-2ubuntu8.10
grub-efi-amd64-signed 1.93.11+2.02-2ubuntu8.10

GRUB correctly shows the menu at every boot when the system is installed
with full-disk LVM on EFI: /boot is on / which is on LVM, only /boot/efi
is on a primary partition.

** Tags removed: verification-needed-bionic
** Tags added: verification-done-bionic

-- 
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:
  Fix Released
Status in grub2 source package in Bionic:
  Fix Committed
Status in grub2 source package in Cosmic:
  Fix Committed

Bug description:
  [Impact]
  This issue makes it impossible for UEFI users to access to boot menu and choose their kernel if /boot is installed on LVM.

  [Test case]
  1) Install Ubuntu on UEFI; put /boot on a LVM LV.
  2) Reboot after the install
  3) Verify that you will get a GRUB menu at boot.

  [Regression potential]
  Give particular attention to boot behavior on different disk setups: failure to show the menu on LVM or other disk setups when holding the SHIFT key, or showing the menu at every boot unnecessarily on other types of disk configurations: /boot on a physical partition, etc.

  ---

  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