In this article, we will take a look at how to fix the error when starting virtual machines on a Windows host with the Hyper-V role: Virtual machine could not be started because the hypervisor is not running.
Below is the full text of the error:
An error occurred while attempting to start the selected virtual machine(s).
VMname failed to start.
Virtual machine VMName could not be started because the hypervisor is not running
This error means that the Microsoft Hyper-V core service is not running on this host. Check the status of the two primary services that enable Hyper-V virtual machines to run—Hyper-V Host Compute Service and Hyper-V Virtual Machine Management. Open the services.msc console and check the status of the services there. Or open a PowerShell command prompt with administrator permissions and check the status of the services using the command:
In our case, both services are in the Stopped state. Try starting them manually with the PowerShell command:
However, the services did not start with the error:
start-Service : Service ‘Hyper-V Host Compute Service (vmcompute)’ cannot be started due to the following error: Cannot start service vmcompute on computer ‘
In order for Hyper-V services to run on a computer, your device must meet the following requirements:
- Hardware virtualization support must be enabled in BIOS/UEFI settings. This option may have different names depending on the BIOS version and CPU model. For example, Intel Virtualization Technology (VT-X), AMD-V, SVM mode, Virtualization Extensions, Vanderpool. Change the option value to Enable. Also, enable Intel VT-d or AMD IOMMU options if available in your BIOS;
- Your CPU should be SLAT compatible (Second Level Address Translation). Check your processor’s specification on the vendor’s website and make sure it supports SLAT. On Intel processors, support for SLAT is provided by EPT (Extended Page Table) technology. On AMD CPUs it’s being provided by RVI (Rapid Virtualization Indexing). On Windows, you can check if your computer has SLAT support with the command: systeminfo|find “Second Level”. It should return the string:
Second Level Address Translation: Yes.
You can also use a free utility to determine the capabilities of the processor Microsoft Sysinternals:
- Check if DEP is enabled in BIOS and Windows settings. Data Execution Prevention (DEP) is system-level memory protection. Press Win+Pause > Advanced System Settings > Performance > Settings > Data Execution Prevention tab. Make sure the option is enabled “Turn on DEP for essential Windows programs and services only”.
To verify if all options required for Hyper-V work are available and enabled, run the systeminfo command. Scroll down to the Hyper-V Requirements section. It should return:
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
Configure Hyper-V to start automatically with the command:
bcdedit /set HypervisorLaunchType auto
If all the prerequisites are complete and the Hyper-V virtual machines won’t start, try reinstalling the Hyper-V role.
- Go to the Search bar and type Windows Features > Turn Windows features on or off;
- Go to Hyper-V > Hyper-V Platform section and disable Hyper-V Hypervisor and Hyper-V Services features. Restart your computer and then re-enable these features.