Hyper-V "the hypervisor is not running": turn it on, in the firmware and at boot
Fix Hyper-V "Virtual machine could not be started because the hypervisor is not running": enable virtualization in the firmware, set hypervisorlaunchtype to auto.
by OhSudo ·
Virtual machine 'web01' could not be started because the hypervisor is not running.The Hyper-V tools are installed, and the program that actually runs virtual machines didn’t load when Windows started. It has to load very early at boot, so changing it always takes a restart. Windows tells you nothing more at first, but there are only a few causes.
TL;DR
In an administrator PowerShell:
systeminfo | Select-String "Hyper-V|hypervisor"bcdedit /enum | Select-String hypervisorlaunchtypebcdedit /set hypervisorlaunchtype autoRestart-ComputerIf systeminfo says virtualization is off in the firmware, turn that on first.
1. See which it is
systeminfo | Select-String "Hyper-V|hypervisor"| You see | Means | Go to |
|---|---|---|
A hypervisor has been detected |
It’s running now, so your error has another cause | Section 5 |
Virtualization Enabled In Firmware: No |
It’s off in the BIOS or UEFI | Section 2 |
Second Level Address Translation: No |
This CPU can’t run Hyper-V | Section 2 |
All Yes, and no hypervisor |
It’s turned off at boot | Section 3 |
2. Turn it on in the firmware
Restart, and enter the BIOS or UEFI setup, usually with F2, F10, F12 or Del. Look for:
- Intel Virtualization Technology (VT-x)
- SVM Mode or AMD-V, on AMD
- Execute Disable or No-Execute (NX), which is also required
They’re often under Advanced or CPU Configuration. After changing them, some machines need a full power off, not only a restart, to apply them.
3. The boot setting
This setting decides whether the hypervisor loads:
bcdedit /enum | Select-String hypervisorlaunchtypeOff is the classic cause, as other virtualization software and some troubleshooting guides turn it off. Turn it back on, and restart:
bcdedit /set hypervisorlaunchtype autoRestart-ComputerIf nothing is printed, then Hyper-V may not be fully installed, so check the next section.
4. Is Hyper-V installed?
# Windows ServerGet-WindowsFeature Hyper-VInstall-WindowsFeature Hyper-V -IncludeManagementTools -Restart
# Windows 10 and 11, Pro or EnterpriseGet-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-AllEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-AllWindows Home editions don’t include it. WSL 2 and Docker Desktop still work there, through Virtual Machine Platform: see WSL error 0x80370102, which has a very similar cause.
5. Windows is in a virtual machine itself
Then the outer system has to pass virtualization through. On a Hyper-V host, with the virtual machine turned off:
Set-VMProcessor -VMName "MyWindowsVM" -ExposeVirtualizationExtensions $trueIn VMware, turn on Virtualize Intel VT-x/EPT or AMD-V/RVI. On Azure, choose a size that supports nested virtualization.
6. Check it’s running
After the restart:
systeminfo | Select-String "hypervisor"Get-Service vmms, vmcompute | Format-Table Name, StatusStart-VM web01If it still doesn’t load, the event log tells you why:
Get-WinEvent -LogName 'Microsoft-Windows-Hyper-V-Hypervisor-Admin' -MaxEvents 10 | Format-List TimeCreated, MessageGet-WinEvent -LogName System -MaxEvents 50 | Where-Object ProviderName -like '*Hyper-V*' | Format-List TimeCreated, MessageA driver that conflicts with the hypervisor, or a recent firmware update that reset the settings, are common findings here.
Other software: recent versions of VMware and VirtualBox can run alongside Hyper-V, though older ones can’t. If you need one of those older ones, keep two boot entries rather than switching back and forth:
bcdedit /copy {current} /d "Windows without Hyper-V"Then set hypervisorlaunchtype off on the new entry’s ID, and choose it at boot.
Warning
Turning on Hyper-V affects the whole machine: Windows itself then runs on top of the hypervisor. Do it during a maintenance window on a server, and check that its network adapters still work afterwards, since virtual switches can change them.
Shell, we have a problem!
Similar, but different: The application encountered an error while attempting to change the state often means a missing file or snapshot, and the detailed text underneath says which. Not enough memory in the system to start the virtual machine is about memory, with a running hypervisor. And on Linux, the closest thing is a missing /dev/kvm, for the same firmware reason. Docker Desktop asking for a WSL update: see WSL 2 installation is incomplete.
Found this useful? Share it.
Found a mistake? Let us know at contact@ohsudo.com.