I have an old Lenovo desktop with Windows 10 installed. I installed opensuse the way I have done many times before with a pc having Windows pre-installed. When I have done this in the past, on a reboot, the grub menu comes up and I can select which OS. This did not happen here.
Pressing F12 during boot brings up the menu for boot order. The menu has Windows, opensuse, opensuse uefi ; in that order. I have tried to edit this menu, moving opensuse to the top or opensuse uefi to the top. Once done moving the boot order, the option to save is “Save and reset” or “Cancel.” In this case, the save and reset always resets the boot order back to Windows on top.
I have tinkered with uefi settings but the results are always the same as above. If I press F12 during boot, then select opensuse uefi, the normal grub menu comes up and works as expected. Is there any other way to edit the bios so Windows is not the first choice for booting?
@Prexy just use efibootmgr to change the order, look at the output “BootOrder”, then use the efibootmgr -o xxxx,yyyy,zzzz to set the order your wanting from the hex code output.
I’ve long given up with Dual-Boot on an old Lenovo (Windows 8) Laptop –
Once the BIOS/UEFI updates had died away (need Windows to apply the BIOS/UEFI updates – I even resorted to an additional Windows-only HDD to work around the issue … ) –
The box became “Linux-only” with Windows running in a VM …
I’ve been tinkering. Nothing I did with secureboot or CSM made a difference. It might have been my tinkering or a BIOS update, but startup has changed. Pressing F12 gives me a menu with a new appearance but essentially the same options as before. I use that menu to enter BIOS setup. Now, the start sequence menu does not even give an option to select the OS. It gives only the option which drive to select (all options: usb, CD etc). Returning back to restart and holding the F12 key, I get the option of Windows, opensuse and opensuse secure boot. All are listed as UEFI. There is a legacy option which I didn’t try.
I select opensuse secure boot and the grub menu comes up. That works as expected, including booting to windows if I choose. That’s the way I’ll have to go!
The above procedure is described in section “Selecting a temporary startup device” of the user manual on page 16 of the manual.
For making a permanent change refer to
Selecting or changing the startup device sequence
To view or permanently change the configured startup device sequence, do the following:
Start the Lenovo BIOS Setup Utility program (see “Starting the Lenovo BIOS Setup Utility program” on page 13).
From the Lenovo BIOS Setup Utility program main menu, select the Startup option.
Press the Enter key, and select the devices for the Primary Boot Sequence. Read the information displayed on the right side of the screen.
Use ↑ and ↓ arrows to select a device. Use the <+> or <-> keys to move a device up or down. Use the
<×> key to exclude the device from or include the device in the boot sequence.
Return to the Lenovo BIOS Setup Utility program menu and select the Exit option.
I followed this procedure 10 or 12 times as soon as you directed to the manual. In fact, I accidentally did it the right way before referring to the manual. Each time, I tried a variation to see if something would allow for a change. Nothing did. So, I followed your procedure and wrote down the results of each step:
1 - I entered the BIOS Setup Utility by restarting and holding F1
2 - Selected Startup and pressed enter. The primary boot sequence appears.
I selected SATA1: ST1000DX001-SSHD-8GB
The 3 OS options no longer appear. There are usb options, DVD & Network options
3 - Selected EXIT from the main menu
Selected Save Changes & Exit
Pressed Enter and selected Save Configuration & Reset - Yes
Upon exit, it restarts. Holding the F12 key brings up the Startup Device Menu. Under SATA1 the options are
Legacy
uefi Windows Boot Manager
uefi opensuse
uefi opensuse secureboot
I am unable to move the boot sequence selection and I accidentally boot opensuse. I restarted and changed the Startup option to uefi-only from legacy. I tried legacy to force the choice to be opensuse but that failed. Now that it was set to uefi-only, I restarted and went back to the procedure labeled 1, 2,3, above. This time, the BIOS Setup Utility shows the 3 OS options again. I move opensuse secureboot to the top of the list, saved changes and exit.
Rebooting fails to boot opensuse. Windows boots automatically again. If I hold down the F12 while booting, I can select opensuse secureboot. It brings up the grub menu and that works as expected, including booting to Windows if I select that option.
The bottom line is that I can’t edit the boot sequence. I also tried editing via efibootmgr. I made the changes and saved but upon rebooting, it returned to booting Windows. Sorry for the long post, but I wanted to be sure you could see I wasn’t ignoring recommendations or taking incorrect steps.
IIRC this behavior was a “feature” of early uefi bios to prevent wrong user settings, in a windows-only world. I still have an old (circa 2015) HP Pavilion that I could never set to boot to grub, had to press F9 at boot to choose the boot partition. Eventually the windows install in it became superfluous (and slow as molasses - thanks, windows 8) and was promoted to a very usable linux-only laptop, after a memory and ssd upgrade.
Thanks for the link. The file was the same as was already installed. I tried running the .exe file (from Windows) and it would not run. It gave a yes/no prompt about changing the BIOS file but did not respond to either choice. Just to be sure, I rebooted (twice, actually) to see if the file had changed silently. It did not and the problem persists. Perhaps it is because the pc is so far out of warranty that Lenovo has abandoned it. I will just watch the reboots to catch the place to press F12. opensuse boots normally from there.
I assume the -v stands for verbose, because it really was! Here is the output in a little easier to read form. If the verbose version would be more help, I will post.
@Prexy if it we me, I would just be deleting the windows and openSUSE entries and adding back in manually (with efibootmgr) to ensure openSUSE was in the 0000 location in NVRAM…