Step-by-step solution
To resolve this conflict, create a new boot menu option that reboots the computer with Hyper-V temporarily disabled. This will allow switching between Hyper-V and VirtualBox, VMWare Workstation, VMWare Player, or any other type 2 hypervisor by rebooting and choosing to temporarily disable Hyper-V.
The solution is to create a new boot entry with the “hypervisorlaunchtype off” option using bcdedit.
- Open an Administrator command prompt. Use CMD. This does not work in PowerShell.
- Run the following command:
bcdedit /copy {current} /d “Disable Hyper-V”
You will see the following result:The entry was successfully copied to
. - Run the following command:
bcdedit /set {
The operation completed successfully.
- Reboot the machine while holding down the shift key. You will be presented with a boot option to “Use another operating system”. Select your new “Disable Hyper-V” option. The machine will boot with Hyper-V disabled and VirtualBox will work.
To recap, we copied the {current} boot entry to a new entry with a description of “Disable Hyper-V”. Then we edited the new boot entry by adding a parameter: hypervisorlaunchtype off. If you are curious, the opposite option is hypervisorlaunchtype auto.
Bonus tip: You can create a batch file to force a quick reboot with the “Disable Hyper-V” boot option selected.
bcdedit.exe /bootsequence {
More about the issue
Hyper-V is a type 1 hypervisor, running directly on the host hardware. When Hyper-V is enabled Windows 10 is loaded as a virtual machine. Hyper-V loads before Windows and grabs control of the CPUs VT-x extensions. This means Windows no longer has access to the VT-x extensions of the CPU, which are needed by type 2 hypervisors. Therefore, VirtualBox and VMWare Workstation cannot run.
VirtualBox and VMware Workstation (or VMware Player) are type 2 hypervisors, running as applications in Windows 10, which is shown as the blue box marked Operating system in the diagram. In this case, Windows 10 is communicating directly with the host hardware. Windows isn’t using the VT-x extensions, leaving them available for use by the type 2 hypervisors.
Because only one hypervisor at a time can take control of VT-x support, it is not possible to run a type 2 hypervisor while Hyper-V is enabled.