We want to run our Ubuntu 64bit web server virtualized/emulated on a Windows 64bit host. Intended use is to distribute the VM to customers who might not have "elevated" or "admin" rights on the Windows machine. The system should be portable, i.e. run from a USB pen drive.

Because of this restriction, we ended up with QEMU which does not require special Windows rights to run. The drawback is that the Linux system only reaches 1/10 of the speed compared to running it in Virtualbox.

Is there any way to speed up QEMU on Windows 64bit hosts?

  • I had a look at KQEMU, but it is a service, so it can't be started by "normal" Windows users. Additionally, it seems to be end-of-life and 64bit support is experimental.
  • The WinKVM project also seems to be no longer actively developed, and probably also requires admin rights on the Windows host.

This is my QEMU commandline, maybe someone sees a possibility for improvement:

"C:\Program Files\qemu-2.1.0\qemu-system-x86_64.exe"
-drive "file=C:\disk1.vmdk,index=0,media=disk"
-drive "file=C:\disk2.vmdk,index=1,media=disk"
-smp 4
-net nic,vlan=0,macaddr=52-54-00-B3-47-55,model=rtl8139
-net user,hostfwd=tcp::9000-:80
-m 1024

Solution 1:

Inntran is right here: You can't use VM acceleration without loading a kernel module/driver, which needs administrative privileges.

However, this seems a bad method of software distribution to me: you don't need to deploy a Ubuntu images on every client, you simply need to install a single, shared instance and use it via SSH or via FreeNX/X2Go.

Solution 2:

Hyper-V comes natively with recent Windows systems, even client ones.

You need local Administrator rights to enable it, but once enabled, you can give your users the rights to create and run virtual machines without the need to be full administrators, by placing them in the "Hyper-V Administrators" local group.

The performance are really good, because the virtualization technology is exactly the same used on Hyper-V servers (it actually runs under the main OS, although it looks like an application sitting on top of it).

Solution 3:

Go to "Turn Windows features on or off", and check the Windows Hypervisor Platform. Pass --accel whpx to QEMU. It works on my computer, and I don't have Pro or the May 2020 update.
If this is necroposting, sorry about that.