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.