Dual OS Workstation using Virtualization

I would like to setup virtual machines for Windows 10 Pro and Linux (probably Fedora) using a bare metal Hypervisor like ESXi maybe? (but open to other suggestions as I’m very new to this).

My current plan is to have two monitors, and two graphics cards; a GTX 1080 for my Windows 10 VM and a WX 7100 for my Linux VM.

I have a 2700X, C7H, and 32GBs of DDR4-3200 14-14-14-34. I would like to have 4 cores, 8 threads, and 16GBs of memory for each of my virtual machines. Ideally I would also like to share a keyboard and mouse between them using software (maybe Synergy?) but I’m also open to having two keyboards/mice if I have to.

I currently have one 250GB NVMe SSD (that I currently use for Windows only). My plan is to give this drive to the Linux virtual machine and I’ll order another NVMe SSD, probably 2TB for my game library, etc.

I’m early in my research and I would love some help making this happen. I currently have a working system using the parts above (except the WX 7100, haven’t bought it yet). I would prefer to use the components I have but I understand that incompatibility exists and I may have to swap out parts.



The only issue I see is technically GTX cards don’t support pass through, but there’s work arounds.

Another thing, you don’t have to use a hypervisor. KVM on Linux supports pass trhough, that might be a better option.


For a machine you plan to plug controls directly directly into, i really don’t think ESXi would be the best bet. I’m not even sure you’d be able to split out USB to different VMs using IOMMU, but i could be wrong.

It’s very much NOT what the ESXi product was designed for.

I’d be more inclined to go the linux + KVM route and use Linux as the host/linux desktop with windows in a VM using looking glass.

You’ll find a lot more info on that process and you’ll only need to split hardware between two operating systems rather than three.

Also, you’ll have 32 GB to split between only 2 operating systems. VMware suggest a minimum of 4 GB for ESXi, and whatever host you choose you’d need to take host platform requirements into account and not allocate that to VMs.


It’s absolutely a better option. It means that you allocate memory to Windows and the rest is usable by Linux. I believe Windows (with hyper-v) also supports passthrough. Someone should check me on this.

@enby-girl I get by just fine doing Windows in a VM on my Linux box (R7 1700) with 32GB of ram. I think you’ll be very happy using Fedora as your host OS.


Not for a GPU in the way that KVM does. The support is there in Windows Server Hyper-V but only with GPU’s that certifiy it (not nvidia gaming GPU’s) and the support is not there at all in Windows 10 hyper-V. You can passthrough a Network card or Hard disk though.


Do you know of any guides for those workarounds? I’d prefer to not have to change to a workstation card for my Windows VM since it’ll just be used for gaming and internet browsing.

Thank you for this information! I had heard of KVM but I didn’t really know how it fit into this or why it was better but this makes sense. Do you know of any guides for making this happen? Thanks!


This should help. :smiley:


@enby-girl If you have any questions after reading through that thread, feel free to ask them. That article is focused on Arch, but it should be a good place to get your feet wet.


Installing Fedora Server and using Cockpit Machines will give an easy, web-managed Fedora-based Hypervisor. Then you could log into the server and still do stuff. You could even run sudo dnf install -y cockpit-machines on a Fedora Workstation and that should set everything up.

If you don’t want a web-managed version, then VirtManager is nice. I think you just need to type sudo dnf install -y lib-virt virt-manager.

As far as passthrough, idk. I’ve never used it so idk if it will work flawlessly or not.


Now you’ve got me interested. Time to play with cockpit machines.


Doesn’t cockpit connect through virt-manager? So you can do both.


Probably. That’s how openstack works as well.

Well, technically, I think they both work through lib-virt. So they have the same backend but you don’t need one to work the other. I think… But some people prefer web interfaces to applications and vice versa.

But yes, they are basically the same thing.