167

Recently I started having an issue with VT-x on my Windows 10 running on HP EliteBook. I was using Oracle VirtualBox to run some VMs on it before and VT-x was enabled in BIOS and was working fine.

I started getting VT-x is not available error every time I was trying to start any of my VMs. That started happening after I installed Docker on my machine, so I tried uninstalling it and rebooting. Didn't help.

I checked BIOS settings and it says VT-x is enabled but checking with Intel(R) Processor Identification Utility shows that VT-x is not supported and Oracle VirtualBox also doesn't see it.

There were no hardware changes and the only software change was installing/uninstalling Docker.

How can this issue be fixed?

SergeyOvchinnik
  • 2,327
  • 4
  • 13
  • 14
  • 1
    Unable to add an answer so adding a comment - For me updating to the latest Oracle VirtualBox and Unchecking Settings -> Display -> Enable 3D Acceleration worked. – Hrishikesh Kadam Sep 13 '20 at 13:29

14 Answers14

201

There are three common culprits for the type of error the user is seeing:

  • VT-x is not enabled in the BIOS
  • The CPU doesn't support VT-x
  • Hyper-V virtualization is enabled in Windows

Since the user already eliminated the first two possible culprits, the next step is to open a command prompt as administrator and run the following command:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

Afterwards, reboot the PC and try VirtualBox again.

Ben N
  • 40,045
  • 17
  • 140
  • 181
n8te
  • 7,480
  • 16
  • 30
  • 40
  • 56
    To further clarify: Docker runs on top of Windows Hyper-V. The Docker install switched it on, but the de-install didn't switch Hyper-V off. – Tonny Dec 06 '16 at 15:43
  • @cat: It's a shared resource, in order to properly disable it when the last component depending it is removed, you'd need some sort of reference counting. – Ben Voigt Dec 06 '16 at 19:49
  • 3
    For completeness: this can also happen with some viruses that use VT-x to hide from the operating system. These are seldom though. – Simon Richter Dec 06 '16 at 19:51
  • 1
    @cat As Ben already mentioned: Docker has no way of knowing there isn't anything else running on the system that needs Hyper-V. So Docker can switch it on when it needs it, but should not switch it off, because that could kill/crash/disable another application. Not a bug. A "feature" made necessary by the fact that Windows doesn't provide any standard mechanism (reference counting) to keep track of what application is using which resource. Windows only does this for DLL's and some other similar resources and it is far from reliable. As a result it is safer to just leave them alone. – Tonny Dec 06 '16 at 20:07
  • @SimonRichter In my over 20 years of being a sysadmin I've never encountered one of those in the wild (although I know they do exist). And with most PC manufacturers disabling VT-x in the Bios as default setting (for precisely this reason) I don't expect to see any major outbreak of such viruses in the future either. – Tonny Dec 06 '16 at 20:11
  • 4
    It should be noted that Hyper-V does technically support nested virtualisation since the 1607 update. If you have a need for both Hyper-V and VBox at the same time, you can try [enabling it](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/user_guide/nesting). – Bob Dec 07 '16 at 06:45
  • This works but VBox in Win10 is a lot slower than VBox in Win7. I would like blame MS for this. – Tae-Sung Shin Apr 30 '18 at 18:05
  • 7
    Additionally the [Virtual Machine Platform] windows feature should also be disabled. – lintabá Feb 02 '19 at 15:27
  • @lintabá YES! That did the trick for me. Thanks!!! – AntonioCS Apr 02 '19 at 16:28
  • 10
    Looks like in newer Windows 10 Builds the Feature has a different name, **HypervisorPlatform**, so you need: `dism.exe /Online /Disable-Feature:HypervisorPlatform` – Aganju Apr 21 '19 at 02:03
  • 1
    @Aganju - Looks like that has existed since at least 2016 according to [this](https://support.microsoft.com/en-us/help/3204980/virtualization-applications-do-not-work-together-with-hyper-v-device-g) Microsoft article but it says you only need to disable the Hyper-V service and not the whole Microsoft Hyper-V Platform. But correct me if I'm wrong (although disabling the whole platform probably disables the individual Hyper-V service anyway so probably works that way as well). – n8te Apr 21 '19 at 02:18
  • `dism` now claims it doesn't even recognize `Microsoft-Hyper-V` as a feature. That made me assume it's renamed. – Aganju Apr 21 '19 at 04:42
  • 2019: Windows 10 1903 + Sandbox - you will have to issue this command EVEN if you remove Sandbox in Programs and Features. And yes, Hyper-V is NOT enabled there either. ✝ – Apache May 13 '19 at 19:34
  • 2019: Windows 10 Enterprise Build 18362, none of the things in the answer and the comments work. I always get an error message 'VT-x is not available'. – Wiste Jul 18 '19 at 09:28
  • 1
    I installed docker, uninstalled docker, un-enabled Hyper-V from Windows Default Applications. Still wouldn't work. Only running this command from line, re-enabled Virtual Box support. – James John McGuire 'Jahmic' Nov 18 '19 at 16:18
  • I had the same issue as @Jahmic and running this command instead of manually disabling hyper-v did the trick indeed – PtrTon Dec 26 '19 at 17:49
25

After updating Windows 10 to "Fall Creators Update" I got the same issue. I resolved it by the following steps:

  1. Enable all features under "Hyper-V" in "Turn Windows features on or off".
  2. Restart.
  3. Disable all features under "Hyper-V" in "Turn Windows features on or off".
  4. Restart.
  5. Now VirtualBox is working again and it shows (64-bit) in its list of operating systems.
Eng.Fouad
  • 370
  • 3
  • 7
  • 5
    For the impatient: disabling Hyper-V took Windows several minutes. – Jens Piegsa Feb 20 '18 at 11:49
  • 4
    unfortunately didn't worked for me... – Mahdi Rashidi Jul 28 '18 at 15:27
  • 2
    Had the same problem after win10 update, the culprit is the update enabling hyper-v feature. so I did a bit of trial and error finally this worked: enable intel virtu.. and vt-d from the bios then disable Windows Hypervisor platform and Virtual Machine platform from the control panel > windows features on or off then restart your PC – PauAI Sep 22 '19 at 21:50
  • Worked for me. However, I had run this cmd as well - dism.exe /Online /Disable-Feature:Microsoft-Hyper-V – Darshan L Feb 17 '20 at 07:29
  • 1
    Following the five steps and rebooting one more time works for me. – Jhon Didier Sotto Aug 22 '20 at 22:44
17

When I had this problem, VMWare Player gave a better diagnostic response than VirtualBox did when I tried to create a 64-bit virtual machine.

It said that my machine had the enterprise features Device Guard and Credential Guard enabled. I suppose they became enabled when I ran MalwareBytes; I can't think of any other change I made.

VMWare Player pointed me to a page called Manage Windows Defender Credential Guard. That page has a bunch of stuff about Group Policy Manager settings and the like, which of course are irrelevant to a W10 HOME installation.

In turn, that page pointed me to the Device Guard and Credential Guard hardware readiness tool, a PowerShell tool for enabling and disabling this feature set on servers.

Running that tool in a Run-As-Administrator power shell and giving this command

 .\DG_Readiness_Tool_v3.5.ps1 -Disable -AutoReboot

took me through the process of disabling those features.

And I have virtualization capability back.

O. Jones
  • 423
  • 5
  • 13
  • That script solved the issue for me (Windows 10, Enterprise N, Build 18363). None of the other things worked or were already deactivated (HyperV, Virtualization Platform...). This finally did the trick and VirtualBox works again, thank you so very much! – Wiste Feb 11 '20 at 11:17
  • This was the missing piece for me. Thanks. – dcorsello Apr 24 '20 at 01:49
  • 1
    This was also the only thing that helped me. I was not comfortable to deactivate the Credential Guard so I only deactivated the Virtualization Guard (the options come up after the reboot). This was enough. – Spenhouet Jun 18 '20 at 09:04
11

If you're using the lasted Windows 10 build, disable Memory Integration in Device Security and reboot.

I was facing similar issue virtual box when I enabled this option. Disabling it worked for me.

Core Isolation - Memory integrity Screenshot

iobleed
  • 121
  • 1
  • 4
9

I have the same issue on Virtualbox, and I have checked the following on my computer

  • VT-x is enabled in the BIOS
  • Hyper-V virtualization and Windows Hypervisor Platform are disabled in Windows
  • Memory Integration is disabled

After excluding the above reasons, I remembered that I have just enabled Windows Sandbox, I found this post.

The problem is with Windows Sandbox, but simply disable windows sandbox from Windows Features and reboot will not work. You have to do the following as described from the above post:

  • Disable Windows Sandbox and reboot
  • Disable virtualization in BIOS and reboot
  • Enable virtualization in BIOS and reboot
socrates
  • 351
  • 3
  • 4
  • 3
    After removing Sandbox I was like "Whattttt, disable and re-enable virtualization??? That's silly". No, no, that literally fixed it. People, give it a go before trying something else. – Joshua Michael Mar 15 '20 at 01:10
  • After disabled Windows Sandbox, VT cameback without disable and re-enable VT for me. – zzy Sep 19 '21 at 06:54
5

I was tripped up by the fact there was 2 options in the Windows Features dialog to turn off:

  • Hyper-V
  • Windows Hypervisor Platform

I had attempted an upgrade to VirtualBox 6, and some performance issues, and downgraded to VirtualBox 5 and had these issues. Hopefully this helps someone else out.

Steve Wranovsky
  • 305
  • 3
  • 6
  • 11
3

Virtualbox was working ok. I updated Avast anti-virus today, 29th June 2017. Virtualbox then gave the VT-x error. In Avast Settings, go to Troubleshooting and enable "Use nested virtualiszation where available" and then reboot your PC. This worked for me with no other changes required.

ejasft
  • 39
  • 1
  • Getting blue screens here since today (vmm.sys), I use avast free but I don't see that option. – Dan Jun 30 '17 at 05:49
  • I had the same problem with Windows Defender. I enabled Device Security - Core Isolation. Disabling that resolved my problem. – Tsuharesu Aug 22 '18 at 00:29
3

As mentioned in another answer, Core isolation, Application Guard, Credential Guard and Device Guard utilize the Hyper-V feature. If you don't need that level of security you can disable them by running

DG_Readiness_Tool_v3.5.ps1 -Enable -AutoReboot

or

mountvol X: /s
copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
bcdedit /set hypervisorlaunchtype off
mountvol X: /d

More detailed information about those commands can be found on Manage Windows Defender Credential Guard

However on Windows 10 Build 18305 and up, beside the guard features, Windows Sandbox will also enable Hyper-V, because it's also a thin layer of virtualization

If you want to use the sandbox feature then unfortunately you can't disable Hyper-V like in other answers. There are many solutions for this

  • Use Hyper-V instead. If you have VMs running in other hypervisors like VMWare then just migrate them to Hyper-V
  • Use a hypervisor that supports Hyper-V like VirtualBox. See Using Hyper-V with Oracle VM VirtualBox
  • Enable nested paging so that you can run other hypervisors inside Hyper-V. Simply run the below command to enable that feature

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
    

For more information read

phuclv
  • 26,555
  • 15
  • 113
  • 235
  • 5
    `bcdedit /set hypervisorlaunchtype off` worked for me – C.W. Aug 24 '19 at 16:10
  • @user1641838 have you read all the answers? There are a lot of new features that will use virtualization so you won't be able to run another hypervisor even if you turned off Hyper-V – phuclv Aug 25 '19 at 13:25
  • yeah, I read and tried *all* answers in this thread. And there even was blue screen after running DG_Readiness_Tool. `bcdedit /set hypervisorlaunchtype off` is the only way for me to get rid of the 'VT-x is not available' thingy. Other issues came after, though. And I finally switched to Hyper-V. BTW, I am using windows insider preview, so my millage my vary. – C.W. Aug 26 '19 at 14:12
  • 1
    @user1641838 same here! I simply run `bcdedit /set hypervisorlaunchtype off`, restarted, and now my VM's are working again – payloc91 Sep 25 '20 at 13:48
  • `bcdedit /set hypervisorlaunchtype off` worked for me – BBK May 04 '22 at 12:54
2

Hyper-V and VirtualBox can co-exist on Windows 10. The config step is documented in How to use VirtualBox and Hyper-V together on Windows 10. The gist is

  1. Enable Hyper-V and Windows hypervisor platforms enter image description here
  2. Set Paravirtualization Interface of a guest VM to Hyper-V enter image description here
abbr
  • 171
  • 4
2

None of this worked for me as of April 2021. This works:

  1. Turn Off Hyper-V
  • Go to "Turn Windows features on or off"
  • Make sure Hyper-V is not ticked. If it is Ticked, untick it and click "Ok".
  1. Disable hypervisor launch
  • Open command prompt window as an administrator
  • Run bcdedit /enum {current}
  • Note down the hypervisorlaunchtype value
  • Run bcdedit /set hypervisorlaunchtype off to disable hypervisor
  • Close the command prompt after executing the commands and restart the system.
phuclv
  • 26,555
  • 15
  • 113
  • 235
Alek Depler
  • 190
  • 3
  • 11
1

I came to this post thinking that VT-x wasn't enabled, because Hyper-V was telling me that "The virtual machine is using processor-specific features not supported on physical computer". This started after installing Windows updates and restarting the server. In reality, VT-x was actually enabled.

The fix was to delete saved state for all VMs, effectively a power-off.

It looks like the reason for this may have been a CPU microcode update but it's hard to be sure, it's just something that came up in a number of search results.

RomanSt
  • 9,553
  • 15
  • 56
  • 74
1

The only change that worked for me, after trying many tips related here, was:

On some Windows hosts with an EFI BIOS, DeviceGuard or CredentialGuard may be active by default, and interferes with OS level virtualization apps in the same way that Hyper-v does. These features need to be disabled. On Pro versions of Windows you can do this using gpedit.msc (set Local Computer Policy > Computer Configuration > Administrative Templates > System > Device Guard > Turn on Virtualization Based Security to Disabled.

Dherik
  • 650
  • 2
  • 6
  • 16
0

I just had to update Virtualbox. I had 6.1.12 and updated to 6.1.26.

-1

Ensure nothing else on your computer is using VT-x. For example, Kaspersky Anti-Virus might be using virtualization to run its secure browser. Disabling this setting, followed by a reboot may fix the issue.

ricky gonce
  • 79
  • 1
  • 1
  • 7