[SOLVED] Installing Linux distro without breaking Windows install
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.
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
Fucking hell that’s a real pain in the arse solution you have there.
If you have two drives then one will be sda and the other will be sdb. Install Windows first on sda (which will mean the boot sector is on sda) then install linux to sdb.
When you get to the part in the Linux installation process where it asks where you want the boot partition tell it to install on sda.
Then anytime you want to install and try a different distro just install to sdb with the boot sector on sda and grub will always detect and add Windows to the boot menu.
First of all: You don't have to reinstall Windows to get it's bootmgr EFI and supporting files back into the ESP. Installing those from the CLI in from a booted install media is possible, I did it before. You can even install all of Windows manually if you ever need to, it's just annoying to do with the windows command line tools.
Secondly: I'm not familiar with all distro installers, but surely you can just not format the ESP? Worst case scenario you'd have to use manual disk formatting I guess, but it's not that difficult.
Thirdly: You said Grub doesn't show the disk. If you mean the Grub command interface didn't show the disk, then the issue is deeper, at a UEFI or hardware level. If you mean there are no boot entries for a Windows install to be selected, then it could be that they were not generated because the Windows bootmgr EFI was not found when Grub got installed. Sometimes just booting back into Linux and running os-prober again might be enough, if the Windows bootmgr EFI is still around. On my distro the os-proper is automatically run when I run grub-mkconfig -o /boot/grub/grub.cfg
I've always used a shared ESP for my dual boot systems and I certainly don't reinstall one OS as the result of a change with the other.
Ah that makes sense then. I was confused why you would wipe your ESP over and over when it was shared.
I don't know why it comes off as hostile, it wasn't intended that way. Sorry for not expressing it better!
If the last sentence came across badly, that was more meant to be incredulous that people accept all these workaround instead. There are other comments in here that go to ridiculous lengths to enforce separation, like using the UEFI boot menu to select a disk manually. To me even having two ESPs seems overly cautious, and against the design philosophy. Sharing one ESP is really not an issue (at least as long as you know you're doing it, as you unfortunately found out the hard way).
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 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.
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?
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