How do I achieve a virtual machine on fedora38 (Workstation) with win11 that is close to the operating experience on a physical device?

On my Framework laptop, fedora is the OS of choice and I have it installed on a WD_BLACK SN770 NVMe SSD. But I have to say that Win10/Win11 makes a difference in some work environments, so I still need Win10/Win11.
In the framework community, I saw a post about installing Win to an external drive at

Apparently this solution fits my needs perfectly, as I don’t want two very different OSes in the same drive.
Luckily, I have a usb3.2 interface external storage on my device and I installed the Win OS in this drive as a way to achieve dual system.
At first I thought this method was perfect, but after a few months of using it, as @Anachron said:

What advantagedo you have booting the OS from the externaldrive instead of just running it in a VM?

There are so many shortcomings in the external drive approach that I really question why someone should use that approach instead of the VM one.

I had a lot of problems with Win11 installed on external storage (rebooting, lagging, not updating, etc.) and had to give up after doing a lot of fighting.
So following @Anachron’s suggestion I tried to use qemu-kvm to install Win11 via external drive passthrough, and now it seems that instead of being as smooth as I thought it would be, it is worse, with CPU usage staying at 100% for a long time. (Keep in mind that my laptop has 32G of RAM and I allocated 16G to the VM)
I’m just browsing the web and managing e-books through it, what should I use to make it smoother?
Thanks for taking the time to read all this verbosity. :slight_smile:

Giving HW passthrough to VM should be closest to the install an OS onto HW, but normal you’d need separate HW (GPU, network, etc) or IOMMU for best results. Having your VM on an external drive should provide you with enough portability, but you’ll have either a) maintain copies of your VM in all of your environments up to the date or b) make sure libvirt in all of your environments “knows” that your VM is located on the external drive.

If you need Windows VM only for Windows-specific SW, but not HW, then you could also consider running your Windows VM on a cloud (Azure VDI, online hosted KVM guest behind FW & VPN, self-hosted KVM guest behind FW&VPN) accessible via VPN+RDP. That’s maximum portability if there is no need physically access the VM.

You didn’t mention the type of external drive. Some external drives claim USB3 but aren’t nearly as fast as others. I use an old iMac with internal “laptop” drive – it boots Fedora 38 4x faster from a USB3 case with an NVME SSD inside than from the internal drive.

Here’s the 1TB external drive I mentioned:

With a USB 3.2 Gen 2 interface, the 1TB card exceeds 1000 MB/s read and write speeds, merchants claim it is even possible to boot an OS from them

Check the output to diagnose the problem:

gnome-boxes --checks; sudo virt-host-validate; virsh dumpxml VM_NAME

As mentioned by @gnwiii some usb3 devices are not up to par. In this case it may be your usb3 controller/port that is below standards – which would affect all devices that may be connected to it.