VT-x is not available, but is enabled in BIOS

129

47

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

Posted 2016-12-06T11:01:48.727

Reputation: 1 637

Answers

167

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.

n8te

Posted 2016-12-06T11:01:48.727

Reputation: 6 068

41To 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 – 2016-12-06T15:43:41.060

@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 – 2016-12-06T19:49:02.837

2For completeness: this can also happen with some viruses that use VT-x to hide from the operating system. These are seldom though. – Simon Richter – 2016-12-06T19:51:13.603

@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 – 2016-12-06T20:07:24.163

@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 – 2016-12-06T20:11:29.990

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.

– Bob – 2016-12-07T06:45:10.837

This works but VBox in Win10 is a lot slower than VBox in Win7. I would like blame MS for this. – Tae-Sung Shin – 2018-04-30T18:05:35.453

4Additionally the [Virtual Machine Platform] windows feature should also be disabled. – lintabá – 2019-02-02T15:27:02.777

@lintabá YES! That did the trick for me. Thanks!!! – AntonioCS – 2019-04-02T16:28:03.300

4Looks like in newer Windows 10 Builds the Feature has a different name, HypervisorPlatform, so you need: dism.exe /Online /Disable-Feature:HypervisorPlatform – Aganju – 2019-04-21T02:03:17.867

@Aganju - Looks like that has existed since at least 2016 according to this 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 – 2019-04-21T02:18:47.420

dism now claims it doesn't even recognize Microsoft-Hyper-V as a feature. That made me assume it's renamed. – Aganju – 2019-04-21T04:42:19.100

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 – 2019-05-13T19:34:13.047

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 – 2019-07-18T09:28:36.887

1I 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. – Jahmic – 2019-11-18T16:18:01.417

I had the same issue as @Jahmic and running this command instead of manually disabling hyper-v did the trick indeed – PtrTon – 2019-12-26T17:49:32.670

21

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

Posted 2016-12-06T11:01:48.727

Reputation: 330

5For the impatient: disabling Hyper-V took Windows several minutes. – Jens Piegsa – 2018-02-20T11:49:49.493

4unfortunately didn't worked for me... – Mahdi Rashidi – 2018-07-28T15:27:27.073

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 – 2019-09-22T21:50:45.667

Worked for me. However, I had run this cmd as well - dism.exe /Online /Disable-Feature:Microsoft-Hyper-V – Darshan L – 2020-02-17T07:29:12.297

10

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

Posted 2016-12-06T11:01:48.727

Reputation: 333

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 – 2020-02-11T11:17:43.220

8

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

slingzor

Posted 2016-12-06T11:01:48.727

Reputation: 91

This should be added to the accepted answer – Sreenikethan I – 2020-02-15T16:11:35.840

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

Posted 2016-12-06T11:01:48.727

Reputation: 31

Getting blue screens here since today (vmm.sys), I use avast free but I don't see that option. – Dan – 2017-06-30T05:49:43.930

I had the same problem with Windows Defender. I enabled Device Security - Core Isolation. Disabling that resolved my problem. – Tsuharesu – 2018-08-22T00:29:49.860

3

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

Posted 2016-12-06T11:01:48.727

Reputation: 285

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

Posted 2016-12-06T11:01:48.727

Reputation: 7 830

0

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 2 solutions for this

  • Use Hyper-V instead. If you have VMs running in other hypervisors like VirtualBox then just migrate them to Hyper-V
  • 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

Posted 2016-12-06T11:01:48.727

Reputation: 14 930

bcdedit /set hypervisorlaunchtype off worked for me – user1641838 – 2019-08-24T16:10:31.917

@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 – 2019-08-25T13:25:08.977

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. – user1641838 – 2019-08-26T14:12:38.107

0

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

Posted 2016-12-06T11:01:48.727

Reputation: 141

This one worked! thanks bro. – Amr SubZero – 2019-11-21T20:07:33.127

0

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

Posted 2016-12-06T11:01:48.727

Reputation: 260