Enabling "execute disable" (XD) bit disables hardware assisted virtualization

8,336

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.

Share:
8,336

Related videos on Youtube

freshprinze
Author by

freshprinze

Updated on September 18, 2022

Comments

  • freshprinze
    freshprinze over 1 year

    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.

    • Simon
      Simon about 11 years
      You will get more help if you edit your post and ask a question. The post as it stands won't get much attention.
    • Admin
      Admin about 11 years
      First thing to try is to look at motherboard manufacturers website and see if they have a "BIOS" update for your model. (make sure to check for revision numbers(rev x.xx - something similar) as they are extremely important to flashing bios images. Even if your Bios is up-to-date I would reflash it as it seems you are having some hardware trouble. This issue might be a hard one to solve... little fair warning.
    • mtone
      mtone about 11 years
      I'd be surprised the XD bit itself is causing problems with VirtualBox as most systems leave it enabled - however it could be an incompatibility with having Hyper-V running at the same time (since Hyper-V requires the XD bit to run, disabling it would temporarily "fix" the incompatibility -- just a guess). If all else fails, consider running Ubuntu under Hyper-V. servethehome.com/run-ubuntu-windows-8-hyper-v-quickly
    • freshprinze
      freshprinze about 11 years
      Hi all thank you so much for the replies. This is my first post on SuperUser and as @Simon suggested I will be more verbose next time.
    • freshprinze
      freshprinze about 11 years
      There was in fact a BIOS update on ASUS site and I applied it and gave it a try. Still the same issue exists :(. Ubuntu loads on VirtualBox but its noticeably slow.@mtone Hpyer-V is enabled and I can use the management console. But the issue is that Win Phone 8 emulator requires XD bit to be Enabled. But as mtone suggest I will consider using Hyper-V itself to run Ubuntu is all else fails.
  • freshprinze
    freshprinze about 11 years
    Thank you for the response. I am not sure what it is still. But I have reported issues with ASUS and VirtualBox as well. I will keep the post updated. Thank you for the pointers regarding HAV nesting. The document provides quite a bit of indepth detail. I have found a similar issue on ServerFault. The reporter hasnt updated if he found a resolution or not. He was using VB to setup Windows Server 2008.
  • freshprinze
    freshprinze about 11 years
    Found the reason for the behavior. As @ultrasawblade pointed out you cannot Nest virtualization. All this time I had Hyper-V activated as well. To test I disabled Hyper-V and enabled XD. Voila! HAV was still enabled for VirtualBox.
  • freshprinze
    freshprinze about 11 years
    The following article helped me into thinking the reason. community.zevenseas.com/Blogs/Akhilesh/Lists/Posts/….
  • freshprinze
    freshprinze about 11 years
    Internally what happened I believe, when XD is enabled Hyper-V got activated thus exclusively reserving HAV for Hyper-V. When I disabled XD, Hyper-V couldnt kick in and HAV was available for VirtualBox.
  • freshprinze
    freshprinze about 11 years
    To resolve Windows Phone 8 development issues side by side with Ubuntu, I guess I will have 2 options. 1. Use Hyper-V to install Ubuntu as well as suggested by @mtone 2. Use VirtualBox to install another instance of Windows 8. I think I will try (2).