http://bugzilla.suse.com/show_bug.cgi?id=993401
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.
http://bugzilla.suse.com/show_bug.cgi?id=993401
Jiri Srain jsrain@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dmueller@suse.com Assignee|jsrain@suse.com |mchang@suse.com
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c1
Michael Chang mchang@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |glin@suse.com, | |jlee@suse.com, rw@suse.com
--- Comment #1 from Michael Chang mchang@suse.com --- This is efibootmgr and kernel efivars related, CC Raymund, Gary and Joey.
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c2
--- Comment #2 from Gary Ching-Pang Lin glin@suse.com --- Looks like a firmware limitation. But why we create "EFI\opensuse-leap42.1-arm-jeos-devel-efi" instead of "opensuse"?
http://bugzilla.suse.com/show_bug.cgi?id=993401
Matthias Brugger mbrugger@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |agraf@suse.com, | |mbrugger@suse.com, | |tiwai@suse.com
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c3
--- Comment #3 from Alan Ott alan@softiron.co.uk ---
Looks like a firmware limitation. But why we create "EFI\opensuse-leap42.1-arm-jeos-devel-efi" instead of "opensuse"?
Just speculation, but I bet the reason you use a long path is related to the fix for bug 796514 .
Alan.
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c4
Alexander Graf agraf@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ms@suse.com
--- Comment #4 from Alexander Graf agraf@suse.com --- I'd guess the name is related to the kiwi image name, adding Marcus to CC.
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c5
Michael Chang mchang@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mchang@suse.com Assignee|mchang@suse.com |ms@suse.com
--- Comment #5 from Michael Chang mchang@suse.com --- So far, it looks like kiwi issue, reassign to Marcus. Thanks.
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c6
Marcus Schaefer ms@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?
--- Comment #6 from Marcus Schaefer ms@suse.com --- Is the efi boot menu created from contents of the grub.cfg file in some way ? 'opensuse-leap42.1-arm-jeos-devel-efi' seems like the name you setup in the image XML description and yes this information will land in the grub.cfg menu.
You can specify any display name with
<image ... name="opensuse-leap42.1-arm-jeos-devel-efi" displayname="opensuse"> ... </image>
That should workaround name constraints for the efi menu
kiwi just calls grub2-install and also shim-install if our secure boot efi image is used. If there are name constraints for the efi menu which are different from the ones in the grub menu I think the tools should throw an exception
Thoughts ?
http://bugzilla.suse.com/show_bug.cgi?id=993401
Dirk Mueller dmueller@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ihno@suse.com
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c7
Dirk Mueller dmueller@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alan@softiron.co.uk Flags| |needinfo?(alan@softiron.co. | |uk)
--- Comment #7 from Dirk Mueller dmueller@suse.com --- Thanks, I've added the displayname= workaround for now to tumbleweed and leap 42.1. Alan, can you confirm that the latest build (in osc getbinaries) fixes that problem now?
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c8
--- Comment #8 from Marcus Schaefer ms@suse.com --- any news ?
http://bugzilla.suse.com/show_bug.cgi?id=993401
Marcus Schaefer ms@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |IN_PROGRESS
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c9
--- Comment #9 from Alan Ott alan@softiron.co.uk --- Hi Dirk,
I haven't tried this yet. I'm catching up from being away last week, but will test by the end of the week.
Alan.
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c10
Marcus Schaefer ms@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|grub2-install for EFI |kiwi: grub2-install for EFI |installs an EFI entry that |installs an EFI entry that |is not bootable |is not bootable
--- Comment #10 from Marcus Schaefer ms@suse.com --- any news ?
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c11
Marcus Schaefer ms@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|IN_PROGRESS |RESOLVED Resolution|--- |NORESPONSE
--- Comment #11 from Marcus Schaefer ms@suse.com --- silence means everything works
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c12
--- Comment #12 from Alan Ott alan@softiron.co.uk --- Hi guys, I'm sorry I still haven't tried it.
What's the Repository and Package I should use for osc getbinaries? It's not clear to me which package the fix is in.
Alan.
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c13
--- Comment #13 from Swamp Workflow Management swamp@suse.de --- This is an autogenerated message for OBS integration: This bug (993401) was mentioned in https://build.opensuse.org/request/show/571642 15.0:Ports / JeOS
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c14
--- Comment #14 from Swamp Workflow Management swamp@suse.de --- This is an autogenerated message for OBS integration: This bug (993401) was mentioned in https://build.opensuse.org/request/show/597801 Factory:ARM:Live / JeOS
http://bugzilla.suse.com/show_bug.cgi?id=993401 http://bugzilla.suse.com/show_bug.cgi?id=993401#c15
--- Comment #15 from Swamp Workflow Management swamp@suse.de --- This is an autogenerated message for OBS integration: This bug (993401) was mentioned in https://build.opensuse.org/request/show/690698 15.1:ARM:Images / JeOS
https://bugzilla.suse.com/show_bug.cgi?id=993401 https://bugzilla.suse.com/show_bug.cgi?id=993401#c19
Ihno Krumreich ihno@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |VERIFIED Flags|needinfo?, | |needinfo?(alan@softiron.co. | |uk) | OS|openSUSE 42.1 |All
--- Comment #19 from Ihno Krumreich ihno@suse.com --- Removing needinfo and set to Verified.