Can't boot into EndeavourOS after dual-booting Windows

I installed Windows 11 alongside EndeavourOS to try the experience of dual-booting. So far, it has not been good. I followed the Arch Wiki’s instructions and managed to install Windows, but GRUB doesn’t show up in the boot options anymore.

When going into advanced boot options, there is only Windows Boot Manager and an option that has the name of my SSD. That option is detected to be Legacy boot. When trying to boot from that, it says “Reboot and insert proper boot device”.

I read the Arch Wiki’s part on being unable to boot Linux, but most of those commands require Linux… (like efibootmgr)
Did Windows just corrupt GRUB? What should I do?

Sounds like Windows did more than corrupt GRUB, it deleted everything related to Linux.

The correct way to dual-boot Windows is to install Windows first, but while doing so, make sure you leave enough space for any Linux partitions you will need/want. After you’ve done all your Windows Updates, then you install Linux.

Neither Windows nor Mac wants you to dual-boot, so they don’t come with options to properly preserve any partitions from another OS.

I looked in Disk Management, and my Linux partitions are still there (swap, main drive, EFI)
I have a feeling it overwrote the EFI partition. Should I reinstall GRUB?

Good.

Yes, you will need to load into your LiveISO, and reinstall GRUB by chrooting.

For reference: https://discovery.endeavouros.com/system-rescue/arch-chroot/2022/12/
And: https://discovery.endeavouros.com/system-rescue/repair-a-non-booting-grub/

Ok, let me try that.

1 Like

ok, it worked. EndeavourOS just booted, now all I have to do is add W11 to the GRUB boot menu. thanks

1 Like

ok so now the main problem is that when I boot Windows, GRUB gets overwritten, and when I reinstall GRUB, Windows Boot Manager gets overwritten (does not show in efibootmgr). How do I fix that?

Did you turn off fastboot, secure boot and all that stuff in Windows and in your BIOS?

After doing this, you may need to reinstall GRUB and os-prober.
Queue someone telling you not to use os-prober.

I turned off secure boot, but I can’t find an option to disable fast boot in the BIOS.

That’s what I have to do every time I boot Windows… it always overwrites GRUB.

efibootmgr is not showing Windows Boot Manager, so I can’t disable it.

Fastboot is in Windows, I think - should be in power profiles, maybe. Type fastboot in the start menu, it should show up.

While secure boot may be in both Windows and your BIOS.

In case it isn’t clear, I no longer use Windows. :wink:

I disabled Fast Startup, which I think is fastboot, and Secure Boot is disabled…
The main problem is: I reinstalled GRUB, and Windows Boot Manager is not detected in efibootmgr anymore. When booting Windows, GRUB is not detected anymore. It keeps going in a loop, with me having to repeatedly reinstall GRUB…
What I want to do is disable Windows Boot Manager using efibootmgr, but there is no entry for it in efibootmgr.

You can try os-prober.

Reference: https://wiki.archlinux.org/title/GRUB#Detecting_other_operating_systems

Make sure to read the part about Windows. → Point 4.1.2.1

yes, os-prober does detect Windows, and does add it to the GRUB boot menu. It also boots it. But when booting it, Windows does something, and I have to reinstall GRUB.

I am trying to disable WBM using efibootmgr. efibootmgr is not showing an entry for Windows Boot Manager, so I can’t disable it. What do I do?

This is sounding like it’s a BIOS setting. Check the boot options in your BIOS and see if you can set anything Linux-related to boot first.

PS: Gonna be away for a while. Will be back asap.

Ok, will try something.

Ok, I found something on the Arch Wiki which forced Windows to set the boot EFI to GRUB. Thankfully, it works. that’s all now.

Okay. Great! :beers:

Was gonna suggest rEFInd next. :eyes:

It’d be great if you could share those details, for the next person who comes looking :wink: :+1:

2 Likes

sure, I followed this part of it:

    Alternatively, you can set a startup script in Windows that ensures that the boot order is set correctly every time you boot Windows.
        Open a command prompt with administrator privileges. Run bcdedit /enum firmware and find your desired boot entry.
        Copy the identifier, including the brackets, e.g. {31d0d5f4-22ad-11e5-b30b-806e6f6e6963}
        Create a batch file with the command bcdedit /set "{fwbootmgr}" DEFAULT "{copied-boot-identifier}"
        Run taskschd.msc, then choose Create Task... from the Action menu.
        On the General tab:

            Enter any suitable Name and Description.
            Ensure the user account selected is an "Administrator", not a "Standard User".
            Select "Run whether user is logged in or not".
            Select "Run with highest privileges".

        On the Triggers tab, choose "At startup" from the menu, then click OK.
        On the Actions tab, click New..., then Browse..., and locate the batch file from step 1.
        On the Conditions tab, untick the Power options so the script runs when on battery power (for laptops).
        Click OK, and enter the password of the user account selected in step 4 when prompted.

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