Bug ID 993401
Summary grub2-install for EFI installs an EFI entry that is not bootable
Classification openSUSE
Product openSUSE Distribution
Version Leap 42.1
Hardware aarch64
OS openSUSE 42.1
Status NEW
Severity Minor
Priority P5 - None
Component Bootloader
Assignee jsrain@suse.com
Reporter alan@softiron.co.uk
QA Contact jsrain@suse.com
Found By ---
Blocker ---

Running grub2-install does not yield a bootable entry in EFI's boot menu. On
Leap and Tumbleweed, this means booting relies instead on the startup.nsh in
the EFI partition.

This occurs on Aarch64 with both AMD/AMI firmware and
Tianocore/edk2/OpenPlatformPkg firmware.

Steps to reproduce:
1. Install Leap 42.1 from the OEM image
2. Restart and boot the system
2a. Observe that the startup.nsh (in the EFI partition) is used to boot the
system.
3. Reboot again, but During boot-up, enter the EFI menu.
3a. Observe that in the boot manager in the EFI menus, there is no entry for
Leap.
4. Restart the system or select the UEFI shell option, booting from startup.nsh
5. From the command prompt in Leap, run:
   grub2-install /dev/sda
6. Reboot the system
7. During start-up enter the EFI menu.
7a. Observe that in the EFI menu there is an entry called
opensuse-leap42.1-arm-jeos-devel-efi, or something like it.
8. Select the opensuse-leap* boot menu item and try to boot it.
9. Observe that it does not boot, and returns to the boot menu.
10. Select the UEFI Shell option, and observe that it will boot using
startup.nsh.
11. From the Linux command prompt, run "efibootmgr -v"
11a. Observe that the entry for opensuse-leap* is truncated :(
11b. Note the same can be observed by running "dumpstore" from the EFI
environment.

Note: The same thing happens if the bootloader is re-installed using "yast2
bootloader".

Note that this is broken in Leap, but works fine in SLES, probably because the
path and OS name for SLES is so much shorter.

Interestingly, if I try to add my own entry with the proper path:
  efibootmgr -c -d /dev/sda -p 1 --loader
"EFI\\opensuse-leap42.1-arm-jeos-devel-efi\\grubarm64.efi" -L
Test_Entry_By_Alan
and then inspect it with:
  efibootmgr -v
I see my entry is truncated too :(
  Boot0007* Test_Entry_By_Alan   
HD(1,800,64004,cb3a713f-f051-4c9c-b643-b9e1358f6c2d)File(EFI\opensuse-leap42.1-arm-jeos-devel-ef)

In summary, grub2-install and/or efibootmgr is simply putting a boot entry into
NVRAM that is truncated and not valid.


Thanks!

Alan.


You are receiving this mail because: