No Grub Menu after 15.2 Install

Hi,
I’ve been attempting to install Opensuse 15.2 with KDE desktop on an Acer E5-575 as a multiboot with Win10, without success. After running through the installation procedure, after restart the menu for Grub2-efi never appears, and Win10 boots as if opensuse was not installed.

The computer is using UEFI, and I have tried using secure boot both enabled and not enabled.

The partitioning scheme that I have installed is using a seperate partition for /, /home, and swap. I have tried to used a separate partition for /boot/efi other than the win10 /boot/efi, and also using the win10 efi partition and designating it as /boot/efi.

I’m not experienced using a UEFI installation, I have only done this on one other computer with no problems.

I’m installing opensuse 15.2 from a USB stick, and it was created as a UEFI stick using Rufus in Win10. There doesn’t seem to be any problem with the actual opensuse installation, just grub never appears after the installation, so I can’t boot opensuse.

I’m requesting some help to get this working, thanks.

Boot your USB stick (using UEFI booting). If the USB stick is from the DVD installer, then boot it to the rescue system and login there as root. If your USB stick is made from live media, then it should boot to a desktop where you can open a terminal and get a command line.

Either way, on that command line, run the command:

efibootmgr -v

and post the output here.

I used the USB stick with the opensuse 15.2 iso image which I created to boot the installed system. I did this by selecting “Boot Linux System”, then selected the system on /dev/sda6, which is where I placed the root partition. I was able to boot into the installed 15.2 system then. At present, secure boot is disabled in the bios, and when I installed the Grub2-efi bootloader during the operating system install, I disabled “support secure boot.” On other attempts to install the bootloader during installation, I had secure boot enabled in the UEFI bios, and also enabled support secure boot in the bootloader configuration during installation.

Here’s the output you requested:

efibootmgr -v
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0001,2001,2002,2003
Boot0000* Unknown Device: HD(1,GPT,9a025dc3-da05-480f-b568-fa10debe4201,0x800,0x12b000)/File(\EFI\opensuse\grubx64.efi)RC
Boot0001* Windows Boot Manager HD(1,GPT,9a025dc3-da05-480f-b568-fa10debe4201,0x800,0x12b000)/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.}…3…
Boot0002* USB HDD: PNY USB 2.0 FD PciRoot(0x0)/Pci(0x14,0x0)/USB(3,0)/HD(1,GPT,c1aedc98-ea45-43e2-9bc4-4535ec06acb3,0x800,0x3bc77df)RC
Boot0003* Unknown Device: HD(1,GPT,9a025dc3-da05-480f-b568-fa10debe4201,0x800,0x12b000)/File(\EFI\opensuse\grubx64.efi)RC
Boot0004* Unknown Device: HD(7,GPT,e34b6788-07ac-4a6e-abe5-a7d3cbbe9785,0x5d6dc800,0xfa000)/File(\EFI\opensuse\grubx64.efi)RC
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC

That looks to be a problem with your UEFI firmware (or BIOS).

Look at that line beginning “Boot0000”. It says “Unknown Device”. It should say “opensuse”. Somehow, your BIOS is not remembering the names of bootable systems (unless the name is “Windows”).

(1) Here’s a temporary suggestion. Boot your system as you describe (with “Boot linux system”).
(2) Run “efiboomgr” as root, just to make sure that it works. No need to post the output this time. It is just a check that you are booted in UEFI mode.
(3) Use Yast bootloader, and check the box for “enable secure boot support”. However, best to leave secure-boot disabled in your BIOS for now, at least while we are working on the problem.
(4) As root:


cd /boot/efi/EFI
ls
cd Boot #### may have to change that "Boot" to "boot" or "BOOT" depending on the name you see
cp /usr/share/efi/x86_64/fallback.efi  .

(No need to type the comment starting #### – that’s just my note to you)

After that, you may be able to boot your system with that USB device. Choose “Boot hard drive” from the menu. Maybe test that. It will be easier than “Boot linux system”. If that works, then plan to use that as your way of booting.

There are other ways around this problem. But they all have disadvantages.

Perhaps check whether there is a BIOS update for your computer that fixes the problem.

Hmm, another possibility: In some computers, you can hit F12 while booting, and get a BIOS boot menu. Try choosing the line for “Unknown Device” in that menu.

I updated the bios to the most current version yesterday, then investigated whether there was anything in the bios that would allow me to boot opensuse. It does now recognize opensuse in the bios, and I moved it to first boot in the boot order. But when I boot the computer, grub does not appear and win10 boots up.

When I boot using the F12 command at boot, the only two options for boot are

  1. Windows Bootloader
  2. USB PNY (This is the USB Stick that I created with the opensuse iso image)

Here is the current readout from efibootmgr -v

efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0003,2001,0001,0002,2002,2003
Boot0000* USB HDD: PNY USB 2.0 FD PciRoot(0x0)/Pci(0x14,0x0)/USB(3,0)/HD(1,GPT,c1aedc98-ea45-43e2-9bc4-4535ec06acb3,0x800,0x3bc77df)RC
Boot0001* Yes PciRoot(0x0)/Pci(0x17,0x0)/Sata(0,0,0)/HD(1,GPT,9a025dc3-da05-480f-b568-fa10debe4201,0x800,0x12b000)/File(\EFI\opensuse\grubx64.efi)A01 …
Boot0002* y PciRoot(0x0)/Pci(0x17,0x0)/Sata(0,0,0)/HD(1,GPT,9a025dc3-da05-480f-b568-fa10debe4201,0x800,0x12b000)/File(\EFI\opensuse\shim.efi)A01 …
Boot0003* Windows Boot Manager HD(1,GPT,9a025dc3-da05-480f-b568-fa10debe4201,0x800,0x12b000)/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.}…3…
Boot0004* Unknown Device: HD(1,GPT,9a025dc3-da05-480f-b568-fa10debe4201,0x800,0x12b000)/File(\EFI\opensuse\grubx64.efi)RC
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC

If you choose 2, then there should be a boot menu with “Boot hard drive” – I think it is the first option, but not the default option. Test whether that gets you into your system.

Booting in F12 from the USB stick, then choosing “Boot from Hard Drive” produces this response:

error: no such device: /efi/boot/fallback.efi
press any key to continue

Did you try what I suggested in post #4 above (copying “fallback.efi” to the right place)? I’m not sure whether that would actually work, because I have only ever used that way of booting after a successful openSUSE install. Maybe I will experiment some more.

Here is the result of copying as suggested in post #4

#ls
Boot Microsoft OEM opensuse

#cd Boot

#cp /usr/share/efi/x86_64/fallback.efi
cp: missing destination file operand after ‘/usr/share/efi/x86_64/fallback.efi’
Try ‘cp --help’ for more information.

Shouldn’t the last command have a destination, such as cp /usr/share/efi/x86_64/fallback.efi /boot/efi/EFI or some such?

I’ve tried to leave spaces between the directories in the last line, but autocorrect seems to want to take them away, even after attempts to edit.

Yes, there was a “.” (or dot) there if you look closely. That refers to the current directory.

If you prefer, it needs to be copied to “/boot/efi/EFI/Boot”. But I don’t know whether that last “Boot” is actually “boot” or “BOOT”. And the “cp” command is very fussy about that, even though the EFI partition is supposed to be case insensitive.

I’ve tried to leave spaces between the directories in the last line, but autocorrect seems to want to take them away, even after attempts to edit.

If you use CODE tags, you can avoid that.

Hi,
thanks for pointing out the “.” function in bash, as you surmised, I was not aware of that. I copied the fallback.efi file to boot/efi/EFI/boot. It and the bootx64.efi file are there. But, on reboot it made no difference, there is no grub screen and the computer boots into win10.

I don’t know anything about code tags, one more new thing to learn.

Now try booting your install USB, and select “boot hard drive” from the menu. Does that get into your system?

I don’t know anything about code tags, one more new thing to learn.

Many Internet forums support CODE tags. You can click the “#” near the top of the edit box, to create CODE tags. Or you can type them in manually.

[QUOTE=nrickert;2964325]Now try booting your install USB, and select “boot hard drive” from the menu. Does that get into your system?

Yes, it will boot opensuse, after using F12 to access the USB stick and selecting “Boot from the Hard drive.”

What must I do to get the grub screen to appear on normal boot, after pressing the power button on?

You can try this:


@echo off
if X%1 == Xwindows goto :win
echo bcdedit /set {bootmgr} path \EFI\opensuse\shim.efi
goto :finish
:win
echo bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
:finish

That’s a “.CMD” file for Windows. Call it FIXBOOT.CMD

There’s no guarantee that it will work. But here’s how you use it. In Windows, use the command

FIXBOOT

to change how Windows boots.

And you can use:

FIXBOOT windows

to change it back to the way that it was (i.e. to undo the changes to Windows booting).

If that works, then when you next boot Windows, it should actually show a grub menu. And you should be able to select Windows in that grub menu if you want to really get into Windows.

I briefly used this here (with Windows 8 in 2012), but found a better way around the problems of booting this computer. We had another user try this, but it did not work at all for that user. It depends on how the BIOS is booting Window.

And there’s a disadvantage. Some Windows updates may fail if you do this. So run the command to undo the changes before updating Windows, and then make the changes again afterwards.

Hi,
just to make sure I know how to do what you have supplied in the previous post before I do it, I think I’m supposed to open the CMD dialog box as admin. Then, I type in FIXBOOT at the prompt, and hit enter. Then I type at the prompt @echo off … :finish. Or, do I store somewhere the @echo off … :finish as a file named FIXBOOT.CMD, and win10 will find and execute it?
Sorry if this seems an elementary question, I’m not knowledgeable enough for this to be obvious and intuitive.

Thanks

Apologies for not being clear.

That’s just a CMD script for Windows.

Create a file containing just those lines. And call the file “FIXBOOT.CMD” (or some other name, if you prefer).

Then you just type in “FIXBOOT” at a command line to change the booting. Or “FIXBOOT windows” to change it back. And you can use “fixboot” instead of “FIXBOOT”.

Hi,
I did what you have posted in your post regarding the Windows script, unfortunately it didn’t do the trick to get the grub menu to come up on computer boot. It still boots directly into windows. Thanks for your persistence in trying to fix this problem, and hopefully you will have some other ideas that I can try to get it going.

Then I suggest you run the “undo” form of that script, and then remove the script.

There’s one other possibility that I have seen work in these difficult situations. But I hesitate to recommend it. You have to make a copy of the Windows boot program “bootmgfw.efi” to another directory. And then you have to copy the openSUSE “shim.efi” to overwrite the original “bootmgfw.efi”. You also have to copy “MokManager.efi”, “grub.efi” and “grub.cfg” from that “opensuse” directory ("/boot/efi/EFI/opensuse") to the Microsoft boot directory. This tricks the BIOS into using the openSUSE boot software. And then, to boot Windows, you need to modify the grub boot menu so that it refers to (chainloads) the copy that you made of “bootmgfw.efi” instead.

As I said, I hesitate to recommend this. I think it safer to use the USB to boot openSUSE.

I have run the undo script for FIXBOOT in windows, and am back to booting 15.2 via USB stick and the hard drive as before the attempt to use the script you supplied. I’m willing to try the method you now suggest, but I would need more specific instructions than the general outline you have provided in order to accomplish this without error. Would you be willing to do this? I would view it as a learning experience, but I don’t wish to make this a tedious task for you. Just respond and let me know what you would like to do.

I willing to give you as much detail as you want.

Can you provide the output from:

ls -l /boot/efi/EFI/Microsoft/Boot/*.efi