Why the Hyper-V Virtual Machine Does Not Start?
Hyper-V is a powerful tool, but its operation depends on many factors: from hardware settings to the integrity of the virtual machine (VM) configuration. If the VM hangs at the "Starting..." stage or immediately fails with an error when attempting to start, the problem is almost always solvable. In this guide, we will go through the key diagnostic points, from the simplest to the more complex.
Symptoms of the Problem
- The VM stops in the "Starting" state.
- An error "Failed to start the virtual machine" appears with a code (e.g., 0x80070490, 0x80070005).
- The Hyper-V event log records failures from the
VMMSservice. - The
Get-VMcommand in PowerShell shows the statusOfforFailed.
What We Will Need
- Windows 10/11 Pro, Enterprise, or Education (Hyper-V is not available in home versions).
- Administrator rights.
- Access to BIOS/UEFI (if needed).
1. Basic Check: Is Hyper-V Enabled?
Even if you have previously enabled Hyper-V, Windows updates or changes in the system may have disabled it.
- Press Win + R, type
optionalfeatures.exe, and press Enter. - In the "Windows Features" window, find Hyper-V.
- Ensure that the checkbox is checked for the entire tree (especially Windows Hypervisor).
- Click OK and wait for the installation. Restart your computer.
💡 Tip: After restarting, open PowerShell as an administrator and run
systeminfo. In the "Hyper-V Requirements" section, there should be lines withYes. IfNo— there is a problem with virtualization support in the BIOS.
2. Restarting and Checking Hyper-V Services
Hyper-V services are the "brain" of the system. Their failure or stoppage is a common cause.
- Press Win + R, type
services.msc, and press Enter. - Find the two services:
- Hyper-V Virtual Machine Management (
vmms) - Hyper-V Host Compute Service (
vmcompute)
- Hyper-V Virtual Machine Management (
- For each:
- Right-click → Properties.
- Ensure that Startup Type = "Automatic".
- Click Restart.
- If the services do not start, check their Windows Event Log (in the service properties → "Event Log" tab).
You can also execute in PowerShell (administrator):
# Restart all Hyper-V services
Restart-Service -Name vmms, vmcompute -Force
# Check their status
Get-Service -Name vmms, vmcompute
3. BIOS/UEFI Settings: Virtualization and Security
Without enabled virtualization in the firmware, Hyper-V will not work.
- Restart your PC and enter BIOS/UEFI (the key Del, F2, F10, F12 — depends on the manufacturer).
- Find the section CPU Configuration or Advanced CPU Settings.
- Enable the options:
- Intel VT-x / AMD-V (sometimes called SVM on AMD).
- Intel VT-d / AMD-Vi (IOMMU, for device passthrough).
- Intel EPT / AMD RVI (second stage address translation, preferably enabled).
- Also, check the Security section:
- Ensure that Secure Boot does not block Hyper-V (usually does not block, but in rare cases may).
- Virtualization Technology should be Enabled.
- Save changes (F10) and exit.
⚠️ Important: After enabling virtualization in BIOS, you may need to reset security settings in Windows (for example, disable Hypervisor-Protected Code Integrity if it conflicts with drivers). Usually, this is not necessary.
4. Conflicts with Other Virtualization Software
If you have VMware Workstation/Player, VirtualBox, Docker Desktop (with WSL2) installed, they may conflict with Hyper-V, as all try to take over the hypervisor.
Option A: Temporary Removal/Disabling
- Uninstall competing software via "Programs and Features".
- Or disable its network drivers (for example, in VirtualBox: File → Settings → Network → Remove adapters).
Option B: Switching Hyper-V Mode
If you want to keep both hypervisors, you can try disabling the Windows hypervisor for a specific VM (but this will reduce performance):
- In the VM properties → Processor → uncheck Enable Windows Hypervisor.
- Or globally via command prompt (administrator):
bcdedit /set hypervisorlaunchtype off
Then restart your PC. To revert — bcdedit /set hypervisorlaunchtype auto.
5. Resetting and Recreating the Virtual Switch
A damaged or improperly configured virtual switch is a common "silent" cause.
- Open Hyper-V Manager.
- On the right in actions, select Virtual Switch Manager.
- Delete all existing switches (if they are not used by critical VMs).
- Create a new one:
- Type: External (to allow the VM to access the internet).
- Name: for example,
ExternalSwitch. - In "Virtual Adapter" select your physical network interface (Ethernet or Wi-Fi).
- Click OK.
- In the properties of your VM → Network Adapters → select the new switch.
6. Restoring the Virtual Machine Configuration
If the problem is with a specific VM (and not all), its configuration file may be corrupted (.xml or .vmcx in the VM folder).
Method 1: Export and Import (recommended)
- In Hyper-V Manager, turn off the problematic VM.
- Right-click → Export.
- Specify a folder for the export.
- After successful export, create a new VM (quick create or from an image).
- In the settings of the new VM → Hard Disk → Edit → Browse and specify the VHD/VHDX file that was exported.
- Try to start it.
Method 2: Restore from Backup
If you used Windows Backup or third-party utilities, restore the VM folder from the backup (usually C:\Users\Public\Documents\Hyper-V\Virtual Machines and ...\Virtual Hard Disks).
7. Additional Diagnostic Methods
If nothing helped, let's delve into the logs.
Viewing Hyper-V Events
- Open Event Viewer (
eventvwr.msc). - Go to: Windows Logs → Application.
- In the current log filter, enter Hyper-V or VMMS.
- Look for events with the level Error at the time of the VM start attempt. Common codes:
- 32780 — access problem to VHD.
- 16000 — virtual switch initialization failure.
- 13000 — CPU configuration error.
Checking the VHD File
Ensure that the virtual hard disk is not corrupted and is accessible:
# Check VHDX for errors (replace the path)
Resize-VHD -Path "C:\VMs\MyVM\VirtualHardDisks\disk.vhdx" -SizeBytes 50GB -Confirm:$false
Or use the Hyper-V Virtual Machine Connection (vmconnect.exe) utility to connect to the VM console if it partially starts.
Resetting Hyper-V Network (cleanup)
Sometimes a complete reset of Hyper-V network components in PowerShell (administrator) helps:
# Remove all virtual switches and adapters
Get-VMSwitch | Remove-VMSwitch -Force
Get-NetAdapter -Name "vEthernet*" | Remove-NetAdapter -Confirm:$false
# Restart the Hyper-V network management service
Restart-Service -Name vmcompute -Force
Then create the switch again (see step 5).
8. Last Resort Measures
- Update Drivers and BIOS: Install the latest chipset and network adapter drivers from the motherboard/laptop manufacturer's website. Update BIOS/UEFI.
- Disable Antivirus: Some AVs (especially with "deep" protection) block the hypervisor. Temporarily disable it.
- Clean Boot: Perform
msconfig→ "Services" → check "Hide Microsoft services" → disable everything. Restart. If the VM starts — a third-party service is to blame. - Create a New VM from Scratch: If the problem is only with one VM, create a new one and attach the old VHD. Sometimes this helps.
Final Check
After each step, try to start the virtual machine. If the problem is resolved — you found the cause. If not — proceed to the next point.
The most likely causes in descending order:
- Hyper-V is disabled in Windows features (step 1).
- Inactive services
vmms/vmcompute(step 2). - Virtualization disabled in BIOS (step 3).
- Conflict with VMware/VirtualBox (step 4).
- Damaged virtual switch (step 5).
- Corrupted settings of a specific VM (step 6).
If none of the steps helped, the problem may lie in the hardware (insufficient memory, incompatible processor) or deep system corruption. In this case, consider Windows recovery or a clean installation.
Good luck with your diagnosis! If you found another solution — share it in the comments (in the original source of the article).