[Bug 1891718] Re: [Regression] breaks GRUB install on an nvme device

dann frazier 1891718 at bugs.launchpad.net
Tue Nov 3 23:46:51 UTC 2020


And regression tested on an NVMe (but non-nvme-subsys) device on an ARM
server:

ubuntu at d05-4:~$ mount | grep /boot/efi
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
ubuntu at d05-4:~$ ls -l /dev/nvme0n1p1 
brw-rw---- 1 root disk 259, 1 Nov  3 23:40 /dev/nvme0n1p1
ubuntu at d05-4:~$ readlink /sys/dev/block/259\:1
../../devices/pci000d:30/000d:30:00.0/000d:31:00.0/nvme/nvme0/nvme0n1/nvme0n1p1
ubuntu at d05-4:~$ sudo grub-install
Installing for arm64-efi platform.
Installation finished. No error reported.
ubuntu at d05-4:~$ sudo apt install libefivar1 libefiboot1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  libefiboot1 libefivar1
2 upgraded, 0 newly installed, 0 to remove and 60 not upgraded.
Need to get 78.2 kB of archives.
After this operation, 8192 B of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports focal-proposed/main arm64 libefivar1 arm64 37-2ubuntu2.1 [42.5 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports focal-proposed/main arm64 libefiboot1 arm64 37-2ubuntu2.1 [35.7 kB]
Fetched 78.2 kB in 0s (233 kB/s)  
(Reading database ... 77021 files and directories currently installed.)
Preparing to unpack .../libefivar1_37-2ubuntu2.1_arm64.deb ...
Unpacking libefivar1:arm64 (37-2ubuntu2.1) over (37-2ubuntu2) ...
Preparing to unpack .../libefiboot1_37-2ubuntu2.1_arm64.deb ...
Unpacking libefiboot1:arm64 (37-2ubuntu2.1) over (37-2ubuntu2) ...
Setting up libefivar1:arm64 (37-2ubuntu2.1) ...
Setting up libefiboot1:arm64 (37-2ubuntu2.1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.1) ...
ubuntu at d05-4:~$ sudo grub-install
Installing for arm64-efi platform.
Installation finished. No error reported.

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

Title:
  [Regression] breaks GRUB install on an nvme device

Status in Efivar:
  New
Status in efivar package in Ubuntu:
  Fix Released
Status in efivar source package in Focal:
  Fix Committed
Status in efivar source package in Groovy:
  Fix Released

Bug description:
  [Impact]
  Grub fails to install on systems with nvme-subsys storage when installing focal, or upgrading from bionic to focal. As symptom of the latter is shown below:

  ┌───────────────────────┤ Configuring shim-signed ├────────────────────────┐
    │                                                                          │
    │ GRUB failed to install to the following devices:                         │
    │                                                                          │
    │ /dev/nvme0n1p1                                                           │
    │                                                                          │
    │ Do you want to continue anyway? If you do, your computer may not start   │
    │ up properly.                                                             │
    │                                                                          │
    │ Writing GRUB to boot device failed - continue?                           │
    │                                                                          │
    │                    <Yes>                       <No>

  I've hit this on 2 systems so far - a high-end Nvidia server and an
  older ARM Server.

  [Test Case]
  On a system with an EFI System Partition residing on an nvme-subsys block device, run grub-install:

  $ sudo /usr/sbin/grub-install
  Installing for x86_64-efi platform.
  /usr/sbin/grub-install: warning: Internal error.
  /usr/sbin/grub-install: error: failed to register the EFI boot entry: Operation not permitted.

  Also, regression test on a system with a non-nvme-subsys NVMe device.

  [Regression Potential]
  There's a risk that a parsing bug will introduce a regression to other systems - most at risk are systems with NVMe block devices. Supposedly nvme-fabrics systems were not previously supported and, as a side-effect of this backport, will now be. However, it's possible - like was the case with bionic/nvme-subsys - that nvme-fabrics *used* to happen to work, and now will work differently or even break. Ideally we'd be able to test on such a system, but I don't know where to find that hardware.

  This fix has been in groovy since just after beta (minus an innocuous
  debug statement that upstream requested during review), and the same
  patches apply cleanly to focal, which should help mitigate the risk by
  way of some real world exposure.

To manage notifications about this bug go to:
https://bugs.launchpad.net/efivar/+bug/1891718/+subscriptions



More information about the foundations-bugs mailing list