Windows – Enabling “execute disable” (XD) bit disables hardware assisted virtualization

virtual machinevirtualboxvirtualizationwindows 8

My System Config

  • MB: Asus P8Z77 V-Pro
  • CPU: Intel Core i7 – 3770 @ 3.4Ghz
  • OS: Windows 8 Pro (64 bit)

I am trying to use Virtual Box to install Ubuntu 12.10. But the installer failed to launch and the log mentioned that it failed to detect Hardware Assisted Virtualization (HAV).

I checked with securAble from http://www.grc.com/securable.htm. And it also mentioned that HAV is not present.

A look into the BIOS showed the following:

Intel Virtualization Technology - Enabled
Execute Disable Bit (XD) - Enabled

To give it a try I "Disabled" XD. And Virtual Box detected that I have Virtualization enabled. And the install process went on. Further securAble confirmed HAV is now enabled.

Issue

I am now trying to do some Windows Phone 8 development and this requires Hyper-V enabled for the emulator to function. But a little Googling pointed out that Hyper-V requires XD to be enabled.

So I am in a bit of a messy situation since I can't seem to have both HAV and Hyper-V enabled together.

Thanks You for your guidance in advance.

Best Answer

CPUs support disabling virtual machine extensions permanently until next power cycle. This is how BIOSes disable/enable it.

Maybe a buggy BIOS? Like @fah q suggests, might try updating and see if that improves.

Also, you can't "nest" hardware virtualization without explicit support from the VM hypervisor. From what I gather by looking at this, attempt to "turn on" virtualization (using the VMXON instruction) when it is already on causes a "VM exit", meaning control is passed back to the hypervisor. The hypervisor could do what's needed to emulate it in the VM, but I'm betting no currently available VM software does this.

Related Question