41

I am running Windows 10 Pro 64bit with Hyper-V enabled and also enabled Intel VT-x virtualization technology. But when I try to run VirtualBox 64bit Windows goes into a BSOD. When I run VMware it shows an error.

My question is Why VirtualBox and VMware can not be run with Hyper-V enabled? Please explain with all details you have including hardware and software. I want to know the internal cause of this error.

Here are some findings of mine. Most sites suggest adding a boot entry with BCDedit or to disable Hyper-V with BCDedit. e.g. Creating a "no hypervisor" boot entry, Run Hyper-V and VirtualBox on the same machine. But I can run QEMU with Hyper-V. Qemu does not show any error with Hyper-V and runs smoothly.

  • 1
    Hyper-V does not support nested virtualization (with hardware acceleration). However, it will not crash under normal circumstances. VirtualBox would complain that it cannot run x64 guests and that’s it. So something else is wrong like a malfunctioning device driver or whatever. – Daniel B May 13 '17 at 15:37
  • I see, it does indeed crash. However, again: This is not normal. A crash is never normal. It appears this is a bug in Hyper-V. You should probably get in touch with Microsoft about it. – Daniel B May 13 '17 at 17:51
  • Worth pointing out that QEMU isn't a hypervisor. Hyper-V does support nested virtualization. – Ramhound May 13 '17 at 19:09
46

VirtualBox and VMware Workstation (or VMware Player) is what we called an Hypervisor level 2. Hyper-V or VMware ESXi are however Hypervisor level 1. One of the main difference between the two sorts of hypervisor is the first is an application running inside an existing OS, while the latter is the OS itself.

It means that when you have enabled Hyper-V, your Windows 10 "host" became a virtual machine. A special one, but nonetheless a virtual machine.

So your question may be changed to: "Why VirtualBox and VMware Workstation does not work inside an Hyper-V virtual machine ?". One can answer because as a VM, the Intel VT-X instruction is no more accessible from your virtual machine, only the host can have it.

QEMU works because it does not do virtualization but emulation, which is completely different and explain why QEMU is awfully slow. Virtualization is the process to run a complete isolated machine inside another, but with the help of the processor. This requires the virtual machine and the host be instruction compatible. The emulation is the process to run any machine inside a running OS, there is no platform restriction, it's why QEMU can run an ARM machine on an amd64 platform.

Note: QEMU has 2 operating mode:

  • it can work as an emulator, this is this mode I explained above
  • it can work as a virtualization software with the help of KVM if the guest architecture is compatible with the host's and if the VT instruction is present of course.
  • 1
    The virtualization creates a whole "fake" system, except for the processor where the hypervisor will only limits the amount of processor time the vm can use. So you can virtualize arm only on an arm host, x86 on an x86/amd64 host, amd64 on an amd64 host etc... An emulator will recompile each instruction for a binary compiled for a specific platform to run on another platform. QEMU belongs to the same family as console emulators for example (psx, dolphin, virtualboy, project64, MAME...) – Veovis May 13 '17 at 16:50
  • Virtualization (yes, not emulation) has been available long before hardware-assisted virtualization became available. It can be nested as desired. – Daniel B May 13 '17 at 17:53
13

Starting from Windows Redstone 4 build, QEMU will be able to run under Hyper-V by employing the Windows Hypervisor Platform API.

The Windows Hypervisor Platform accelerator (WHPX) is being integrated to QEMU patches are submitted for merging.

The Windows Hypervisor Platform API will be included in Redstone 4 build

Experimental support for WHPX is included in QEMU 2.12

Update: Virtualbox 6.0 added support for WHPX Virtualbox 6.0 Changelog.

  • 2
    This API in theory could be used by VMWare and VirtualBox also. – Ramhound Feb 4 '18 at 13:45
  • @Ramhound Can it be done with VirtualBox or VMware? That article only mention qemu. – Biswapriyo Mar 28 '18 at 10:08
  • @Biswapriyo I determined that VMWare and VirtualBox was possible directly from the documentation. However, VMWare and VirtualBox would have to make the necessary changes to their application – Ramhound Mar 28 '18 at 11:25

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.