You need two separate SSDs. One for Linux, one for Windows.
Install Linux on SSD-A. Make sure it has an EFI system partition with a bootloader in it (GRUB, systemd-boot, REFInd), don’t use an efistub. If the installer is done, disconnect the SSD to be safe.
Install Windows on SSD-B with the desired updates. It will create its own EFI partition.
Optionally, you can create a separate NTFS volume for your C:\Users so you don’t have to mount the entire system on Linux if you need to access your files.
Boot into Windows. Use a tool to completely disable the updates. I use WinUtil by Chris Titus.
Reconnect SSD-A.
Boot and enter the firmware configuration. In the boot device list, make sure SSD-A has a much higher priority than SSD-B! You can even remove SSD-B from the bootable devices.
Boot into Linux. In the bootloader configuration, create an entry that targets the Windows C: volume on SSD-B.
Alternatively, you can just use the firmware’s boot menu to boot from SSD-B.
Done. If you need to update Windows, physically disconnect SSD-A and boot from SSD-B.
Any viable option if you can’t install 2 drives? My laptop only allows one. It currently has Win10 on it and I’m hoping to replace it with Linux with an option to boot into Windows when needed, especially for my wife who isn’t as technical or experienced with Linux. Not sure if there’s anyway to do it without Windows nuking my setup.
Simply dual-booting is viable. My Win10 + Arch worked well for over a year. If you’re worried about Windows Update nuking the EFI partition, you can clone a backup of just that partition (dd or a dedicated tool like Clonezilla) that you can then restore from a live environment if needed. Another option, if the disk becomes unbootable, is to boot into a live environment from a USB stick and simply reinstall GRUB into the EFI partition.
(edit) It’s also a good idea to reduce the frequency of forced updates. You can do that using WinUtil.
Thank you. I think my biggest concern is that I can’t fix it when it breaks, simply due to lack of experience. I’ve fixed busted Windows partitions and boot issues, but never Linux because I’ve just never had an issue with the installs I have and don’t have nearly the same number of years under my belt with it.
As you said I think first order of business is a functional bootable USB which I can use to both backup and restore the partition, and I need to do a practice run restore to prove it works and that I know what I’m doing before I need it.
I didn’t do any disconnecting or reconnecting of any drives, just installed Pop on SSD0, Windows on SSD1, and set up three partitions on HDD: one formatted for Linux, one for Windows, and one meant for them to share if I ever need that. Using W10 LTSC IoT tho, so maybe that’s why it behaves better?
Windows Update has a habit of eating the EFI partition. That’s how I finally switched to full-time Linux. LTSC doesn’t update as frequently as Win10 Pro, and probably doesn’t touch the EFI partition as much, so there’s a smaller chance for that to happen.
Dual-booting can work for years without issue. My method just ensures that Windows Update has absolutely zero chance to fuck with the ESP.
Separate hard drives one for windows and one for Linux+GRUB then grub just needs to be told where the windows boot loader is and BIOS should load GRUB default.
OP post happens when you attempt to just use partitions. It can work per other comment, just more fragile.
is there a way to avoid this? and what workflow should be in place ahead of it happening if not?
You need two separate SSDs. One for Linux, one for Windows.
C:\Usersso you don’t have to mount the entire system on Linux if you need to access your files.Done. If you need to update Windows, physically disconnect SSD-A and boot from SSD-B.
Any viable option if you can’t install 2 drives? My laptop only allows one. It currently has Win10 on it and I’m hoping to replace it with Linux with an option to boot into Windows when needed, especially for my wife who isn’t as technical or experienced with Linux. Not sure if there’s anyway to do it without Windows nuking my setup.
Simply dual-booting is viable. My Win10 + Arch worked well for over a year. If you’re worried about Windows Update nuking the EFI partition, you can clone a backup of just that partition (
ddor a dedicated tool like Clonezilla) that you can then restore from a live environment if needed. Another option, if the disk becomes unbootable, is to boot into a live environment from a USB stick and simply reinstall GRUB into the EFI partition.(edit) It’s also a good idea to reduce the frequency of forced updates. You can do that using WinUtil.
Thank you. I think my biggest concern is that I can’t fix it when it breaks, simply due to lack of experience. I’ve fixed busted Windows partitions and boot issues, but never Linux because I’ve just never had an issue with the installs I have and don’t have nearly the same number of years under my belt with it.
As you said I think first order of business is a functional bootable USB which I can use to both backup and restore the partition, and I need to do a practice run restore to prove it works and that I know what I’m doing before I need it.
I didn’t do any disconnecting or reconnecting of any drives, just installed Pop on SSD0, Windows on SSD1, and set up three partitions on HDD: one formatted for Linux, one for Windows, and one meant for them to share if I ever need that. Using W10 LTSC IoT tho, so maybe that’s why it behaves better?
Windows Update has a habit of eating the EFI partition. That’s how I finally switched to full-time Linux. LTSC doesn’t update as frequently as Win10 Pro, and probably doesn’t touch the EFI partition as much, so there’s a smaller chance for that to happen.
Dual-booting can work for years without issue. My method just ensures that Windows Update has absolutely zero chance to fuck with the ESP.
Separate hard drives one for windows and one for Linux+GRUB then grub just needs to be told where the windows boot loader is and BIOS should load GRUB default.
OP post happens when you attempt to just use partitions. It can work per other comment, just more fragile.