I’ve been dual booting Linux and windows for about two years now, but in those two years, I have never booted into windows, except by mistake.
This made me think about removing windows and just saving that wasted space for Linux. I only ever dual booted for the off chance the peer pressure to play anti cheat games was too great, but so far it hasn’t.
For the off chance where I want to play a game that doesn’t run well on Linux, is it a good idea to do that via VM instead of dual boot, or is it too much hassle? Will there be performance hit or any issues with those games?
Thank you all for the helpful answers. I’ve deleted Windows and decided to not even try running it again.
Hello Gentoo Linux full-time!
The good ending
I was in the same boat as you and deleted Windows two years ago. Never regretted it and I’m sure you won’t either 😃
The VM isnt going to have the specs of a true Win boot because some of the resources will be used to run Linux. The Win VM will still take up some storage space even if dynamic. If youre really set on playing Win-only games that are resouce intensive, I dont recommend getting rid of a a true Win boot.
Or, you can be like me and just stick to games you can play on Linux only. As far as Im concerned, if my Linux Mint can’t play them, they don’t exist.
i’ve had good success with this but ofc ymmv. it can be hard to get your windows vm performance tweaking right and it can take a buttload of time. if you want best mitigation of anti-cheat risk and best performance then you should continue to dual boot imo.
Do you do this to play games with anti cheat? I read that some games detect that. Are there ways around it?
depending on how you virtualize your windows install, yes, there are ways to kind of “spoof” your machine details (like manufacturer, desktop instead of vm) but again, it won’t be fool-proof and it might take a lot of time to get working well. i definitely have not tested that many triple-a windows games with anti-cheat because that’s just not my gamer wheelhouse, but so far after spoofing some of my machine details (spoofed as a baremetal oem install) i haven’t had any issues.
What hypervisor are you using?
I use proxmox and run a couple windows VMs for Remote Desktop. I’ve passed through nvidia gpus and even at point had a nvidia grid setup running splitting up a P40 across multiple VMs.
The nvidia gpu’s require several config options to ‘spoof’ a real desktop and prevent the code 43 error but windows still identifies them as virtual machines. I’ve never found a way for trick windows itself into thinking it’s stand alone.
deleted by creator
Its been a while since I’ve had any gpu’s attached to a windows VM but I think my time pre dates the change. I realized they were not actually doing anything for my given workloads so I sold most of them. The P40 is setup in a VM for tensorflow now and one of these days Ill get the time to go back to that.
deleted by creator
I have recently been playing with VMs in Unraid and in the video tutorials I’ve seen they talk about about grouping together (by editing xml file) the video with audio that comes the GPU to avoid that error[1]. Also about passing a modified BIOS. Are those the workarounds been talked about here?
[1] multifunction=‘on’
for hypervisor i’m using libvirt+qemu. by doing this, a few lines in the .xml for the vm is all that is needed for me to enable some hyper-v feature flags to spoof to windows that it’s not a vm. check to see if proxmox has some hyper-v features you can enable for this purpose.
@cyclohexane Anti-cheat will often detect and prevent/ban it, so the use case it fills is that ever-shrinking group of games that run on Windows, can’t run under Wine/Proton, and don’t have anti-cheat.
Not sure it’s worth doing at all.
So it looks like either commit to dual booting, or commit to never playing those games…
Maybe I’ll just commit to never playing them. I’ve never used windows in 2 years, so it’s a waste keeping it…
I’ve read that the anti cheat engines will be triggered by a virtual machine. Not sure which games you play but you might have issues if they are online.
I wanted to go the VM route about a year ago, but I ended up deciding that it was just too much hassle and have kept my Windows dual boot for the extremely rare occasions that I need to use it.
I started out using the GTX 770 from my previous PC as the secondary graphics card to pass through to the VM - which is a lot easier than doing it with a single graphics card - but given how often I actually need to use Windows, I didn’t feel particularly comfortable with the extra power use.
So I decided I’d have a go at single GPU passthrough - which took me probably about six months of on/off (mostly off, admittedly) tweaking to get to a usable state. The first time I managed to boot Windows from my Linux install, I nearly cried. After a while fiddling with it, I decided that, as technologically awesome as it is, it really wasn’t that much different than running it on bare metal. The straw that broke the camel’s back was my inability to get Windows to gracefully hand the GPU back to Linux, despite the fact that it should have been as simple as reversing the steps to give Windows the GPU in the first place.
It used to be worth it, but Linux can run so many more games now thanks to Proton and other improvements. Most of the games that won’t run on Linux now don’t run due to anticheat, and many anticheat programs don’t like VM/GPU passthru.
So basically I don’t consider it worth it anymore.
[This comment has been deleted by an automated system]
I’ve been running a setup like this for years without issues. Only the initial setup was a bit cumbersome, specifically getting it to work with just one GPU. Ran two for sometime before I got it working without issues though
It’s possible to do passthrough with a single GPU? I thought the whole point of passthrough was that the guest operating system took control of the hardware directly and that precluded sharing it with the host. Is single-GPU passthrough with an accelerated desktop on the host viable?
Yes it is, but ofc. the host screen goes blank when you start the VM. I run enerything on one virtualization host as VMs so this is not an issue. Basically I can run one machine that requires the gpu at a time, and of course all the headless ones like servers and the firewall keep running normally in the background.
I see, that makes sense. So basically serially passing the device around from one system to the next. Thanks for the response, it’s been a long time since I looked at passthrough and this is news to me.
Well in terms of anticheat, VM’s require immense amounts of knowledge to avoid detection. Ive heard specifically that Rainbow Six: Siege will ban you for playing under VM, as well as Valorant. Dual booting is best to avoid anticheat, but if that doesn’t matter, then a VM with passthrough can be extremely performant.
Hey op if you do go with passing through your GPU check this out https://looking-glass.io/
I did this for a while with single GPU passthrough, Although keeping it working didn’t seem to be worth it in the long run.
I’ve got it working in the end, but it was a lot of fiddling, googling,reading and stealing tidbits from different guides and a lot of trial and error, so unless you have a specific usecase (in my case it being a VM on my living room media server & getting VR working) i would go with Proton first, dual boot second.
These days this is rarely that useful. The most common reason games don’t work on Linux is anticheat, and games with that kind of anticheat tend to try to stop you from running them in a VM too. There are ways around that, but it’s an annoying cat-and-mouse game.
I am running Windows 11 (and before Windows 10) for years, using Steam, GOG, Epic, Origin. Have over 300 games, probably played 100 of them over the years. Never been blocked by any Anti Cheat software - in fact I would love to hear who has been banned and look into the details. Also I am unsure why people say that there Windows VMs inefficient, I would love to see some statistics about that.
I use GTX1080 passthrough-ed with Qemu/KVM and AC Valhalla works with over 60FPS on Ultra.
Proper setup requires some time of tinkering… Make sure you setup hugepages, proper CPU pinning, you need to play around with kernel boot params, direct passtrhrough of NVMe helps… Googling helps a lot…