TLDR; tell me if this is a waste of time before I spend forever tinkering on something that will always be janky
I want to run multiple OSs on one machine including Linux, Windows, and maybe OSX from a host with multiple GPUs + igpu. I know there are multiple solutions but I’m looking for advice, opinions and experience. I know I can google how-to but is this worh pursuing?
I currently dual boot Bazzite and Ubuntu, for gaming and develoent respectively. I love Bazzite ease of updates and Ubuntu is where it’s at for testing and building frontier AI/ML tools.
What if I kept my computer running a thin hypervisor 24/7 and switched VMs based on my working context? I could pass through hardware as needed.
Proxmox? XCP-NG? Debian + QEMU? Anyone living with these as their computing machines (not homelabs/server hosts)?
This is inspired by Chris Tidus’s (YouTube) setup on arch but 1) i don’t know arch 2) I have a fairly beefy i7 265k 192gb build, but he’s on an enterprise xenon ddr5 build so in a differenrent power class 3) I have a heterogenous mix of graphics cards I’m hoping to pass though depending on workload
Use cases:
- Bazzite + 1 gpu for gaming
- Ubuntu + 1 or more GPUs for work
- Windows + 0 or more GPU Music Production paid vstis and kernel-level anti cheat games (GTAV, etc)
- OSX? Lightroom? GPU?
Edit: Thank you all for your thoughts and contributions
Edit: what I’ve learned
- this is viable but might be a pain
- a Windows VM for getting around anti-cheat in vames defeats the purpose. I’d need a dual boot for that use case
- hyperV is a no. Qubes Qemu libvirt, yes
- may want to just put everything on sparate disks and boot / VM into them as needed
Edit: distrobox/docker works great but doesn’t fit all my needs because I can’t install kernel-level modules in them (AFAIK)
I think that’s possible. Some people regularly do their work in virtualized environments. Some developers, some people do this for security. And some companies have their employees run everything over network via a thin client / VNC.
It’ll be more complex, and you’ll probably spend some time setting it up and dealing with some edge cases and unforeseen annoyances. You’ll spread your data over several (virtual) computers and probably need some network share or file sync. And whether dynamic assigning of GPUs works, depends on the exact circumstances. Linux has a few tricks available to reset GPUs, mess with the firmware and reassign devices, or pass through things. But last time I tried, that was a lot of manual work. So does audio production if you need real time. And I think the “ease of updates” will be overshadowed a bit by now five times as many operating systems to keep up to date. And I don’t know much about anti-cheat. I usually skip those games altogether and the rest runs fine on my main distro.
Other possibilities: You could just use one main operating system and install some virtualization software there. And for development and ML you could also use something like Distrobox.