[Bug 1864533] Re: grub wrongly booting via bios entry point instead of efi when secureboot disabled

Joseph Yasi joe.yasi at gmail.com
Sat Mar 21 01:17:48 UTC 2020


2.04-1ubuntu12.2 broke boot on my machine. It doesn't work with kernels
that don't have CONFIG_EFI_STUB=y configured. This really needs to fall
back to the old mode if EFI handover is not supported by the kernel.

Also, after using a kernel with CONFIG_EFI_STUB=y it still failed to
boot one of my machines with root specified by UUID. I was able to
workaround it by manually specifying the boot device with /dev/nvme0n1p2
at the grub menu, and then specifying GRUB_DISABLE_LINUX_UUID=true in
/etc/default/grub.

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

Title:
  grub wrongly booting via bios entry point instead of efi when
  secureboot disabled

Status in grub2 package in Ubuntu:
  Fix Released
Status in grub2 source package in Bionic:
  Fix Released
Status in grub2 source package in Eoan:
  Fix Released
Status in grub2 source package in Focal:
  Fix Released

Bug description:
  [SRU Justification]
  Currently, the Ubuntu patches for secureboot support will boot the kernel via the EFI stub ONLY if secureboot is enabled.  This means that if secureboot is disabled, grub wrongly skips the kernel's EFI stub, resulting in buggy behavior (missing EFI fixups; lack of access to the TCG log).

  When booted on EFI, grub should ALWAYS use the EFI protocol to boot
  the kernel, and only do a non-EFI boot as a fallback if the EFI stub
  is not available AND secureboot is not enabled.

  Patches available at https://people.canonical.com/~chrisccoulson/grub-
  efi-fixes/

  [Test case]
  Boot kernel in secure boot and non-secure boot, check that
  /proc/sys/kernel/bootloader_{type,version} are the same (they'd be different if we booted via grub's own linux loader).

  
  [Regression potential]
  This changes behavior of how grub passes control to Linux kernels when secureboot is disabled on UEFI systems, which can result in arbitrary changes to the boot process up to and including failure to boot if there are bugs in the kernel EFI stub on some platforms.  However, it is generally more correct to boot via the EFI stub and it's expected that most users are booting via the EFI stub on UEFI systems due to the ubiquity of SecureBoot by default on modern hardware, so having consistent behavior whether SecureBoot is on or off is likely to be the less buggy option generally.

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



More information about the foundations-bugs mailing list