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

Mathieu Trudel-Lapierre mathieu.tl at gmail.com
Tue Jan 22 19:04:35 UTC 2019


** Description changed:

+ [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.
+   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.

-- 
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

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