What is the most painless and minimal way to dual boot these days?

recarsion@discuss.tchncs.de to Linux@lemmy.ml – 90 points –

I've been happily Windows-free for about 5 years, but lately I need some Win-only software including a few games that don't work at all on Linux. My main questions:

  • How to avoid Windows messing with my Linux install? Having a separate PC is not possible for me right now. I'm considering uninstalling grub and instead selecting the boot device I want from UEFI, idk if this is advisable though.

  • I'm also interested in how to get a Windows install that's as minimal as possible: I don't want to log in to a Microsoft account, I don't want telemetry etc, I only want whatever is strictly required to make my system functional. The one thing I do want is Windows Defender cause ain't no way I'm dealing with an antivirus.

  • Should I go for Win 11 or stick to 10?

Any tips or experiences are welcome!

Ps: I know this information is probably all out there, but I thought a post in this community about it would be useful for others as well.

UPDATE: I ended up going with a regular old dual boot using Windows 10 iot LTSC - there's a few games I wanted to run and a driver as well so I chose to install directly on hardware as opposed to a VM. I created the install media using Ventoy, and UNPLUGGED EVERY OTHER DRIVE during installation except the one Windows was supposed to come on. Afterwards I had to boot in with a live Linux USB (the nice thing about Ventoy is that you can write multiple ISOs to your USB so it came in handy) to manually install rEFInd onto the original EFI partition that my Linux install uses, then I just had to set up the correct boot order in UEFI and everything is working. I also had to fuck around on the boot partition and with efibootmgr to remove all traces of grub so things don't get tangled up which was a bit scary but things are working perfectly now.

75

Two physical drives. Install windows first in one, then Linux on the other. If you don't do this order windows boot manager will take over and you'll have to boot Linux from bios.

I'm not using dual boot anymore, but when I did, I always selected the partition from BIOS, which was totally fine for me. Are there arguments against it?

Only an issue if you don't disable fast shutdown on Windows. A hibernated system might get surprised if another OS moves files about while it was asleep.

Windows is never going to like an NTFS that has been touched by another OS even if it windows was completely shutdown during that time. Reading the NTFS partition might be okay. But, last I checked none of the Linux drivers could write without windows noticing and fouling things up. If that has changed it would be welcome news to me despite my warning use of windows.

If windows (and to a lesser extent that other OS) came bundled with some ability to mount, read, and write filesystems popular with other operating systems this wouldn't be such a problem. One shouldn't have to involve the network stack or 3rd party drivers just to share a partition on the same hardware or a portable drive with a modern file system.

Will it maybe work if I just unplug my Linux drive during the Win install?

I'd recommend having the Linux drive unplugged during the windows installation. Windows, for some reason, will install the boot loader in an entirely different drive than what you selected. There's no question or prompt to prevent this. The only way to easily prevent this is to just have the one drive plugged in.

Yeah, I had to disconnect all my SATA HDs to stop the Windows installer from shitting all over them.

I'd be worried about Windows updates doing the same thing now, after the the recent glitch that broke bootloaders.

It's common for windows updates to delete boot parts or Linux, corrupt grub, etc. That is only when windows and Linux are installed on the same drive together. I have yet to see Windows corruping Linux on a separate drive entirely. Never happened to me despite how much I mess up my grub updates distro hop.

One problem with that is that you will end up with two EFI partitions. This is not supported very well by anything, really, so you will run the risk of Windows messing with the wrong partition anyway.

i've been running two drives two EFI partitions dual boot for some time now and it never posed a problem specific to it. on the contrary it makes it easier to distro-hop since you can format the Linux EFI Drive and resize it however you want depending on the distro.

Yep, dual disks with the Windows installation done first is how I did/do it. GRUB/systemd-boot worked just fine from then on, and I am not on Windows 11, so I didn't get hit with that fuck-up Microsoft did just a few days ago.

My aproach was to use two drives. I had Windows on the first, then disconected it and installed Linux on the second. That way I dont have grub and use F11 to open the bios bootloader to select the system I want.

Simple and reliable has a lot to be said for it.

I like rEFInd

I also recommend rEFInd for the bootloader if you don't want to set anything up (and risk messing up). You don't need to configure your boot entries, it scans for boot options and shows them with a graphical interface, so your Linux and Windows should just show up.

If I have a new PC with a blank hard drive, what should be the install order?

Windows, then rEFInd, then Linux?

Linux, Win, rEFInd too. Windows is the destructive force here, so rEFInd should always go after it.

My first line of investigation here would be virtualization. It will solve the "don't mess with my Linux install" problem and will let you use the windows apps you need at the same time as the Linux apps you normally use. Also VMs have all their other useful features like snapshots and portability.

I did this in the distant past and it was quite convenient having the VM instead of a dual boot.

Good thinking, I'll definitely look into that. One caveat is I'm going to need a driver that's also Win-only so I'll have to see if that works in a VM.

2 more...

If you insist on dual-boot: two separate physical drives.

Otherwise: use linux with a windows vm.

One thing I've been trying lately that's a bit different: I happen to have an old SSD that had an enclosure with it (kind of like this) which essentially turns it into an external USB drive.

I then used Rufus to install Windows on that drive, using the "Windows To Go" option and also checking the option to not allow Windows to access the internal drives. That way, my laptop can just happily run Linux by itself, and if I need to use Windows for anything I can just plug the drive in, hit F12 on boot and choose to boot from that drive instead. The added bonus is that Windows also can't mess with anything on my regular system or monkey about with the boot loader.

I've only had it on there for about a week but it seems to be working perfectly fine so far!

Oh and also Rufus gives you the option to start with a local account already set up, so you don't have to do the MS online account bullshit. And then after install I used ShutUp10 to turn off as much telemetry as I could.

Hm this sounds very interesting, it would be pretty convenient, I'll look into it

The most painless way to dual-boot is to install something that's not Windows alongside something else that's not Windows.

  1. Get 16gb of ram and CPU less than 5 years old.

  2. Install Windows 11 in a VM

  3. Install the virtio drivers from the Fedora project link

  4. Profit

How good are the virtio GPU drivers?

I’ve only really messed with them on servers with their ancient ass GPUs from like the early 2000s. Back in 2015 I remember running GTA 5 on a 2013 iMac with iris pro. In windows I got 30+ gps at 1080p, and through parallels I got about the same FPS at 720p.

On Windows they can't really be used for gaming to my knowledge. However, they are used for the UI

Is there a reason you need a dual book instance instead of a VM or even WINE?

Unless you need direct access to hardware and if you have enough RAM, you can probably avoid dual booting altogether.

I exhausted the WINE route, some games I want to play don't work with Proton no matter how much you tweak (the first time I'm running into this in a few years) as well as some additional software. There's also a driver I need to run that's technically available on Linux but it's a reverse engineered solution developed by one guy so who knows if it's gonna keep working.

developed by one guy so who knows if it’s gonna keep working.

If that scares you, don't look too far behind the curtain on any open source project.

Fair point, xkcd was right https://xkcd.com/2347/

All my machines are running a distro maintained since 1993 by one guy who's slowly running out of money.
But the beauty of open source is: If there's demand for something, other devs will pick up the project, or develop a replacement.

Dwarf Fortress runs fine in Linux. Are you telling me there are other video games?!?

Like others have said, I just use two drives, and I can boot into Windows with GRUB.

However, these days, I just do a VM with GPU passthrough. (I installed a second graphics card in my PC just for this.)

The default actually works pretty well these days.

Messing with the EFI partition, for instance by attempting to have two of those on separate disks, will probably cause you more pain than Windows will. As far as I understand, only one EFI partition can be configured in BIOS as the boot partition, so you will have to change the configuration in BIOS whenever you want to boot to the other OS.

Windows does have a history of changing the default EFI bootloader once in a while; however your chosen bootloader is still there, just not marked as the default anymore. A Windows app like EasyUEFI will let you change the default back.

Windows doesn't mess with the Linux install anymore, that was with BIOS boot. Just make sure the EFI partition is big enough so you can fit both.

Does it not? I've seen posts about grub being borked after Windows updates, or was that only on legacy BIOS systems?

can report UEFI installs of PopOS and Mint were recently borked by a Win11 update.

As far as I know, that only stops out of date versions of grub that have a certain vulnerability from running that would allow escaping Secure Boot. Meh. It doesn't touch any Linux files or anything and you can boot if you turn off Secure Boot so you can fix it. Long shot from what used to happen where you could only have one boot loader installed at a time so installing Windows would wipe what was there before.

(and by fix it I mean replace grub with systemd-boot)

An update borked my eufi setup last year, good riddance, Microsoft.

It’s not supposed to at least. There was a bug recently where it broke the bootloader. But windows is supposed to be able to tell there’s another OS and not break it.

Swappable hard drives

I have a ThinkPad with easy access to the hard drive. It's one screw, remove a small panel and slide out the hard drive, slide in a new hard drive and reinstall the panel and screw. It all takes about a minute.

I have a drive for my Linux setup and another for windows.

I gave up setting up dual boot setups because I'm not as skilled or capable and I've lost entire setups in the past due to updates and changes and it was constantly frustrating for me. So I figured that just swapping hard drives was the easiest for me. No configuration, no changes and neither OS can interfere with one another.

I use my Linux as my daily driver for everything and windows when I need something from windows. I only ever use windows maybe once a month or once every second month. I spend more time regularly updating windows than in actually using it.

Using modern UEFI booting with a 1GB shared ESP and grub2 has worked just fine for me in the last 8 years. os-prober has always just found the Windows install and generated the necessary boot entry for grub. Windows has never trespassed into the Fedora or Ubuntu folder of the ESP as far as I can tell.

If by "these days" you mean a motherboard that supports UEFI, then it honestly doesn't matter anymore. Your board controls the boot order, and there isn't an MBR for Windows to mess with anymore. Just plan out your partitioning careful before hand, and if you plan on using a lot of files in both OS's, make a plain storage partition that is easily mounted under Windows (NTFS does not count).

Honestly, aside from a very scant number of apps or games, there isn't a real need to dual boot anymore. If you can't run something under Proton or Wine, having a Windows VM will get the job done.

NTFS does not count

Aren't NTFS and exFAT pretty much the only option?

Well, you can really mount whatever works in Linux with ESL, so that's an option. Linux does have native NTFS support in the kernel, but I wouldn't suggest using it for read/write because it can't repair itself. It will almost certainly corrupt over time.

You can still use ext2fsd to use ext partitions in Windows I believe. FAT isn't going to be the easiest to get along with more than likely.

I put windows 11 live on a £20 USB drive, and it hasn't messed with my Linux install at all

If your windows software works in a vm or wine then that might be a better choice for you.

The only thing windows will do with to a Linux install anymore is mess up the boot. People still say two separate drives is the optimal choice to prevent this but it really doesn’t save you from anything but fat fingering your own partitions during the install process and if the disks are the same size/interface/manufacturer it doesn’t do much there either.

So as has always been the case since dual booting existed: install windows first, saving the space you want to use for Linux then install whatever you want. Have your distributions preferred method of repairing failed boot on hand so that when something breaks unexpectedly you can fix it. Often it’s more than a boot repair tool, but an entire bootable environment that can be used for all kinds of purposes.

Use uup dump and rufus to make a windows installer and put it on a usb. I specifically recommend rufus as opposed to dd or other normal way of doing things because it has special options regarding windows oobe and requirements that will be invoked on use.

It doesn’t matter if you choose 10 or 11. Both can be had in ltsc channels. Dealers choice, you’re the one with software that needs it!

I added a second SSD to my windows laptop and installed Linux on it. I configured the BIOS to boot from this second SSD. Painless!

Might as well go for Win11, you're going to have to deal with it next year anyways.

Windows doesn't do minimal, it does whatever the hell it wants. There are some OOBE tricks to get a local account working.

I have used the privacy.sexy app to strip down some of the most obnoxious Win11 bits - be warned that you have to disable defender to have it work. Is it doing bad things? Is MS doing incredibly shady shit with their detections? Who's to say? When I turn on Defender afterwards, everything seems "fine".

There's no need to get rid of grub, or play games with different boot drives. Get to know how EFI works. Look at efibootmgr's output - that's pretty much all that the firmware knows. The firmware has multiple entries consisting of a drive (magic device number), a program path (EFI\grub\grub_x64.efi), and maybe a string to pass along. There is a priority list (0003,0001,0002) which MS occasionally likes to re-arrange.

Getting a second drive just for windows I think is a good approach. If you were to do so, it's important that you remove all other drives while installing windows, otherwise the Windows installer will put its boot files into whatever existing EFI partition it finds.

Then using something like https://github.com/Raphire/Win11Debloat you should be good to go with a relatively clean setup.

To have a local account, I use Rufus to setup the usb installer in a way that it automatically creates the local account, and it can also disable the secure boot and tpm requirements from the installer if you want. Though I think rufus is a windows program only. I know there's the "OOBE" approach for the local account, but I haven't done that before. That could be an option too

Others have answered your dual-booting question pretty well. However, along the lines of "minimal" Windows, it's not generally recommended to fuck with the system as that can break things. There are scripts that can strip a lot of the problems, though. I can't remember any off the top of my head.

As for not requiring an account, I have old ISOs of Win11 and Win10 where the unplugging my ethernet cable trick gets me around signing into a Microsoft account. Not sure if it works on the ISO you get from Microsoft now, however. And if you have built-in WiFi, I think there's a way to disable it in the command prompt before you install.

Edit: Win10 is going to hit EOL in the near future. I am going to use it until then. It's got a lot fewer concerns (for me) than Win11, unless Microsoft keeps filtering Win11 shit into it.

Having another PC with minimum requirements only for Windows?

Letting windows install on its own drive by removing the linux drive (otherwise it will select that drives efi partition), I use systemd boot and I just copied the EFI/Microsoft folder from the windows drive efi partition to the linux efi partition systemd-boot will auto detect it. As for minimal, just use windows 10 ltsc, or windows education and use a debloater tool that is trustworthy (I like winutill).

As for the second question: Windows 11 IoT LTSC has yet to be mentioned here - the only things that can stop you from using it are legality and convenience.

I'm not sure if W10 has an IoT LTSC version, but W10 LTSC does exist.

I've got two separate drives. Linux Mint on an SSD and Windows 10 on an older, mechanical drive. Leave the Windows drive alone. Make the Linux drive the first drive in your BIOS boot order, with the option to boot to Windows as your second drive.

If your GRUB menu doesn't show the Windows drive yet, run "sudo update-grub" to detect it. When your reboot, the bootloader should show both options.

Windows 11 iot enterprise + opensuse tumbleweed kde works flawlessly

I have Windows EFI and Linux EFI partitions on same srive. Secureboot is set to load Linux EFI Grub, a chainloader entry in Grub will handoff to Windows boot loader if I choose that. it has stayed intact for 7 years this way without windows knowing or touching the other EFI partition. But separate drives is probably even better

I use a Windows VM (Tiny10 works ok here) in whatever lightweight linux OS I'm fucking with at the time. All my files and stuff are on a local server so I can swap distros easily if I want.

Usually it runs ok, can game, and I dont have to deal with restarting a bunch of stuff. I've been using CachyOS, not sure if I like it yet

For minimal Windows, there's Tiny11 (german).

My setup (partially in planning):

  • a small box/notebook for casual computing/gaming on desktop.
  • One beefy box hooked to the tv and controller for RPG & co.
  • Remote-desktop to the beefy box for modding & some games. Cable connected, wifi makes remotedesktop slow.

I'm playing with the idea to use Windows on the (not yet completed) beefy box, since some modding tools and multiplayer games don't work on linux.

This setup avoids hassles with dual boot/virtualization. And you don't have your beefy box running 24/7.

You can (at least the last time I ran an install) get both 10 and 11 installed without a Microsoft account, 11 just requires this process to do it. If you have an old ISO of 11 around it should allow a local account if you don't connect to the internet, but they apparently patched that out now.