But to be honest, I feel a little overwhelmed. I don’t want to mess around with my system too much, yet I would like a VM that behaves as “natively” as possible.
Back in my Windows/Mac days, I was a happy VirtualBox user, but that is 10 years ago and maybe you guys have some useful hints for a newbie? Like a comprehensive starter’s guide or something?
if you want native, KVM+QEMU+virt-manager
but if you want to ease integration and not overwhelmed with manual config, vmware is decent (though there is some bug with latest kde, can be fixed temporary with installing some package, kinda forget tbh), i already moved from vmware and goes all the way with kvm path, for winapps
I’m in the same boat as you. Was a happy VirtualBox user once upon a time but it hasn’t been quite as easy to work with for the past couple years. I never bothered figuring out why since I took the opportunity to shop around and settled into something else.
Came across this easy Virt-Manager setup and have been using it ever since.
I have a workstation with 128GiB of RAM and three GPUs (two dGPU and one iGPU). I pass over an NVMe drive, a GPU and the USB controller on a TB dock to my Win10 VM. It boots faster than native, works like a second machine and I can boot natively into it if I need to (mainly to update FW). Anyways, if you need to pass over PCIe HW to your VM, there really isn’t a better/easier option at the moment than KVM+QEMU with virtmanger as the GUI.
If you don’t need PCIe pass-through, literally anything will do the job, but GPU acceleration on Windows is honestly pretty bad with all the current options. There is a recent Mesa merge request for Venus on Windows 10 which will be very nice for systems without SR-IOV or multiple GPUs for performant graphical acceleration on Windows. I’ve played around with Venus on a Linux guest and it worked really well but was somewhat complicated to setup since it needs “blob” support to work best. VirGL works fine too, but is easily outperformed by Venus with Zink in most situations (from the benchmarks I’ve seen).
If you store the VM as an image file, don’t put it on a btfs partition. Use xfs or ext4 instead. I prefer to put my VMs on actual disks (not an image file) so I can boot them natively when needed. You don’t need PCIe passthrough to do this either, its just more performant if you do it that way (e.g., pass through the SATA controller or NVMe drive). I forget the exact details on how to do it, but I made a Win10 install on a USB HDD that I could then boot from directly. Similarly, you can also remove working drives from another machine (e.g., SATA SSD) and boot into them, which can be handy too.
If you need to use a performant Win9x / DOS VM, the better options are 86box and dosbox-x. These both work well when dinking around with super old SW and provide decent graphical acceleration. QEMU doesn’t do well with Win9x. Everything (QEMU/VMWare/VirtualBox) seems to work okay with XP and Win7. Windows 10 and QEMU, however, is tricky. You have to use at least 1809 or you get weird crashes. (I always try to use the oldest version of Windows 10 I can get away with since it is a bloated mess that only got worse with each new release. Win11 only continues down this path and is why I moved over to Linux full-time.)
There’s a nice explanation of what KVM vs QEMU is here.
Briefly, KVM is a module in the kernel that provides (direct) access to hardware for virtual machines. QEMU provides the virtual machine for the guest to run in.
Virt-manager uses libvert to manage it all with a nice graphical front-end.
I am a vmware workstation person, you can enable 3d support and it works flawlessly. I tried QEMU/KVM but as noted, Windows performance is just awful for using it like your main OS.
I use a Windows 11 Ent VM daily for work in workstation and it is the same as using the laptop sitting right next to me.