Why can't VirtualBox or VMware run with Hyper-V enabled on Windows 10

139,402

Solution 1

VirtualBox and VMware Workstation (and VMware Player) are "level 2 hypervisors." Hyper-V and VMware ESXi are "level 1 hypervisors."

The main difference is that a level 2 hypervisor is an application running inside an existing OS, while a level 1 hypervisor is the OS itself.

This means that when you enable Hyper-V, your Windows 10 "host" becomes a virtual machine. A special one, but nonetheless a virtual machine.

So your question would more aptly be: "Why don't VirtualBox and VMware Workstation work inside a Hyper-V virtual machine?" One can answer because as a VM, the Intel VT-X instruction are no longer accessible from your virtual machine, only the host has access to it.

QEMU works because it does not do virtualization but emulation, which is completely different and explains why QEMU is painfully slow. Virtualization is the process of running a complete isolated machine inside another, but with the help of the processor. This requires the virtual machine and the host to be instruction compatible.

Emulation is the process of running any machine inside a running OS, there is no platform restriction, and is why QEMU can run an ARM machine on an amd64 platform.

Note: QEMU has 2 operating modes:

  • it can work as an emulator, this is the mode explained above
  • it can work as 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.

Solution 2

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.

Update 2: VMWare will add support for WHPX in upcoming version of VMWare Workstation and fusion. VMware Workstation and Hyper-V – Working Together

Update 3: Initial VMWare Workstation release with WHPX support. Software requirements are Windows Insiders Minimum build number 19041. Hardwre requirements are Intel Haswell or newer CPU, AMD Bulldozer or newer CPU. VMware Workstation Tech Preview 20H1 — Hyper-V/Host VBS Support

Solution 3

Vmware 15.5+ will work even if Hyper-v is enabled

With the release of VMware Workstation/Player 15.5.5, we are very excited and proud to announce support for Windows hosts with Hyper-V mode enabled! As you may know, this is a joint project from both Microsoft and VMware.

Share:
139,402

Related videos on Youtube

Biswapriyo
Author by

Biswapriyo

Updated on September 18, 2022

Comments

  • Biswapriyo
    Biswapriyo over 1 year

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

    Why can't VirtualBox and VMware 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.

    • Daniel B
      Daniel B almost 7 years
      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
      Daniel B almost 7 years
      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.
    • Ramhound
      Ramhound almost 7 years
      Worth pointing out that QEMU isn't a hypervisor. Hyper-V does support nested virtualization.
  • Veovis
    Veovis almost 7 years
    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...)
  • Daniel B
    Daniel B almost 7 years
    Virtualization (yes, not emulation) has been available long before hardware-assisted virtualization became available. It can be nested as desired.
  • Ramhound
    Ramhound about 6 years
    This API in theory could be used by VMWare and VirtualBox also.
  • Biswapriyo
    Biswapriyo about 6 years
    @Ramhound Can it be done with VirtualBox or VMware? That article only mention qemu.
  • Ramhound
    Ramhound about 6 years
    @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
  • user643011
    user643011 over 4 years
    Can you explain how this is different from Nested VT-x/AMD-V?
  • user643011
    user643011 over 4 years
    Virtualbox 6.0' WHPX support is very alpha quality. It barely works right now.
  • user643011
    user643011 over 4 years
    Why can VirtualBox not take advantage of "Nested VT-x/AMD-V"? Is this a limitation of the hardware? Of Hyper-V?
  • Hantsy
    Hantsy over 4 years
    Tried Virturalbox 6.0 with the vms created before, and changed the setttings to use Hyper-V, none work as expected.
  • 1283822
    1283822 over 4 years
    @user643011 - This answer describes the problem well, but one part "as a VM, the Intel VT-X instruction is no longer accessible from your virtual machine, only the host has access to it" isn't completely accurate. Microsoft's Hyper-V chose not to expose these instruction to the guest systems, but nested accelerated virtualization is completely possible with the right software. VMWare for example has an option to expose AMD-V/Intel-vtx to guest called "virtualize Intel-vtx/AMD-V". This incompatibility is caused by Microsoft Hyper-V, not nested virtualization in general.
  • 1283822
    1283822 over 4 years
    Note, in my understanding of the available documentation, Windows Hypervisor Platform API allows host software like QEmu, VirtualBox, VMWare to manage Hyper-V guests. That means while it may appear these program work while Hyper-V is enabled, they are actually using Microsoft's hypervisor implementation. Host software can still define their own protocol meaning file-sharing, drag&drop still work. But certain hypervisor level feature like graphics acceleration depend on Hyper-V. That is a regression for certain features where VMWare, VirtualBox hypervisor implementated but Hyper-V didn't.
  • user643011
    user643011 over 4 years
    @1283822 Thanks! Is this useful? Set-VMProcessor -ExposeVirtualizationExtensions $true ("Specifies whether the hypervisor should expose the presence of virtualization extensions to the virtual machine, which enables support for nested virtualization.") Source: docs.microsoft.com/en-us/powershell/module/hyper-v/…
  • user541686
    user541686 over 4 years
    @user643011: How does it work at all? I get VERR_NEM_MISSING_KERNEL_API with VERR_VMX_NO_VMX.
  • user643011
    user643011 over 4 years
    @Mehrdad Force-Upgrade to Windows 10 November 2019 Update (1909) and try again en.wikipedia.org/wiki/Windows_10#Updates_and_support You can get the update here: microsoft.com/en-us/software-download/windows10
  • user541686
    user541686 over 4 years
    @user643011: I already have actually; I wrote that comment afterward.
  • user643011
    user643011 over 4 years
    @Mehrdad: Ok sorry I don't know either. Support is very hit and miss for me. I have complained in the Virtualbox forums before, but their devs just work as fast as they work and I can't really complain on an open source software. I wish Microsoft would have just allowed us to enable docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/… globally so that other VMs can run on top, rather than force VMware and Virtualbox to adopt to Microsoft's hypervisor backend via Windows Hypervisor Platform API. It's a mess.
  • Cocowalla
    Cocowalla about 3 years
    It's worth noting that, years on, Microsoft still only supports nested virtualisation (enabled with ExposeVirtualizationExtensions) for Intel CPUs - support for AMD CPUs is still inexplicably only available in Insiders builds.
  • Naveen Kumar V
    Naveen Kumar V over 2 years
    Nice explanation.