Solution: When I formatted all my drives to install Linux on one and Windows on the other, I kept both connected and they share EFI boot partition as a result. Every time I reinstall Linux it formats the drive and therefore deletes the Windows’s EFI Boot as well. One way is to fix this is to reinstall Windows while disconnecting the drive you have Linux on. Or you can move the boot files if you don’t want to do that.
I used this guide: https://forums.tomshardware.com/threads/changing-windows-boot-manager-drive.3571420/post-21561626
Also remember to delete the Microsoft folder in the boot folder on Linux after you’ve checked that the new boot loader is working.
OP:
Currently dual booting as I need Windows for a few tasks and ganes Linux just won’t do. Since setting everything up I’ve reinstalled Linux twice, both times I’ve lost the ability to boot into windows and have needed to reinstall it.
Disk doesn’t show at all in Grub, tried all kinds of things but it just doesn’t show as a bootable OS. It doesn’t show in the boot options in the BIOS or the boot menu for my motherboard. Drive shows up and all the files are still on it. So my guess is the Windows bootloader somehow installs on the same disk that I have Linux on.
I run Linux(Fedora) and Windows on two separate drives.
Windows take forever to install. Anything I can do now to prevent this from happening if I need to reinstall Linux or if I wanna to some distro hopping?
Just to be clear, everything is working right now. But I want to prevent having to reinstall Windows every time I change distro or reinstall my Linux OS
Do you have the os-prober package installed? I haven’t used Fedora in over a decade, so I don’t know if it’s a default or not.
Yes that’s present and working.
Issue is that my BIOS doesn’t find it either. So something happens when I install a linux distro that breaks the Windows boot loader.
When I reinstall Windows, I can update the grub and it shows up. (It’s also back in the BIOS after reinstalling)
I was doing some quick research and saw someone suggest installing each OS with the other drive disconnected. That way you can first get each one working individually and there’s no chance of one messing with the other’s bootloader.
I was hoping to avoid that, but that’s gonna be my next move.
Unless I forget and break windows again. Words can’t describe how tired I am of choosing the 37 different options during the install, updating the OS 4 times and installing my apps and deleting bloat. 😂 Windows 11 is great and all, but Microsoft loves to make it unbearable to use.
Install Windows, but leave drive open or a partial space on windows drive. When you install Linux, don’t let it install the EFI boot into the Windows EFI boot partition. Instead have the partition manager build a new boot partition+root home etc. Grub will install on its own partition, OS prober should find the Windows drive too, and it will add a chainloader entry to grub. Set your machine to always boot from Linux grub, if you want windows you select it in grub and it hands boot over to windows boot. This way they are isolated and Windows never knows that Linux grub exists and will leave it alone.
same, and make sure fast boot or whatever fast start up is disabled in windows
I’ve had Windows and Linux installed on the SAME drive for decades and don’t have this issue. Install Windows first because it WILL fuck up the EFI boot partition, that’s inevitable because Windows sucks, then install Linux, use the manual partition option and simply select the existing EFI System partition for the EFI and DO NOT mark format, Linux will then install and leave the Windows boot loader in the EFI partition undisturbed.
Linux WILL overwrite the boot block to start grub instead of the Windows boot loader, but most Linux distros will automatically add a chain boot loader entry to the grub menu to allow you to boot Windows, at least Debian and Redhat derived distros will do this, probably a more manual process in Arch derived distros.
If it does become necessary to install Whendoze after Linux, you can use boot-repair to automatically fix the EFI System partition Windows fucked up or you can boot off of a flash drive, and fix it manually.
Adding the solution to your post is a classy move, and I approve
I saw that you said windows is on SSD and Linux on NVME. Sounds like modern PC. In my case, I use the motherboard’s boot menu. It asks which drive I want to boot from. If I need windows, I choose the drive which has it. If I need to reinstall, I remove the other drive. I don’t need grub to probe other drives. Plus, grub menu books super clean.
have you tried updating GRUB, or replacing GRUB with something like rEFInd?
Yeah, I have to do that after reinstalling Windows again. Just did and that solves the issue of getting it into Grub so that I wont have tot go through the BIOS.
But when I install Linux, the Windows boot disappears from the BIOS too. Even tried to find it trough the «Repair» options when booting from a Windows USB, but it’s just gone.
Is it possible that Windows and Linux shares UEFI partitions even if they’re on different drives?
Did you install os-prober so that GRUB can look for other OSes?
You could use a separate drive for Linux.
I am. Windows is on a 2.5" Sata SSD while Linux is on an Nvme M.2 drive
Hmm. Windows shouldn’t be putting anything on the Linux drive. Maybe disconnect the other drive before installing Windows.
It shouldn’t, but that’s about the only thing I can think of that does this. I already know how to find windows in grub again, but it’s also gone from the BIOS boot options and it happens very specifically after installing Linux on the other disk.
Already installed Windows again so I can’t do that. But I could disconnect the Windows drive when I install Linux.
Maybe asking this on a Windows sub would be easier? I suspect this is a Windows issue and not a Linux one but I’m honestly not sure.
Yeah you could try installing Linux with the Windows drive disconnected. I had Windows and OpenSUSE Tumbleweed installed with two drives on my old PC without any issues.
Last I checked, if you want to dual boot, you HAVE to install Windows first (or disconnect the linux drive before hand), otherwise it will mess with your boot partitions on all drives.
Windows is also prone to mess with boot partitions randomly long after the initial install, so be wary