Grub is installed but does not show up, even though opensuse is set first in BIOS

Moin
Here’s my problem:
Device: HP victus laptop, Ryzen 7, RTX 4070, up to Sunday working fine with dual boot Windows 11 and tumbleweed.

Status now: After start directly booting into Windows 11. Grub bootloader and Leap 15.6 are installed, can however only be reached by a wired series of BIOS commands described below.

Already tried, in this sequence:

  • install slowroll
  • install Leap 15.6
  • start rescue system and reinstall bootloader acording to section 21.5.2.4 of docs, leap, common problems
  • reinstall windows (which was also complaining about some BSD error, fixed now)
  • reinstall Leap 15.6
  • start rescue system and reinstall bootloader
  • start installed system described by the hack below, reinstall bootloader with Yast
    → still directly booting into W11

The hack:
Pressing F9 during boot gives me the boot menu. The opensuse entry does also boot staight to Windows. But with the boot from EFI file I can work my way to shim.efi which does actually start the installed Leap.





Not sure if this matters, but trouble starter was testing for a friend if a Windows Installation USB stick is bootable. And being naive enough to believe that stoping right at the start screen will not damage anything.

I am a bit at the end of my Latin here as we say in Germany. Any help is highly appreciated.
Matthias

You’ve made it clear as mud what operating systems are currently installed. Was each openSUSE installation a replacement of a prior openSUSE, from TW to SSLO to Leap and then again Leap, so only Win11 + 15.6 remain?

Yes, exactly. They were all replacing previous installations. Non of them managed to install grub. In the end I stayed with Leap, assuming this reduces the number of unknowns in the problem.

Show output of

efibootmgr -v

As text, not as image.

linux:/home/matthias # efibootmgr -v
Timeout: 0 seconds
BootOrder: 0000,0001,2001,3000,2002,2004
Boot0000* openSUSE HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\opensuse\grubx64.efi)
Boot0001* Windows Boot Manager HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0002* opensuse-secureboot HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\opensuse\shim.efi)
Boot0003* Windows Boot Manager HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS…x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…
Boot2001* EFI USB Device RC
Boot3000* Internal Hard Disk or Solid State Disk RC
Boot3002* Internal Hard Disk or Solid State Disk RC

Please, always post computer text as preformatted.

Is Secure Boot enabled in BIOS?

Boot0002* opensuse-secureboot HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\opensuse\shim.efi)

It is not listed in BootOrder. Is it visible in BIOS Setup?

Secure Boot is enabled, but opensuse-secureboot does not show up in the BIOS boot order menu.

Then the first option simply cannot boot. Do you see any error message during boot?
Try

efibootmgr -o 0002,0001,2001,3000

Check with efibootmgr -v. If it sticks, try to reboot.

it sticks only until I reboot.
After changing the order i get:

linux:/home/matthias # efibootmgr -v
Timeout: 0 seconds
BootOrder: 0002,0001,2001,3000
Boot0000* openSUSE      HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\opensuse\grubx64.efi)RC
Boot0001* Windows Boot Manager  HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0002* opensuse-secureboot   HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\opensuse\shim.efi)
Boot0003* Windows Boot Manager  HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* EFI USB Device        RC
Boot3000* Internal Hard Disk or Solid State Disk        RC
Boot3002* Internal Hard Disk or Solid State Disk        RC

But reboot get’s me straight back to W11, in the BIOS and in the F9 boot order menu there is no opensuse-secureboot option, and if I boot Leap with the above described hack, I am back to the old boot order:

linux:/home/matthias # efibootmgr -v
Timeout: 0 seconds
BootOrder: 0000,0001,2001,3000,2002,2004
Boot0000* openSUSE      HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\opensuse\grubx64.efi)RC
Boot0001* Windows Boot Manager  HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0002* opensuse-secureboot   HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\opensuse\shim.efi)
Boot0003* Windows Boot Manager  HD(1,GPT,defbb509-3c9f-48d7-b6e1-7013756e5121,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* EFI USB Device        RC
Boot3000* Internal Hard Disk or Solid State Disk        RC
Boot3002* Internal Hard Disk or Solid State Disk        RC

There may be a way to change the boot order in BIOS settings. And that is more likely to stick.

As a quick and dirty work around, you can try:

cd /boot/efi/EFI/opensuse
cp shim.efi  grubx64.efi

That should make the “opensuse” boot entry work the way the “opensuse-secureboot” entry is supposed to work. However, any update to grub is likely to undo that change.

1 Like

Hooray, the quick and dirty workaround works! I have the grub bootmenu back .

Thanks a lot to everyone helping!

Then: the BIOS settings are still not showing any secureboot option (sorry for the screenshots, I have no idea how to copy those):


Also, it seems not to matter which of the two bootmanagers is on top: before the copy command both went directly to W11, now both show the grub boot menu.

I can easily live with the present workaround, and renew it if grub is updated.
However, if anyone has an idea about the deeper cause, I am still interested and willing to get to the root of the problem.

Matthias

Glad to have helped.

I have no experience with HP computers. There’s probably a way to get it to work. I had a similar issue with a Lenovo system, but the boot order settings did allow me to fix it.

@tetraeder So press F10 at boot to get to the BIOS, in your image with “OS Boot Manager” select and press enter to expand the list (the triangle), highlight the boot option to move and press the F5/F6 combination to move, F10 to save…

@malcolmlewis That’s what I did. I moved both options to the top of the list, saved with F10 and rebooted. But this didn’t result in any change of behavior. And I never saw a opensuse secureboot option.

@tetraeder Did the OS Boot Manager line expand? You can also delete the 0001 as it’s a duplicate of 0003

the OS Boot Manager line expands only into the two entries shown in the image above: openSUSE ( .S6… ) and Windows Boot Manager().

I remember that some time ago, i.e. before this problem started, there were 3 entries. But I have not found a way to add another entry again.

You may try and and load UEFI defaults. This worked on a bunch of ThinkPads.

I did not find any BIOS option labeled along theses lines (load UEFI defaults). Is this something I can do from the command line?

Note: You may want to prepare a recovery stick, e.g. using the net iso: https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso

https://support.hp.com/ee-en/document/ish_9957700-9957930-16

@tetraeder they can be manually entered. One thought if you fire up YaST Bootloader on the first tab is the ‘update NVRAM’ box selected?