166

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?

14 Answers14

202

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
  • 42,308
n8te
  • 7,802
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
18

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
  • 453
12

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
  • 131
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
  • 361
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.

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
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
  • 30,396
  • 15
  • 136
  • 260
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
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
  • 30,396
  • 15
  • 136
  • 260
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,959
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
  • 720
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.