Boot order set in efibootmgr changes everytime system boots

Continuing the discussion from Deleted boot partition and now stuck at splash screen:

Following from above thread, after rebuilding boot partition i set boot order to something like this

 
[REDACTED@endeavouros ~]$ sudo efibootmgr -o 0001,0002,0003,2001,2002,2003,0000
[sudo] password for REDACTED: 
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0001,0002,0003,2001,2002,2003,0000
Boot0000* Yes
Boot0001* EndeavourOS
Boot0002* Windows Boot Manager
Boot0003* USB HDD: USB DISK 2.0
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network

now after rebooting the system it is something like this

[REDACTED@endeavouros ~]$ efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 2001,0000,0002,2002,2003
Boot0000* Yes
Boot0001* EndeavourOS
Boot0002* Windows Boot Manager
Boot0003* USB HDD: USB DISK 2.0
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network

i checked the uefi firmware settings(bios menu), there also there is no option to select endeavour os.

What is this one?

Even i am curious. It shows up as “yes” in boot menu also and also when changing boot order in firmware settings menu. Pressing f12 to select boot menu shows only two options “windows boot manager” and “yes”, selecting “yes” lets me boot into grub menu.

Is Windows installed on the same drive? Which drive do you have set in the boot order in the UEFI Bios. It should be set to boot from the drive that has EndeavourOS on it if they are on separate drives.

You can use efibootmgr to delete that yes entry.

sudo efibootmgr -b 0000 -B

Yes its on the same drive. In firmware settings boot order is harddrive(toshiba something)>windows boot manager>usb boot drive.

But it doesn’t boot into any os automatically, just stays at splash screen. I have to manually pull up boot menu (f12) and select yes option to boot to grub. Also as you can see from first post, reboot removes 0001 endeavour os from boot order.

Did you install os-prober and set it up in the default grub file? It is now set to not check for other os to boot. You have to modify the file and update the boot loader.

Edit: Check if os-prober is installed first

pacman -Qi os-prober

Yes os prober is installed and works fine, i can boot into grub menu and windows appears as one of the option. The problem is i have to manually boot into grub from boot menu(f12) everytime using thet “yes” option.

Did you modify the default grub file and update grub? Do you know how?

Edit: os-prober isn’t working if it’s just booting from Windows. That’s not what it does.

You have to add the following entry to the default grub file.

/etc/default/grub

Add or un-comment and change to false if this isn’t there or is commented and say’s true.

GRUB_DISABLE_OS_PROBER=false

Save the file and then update grub

sudo grub-mkconfig -o /boot/grub/grub.cfg

Edit2: This will only work if os-prober is installed.

As you can see from linked post, i had to chroot into system and build the boot partition. Ony thing i modified was adding the os prober line in grub config

No its not booting to windows, its just not booting to anything. I have to manually boot into either windows boot manager or “yes” (to load grub menu). As far as i know os-prober add an entry to brub menu, and its doing that only.

Did you remove the yes entry with efibootmgr?

Did that, rebooted. Booted directly into windows. Rebooted again, nothing. Went to bios menu to check, the yes option is back again

Do you still have a usb device with ventoy on it plugged in when doing this?

Yes, i tried it by both having plugged in and not having plugged in. Same results

I’m not sure what you may have done. Maybe you haven’t chrooted and reinstalled grub correctly?

One thing i can tell you is that the UEFI firmware only holds so many entries. You may want to use efibootmgr and clear all the entries and then reboot. I have had this before where ghost entries being removed keep coming back. Removing all fixed that and only the entries on boot should be there that are setup.

Could this issue be somewhat similar to this:

?

I dont know what solved it, i did everything on this article. So i will basically list the steps i did and mark this one as solved.

First booted to windows and ran this

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Then booted to linux and deleted every boot entry in efibootmgr as per this command

Then shutdown and opened the laptop, did a bios reset bt removing power cord, battery and bios button cell. Plugged everything back and turned on pc and immediately went to bios. Did all the basic settings like disabling secure boot and moved the “efi boot manager: yes” to top. Exited saving changes, booted directly into windows ( its normal). Rebooted and grub showed up. Booted into endeavour and checked efibootmgr, it showed correct boot order. Booted around 10 times since then and its all fine.

Thanks everyone :heart:

2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.