How to fix Hardware assisted virtualization and data execution protection must be enabled in the BIOS in Docker

DockerINTERMEDIATEHIGHUpdated Dec 6, 2025· 708 views

This Docker Desktop error occurs when Windows cannot detect hardware virtualization support (VT-x/AMD-V) required to run containers. The fix involves enabling virtualization in your BIOS settings and ensuring Hyper-V or WSL 2 features are properly configured in Windows.

Quick fix

Fixes HCS_E_HYPERV_NOT_INSTALLED

# Check if Hyper-V hypervisor is present
(gcim Win32_ComputerSystem).HypervisorPresent

# Check system info for virtualization
systeminfo | findstr /i "virtualization"
  1. Check current virtualization status in Windows
  2. Enable virtualization in BIOS/UEFI
  3. Enable Hyper-V feature (Windows Pro/Enterprise/Education)
  4. Enable WSL 2 and Virtual Machine Platform (Windows Home)
docker — error
# Check if Hyper-V hypervisor is present
(gcim Win32_ComputerSystem).HypervisorPresent
# Check system info for virtualization
systeminfo | findstr /i "virtualization"
Hardware assisted virtualization and data execution protection must be enabled in the BIOS

What this error means

The "Hardware assisted virtualization and data execution protection must be enabled in the BIOS" error indicates that Docker Desktop cannot detect the virtualization features required to run containers on Windows. Docker Desktop requires hardware-assisted virtualization (Intel VT-x or AMD-V) and Data Execution Protection (DEP) to create and manage virtual machines that run your containers. On Windows, Docker Desktop can use either Hyper-V or WSL 2 (Windows Subsystem for Linux 2) as its backend. Both backends require hardware virtualization support at the CPU level. When this support is disabled in the BIOS/UEFI firmware, or when the required Windows features are not enabled, Docker cannot start its virtual machine and displays this error. This error is particularly common after fresh Windows installations, BIOS updates that reset settings to defaults, or when running Docker on systems that have other virtualization software (like VirtualBox or VMware) that may conflict with Hyper-V.

Typical symptoms

  • Docker Desktop fails to start with 'Hardware assisted virtualization must be enabled' error
  • Docker Desktop shows 'Unable to detect a Hypervisor' message
  • Docker Desktop displays WSL error code Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
  • Task Manager shows 'Virtualization: Disabled' in the Performance tab
  • Docker commands hang or timeout without starting containers
  • Docker Desktop worked previously but fails after Windows or BIOS updates

Common causes

  1. Hardware virtualization (VT-x/AMD-V) is disabled in BIOS/UEFI settings
  2. Data Execution Protection (DEP/NX bit) is disabled in BIOS
  3. Hyper-V feature is not enabled in Windows (Windows Pro/Enterprise/Education)
  4. Virtual Machine Platform or WSL 2 features are not enabled (Windows Home)
  5. Hypervisor launch type is set to 'off' in Windows boot configuration
  6. Conflicting virtualization software (VirtualBox, VMware, Cygwin) interfering with Hyper-V
  7. Running Windows inside a VM without nested virtualization enabled
  8. Windows Security Core Isolation features interfering with virtualization

How to fix "Hardware assisted virtualization and data execution protection must be enabled in the BIOS"

1Check current virtualization status in Windows

Before making changes, verify your current virtualization status:

Method 1: Task Manager
1. Press Ctrl + Shift + Esc to open Task Manager
2. Click the "Performance" tab
3. Select "CPU" from the left panel
4. Look for "Virtualization" at the bottom - it should show "Enabled"

Method 2: PowerShell
Open PowerShell as Administrator and run:

powershell
# Check if Hyper-V hypervisor is present
(gcim Win32_ComputerSystem).HypervisorPresent

# Check system info for virtualization
systeminfo | findstr /i "virtualization"

If virtualization shows as "Disabled" or HypervisorPresent returns False, you need to enable it in BIOS.

2Enable virtualization in BIOS/UEFI

Access your BIOS/UEFI settings and enable virtualization:

1. Restart your computer and press the BIOS key during startup (usually F2, F10, F12, Del, or Esc - varies by manufacturer)

2. Navigate to the virtualization settings (location varies by manufacturer):
- Intel systems: Look for "Intel Virtualization Technology (VT-x)" or "Intel VT" under:
- Advanced > CPU Configuration
- Security > Virtualization
- Advanced > System Agent Configuration

- AMD systems: Look for "SVM Mode" or "AMD-V" under:
- Advanced > CPU Configuration
- Advanced > Tweaker > Advanced CPU Settings
- OC (Overclocking) > CPU Features

3. Enable these settings:
- Intel Virtualization Technology (VT-x) or AMD SVM Mode: Enabled
- VT-d (Intel) or IOMMU (AMD): Enabled (if available)
- Execute Disable Bit (Intel) or NX Mode (AMD): Enabled

4. Save and exit (usually F10)

Common BIOS key combinations by manufacturer:
- Dell: F2 or F12
- HP: F10 or Esc
- Lenovo: F1 or F2
- ASUS: F2 or Del
- Acer: F2 or Del
- MSI: Del

3Enable Hyper-V feature (Windows Pro/Enterprise/Education)

If you're using Windows Pro, Enterprise, or Education, enable Hyper-V:

Method 1: PowerShell (Recommended)
Open PowerShell as Administrator and run:

powershell
# Enable Hyper-V with all sub-features
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

# Or use DISM
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Method 2: Windows Features GUI
1. Press Win + R, type optionalfeatures and press Enter
2. Find and check "Hyper-V" (expand to see sub-features)
3. Ensure both "Hyper-V Management Tools" and "Hyper-V Platform" are checked
4. Click OK and restart when prompted

Verify Hyper-V is enabled:

powershell
(Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online).State
# Should return "Enabled"
4Enable WSL 2 and Virtual Machine Platform (Windows Home)

Windows 10/11 Home doesn't include Hyper-V, but Docker Desktop can use WSL 2:

Enable required features:

powershell
# Enable Virtual Machine Platform
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# Enable Windows Subsystem for Linux
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Update WSL to version 2:

powershell
# Download and install the WSL 2 kernel update
wsl --update

# Set WSL 2 as default
wsl --set-default-version 2

Restart your computer after enabling these features.

Verify WSL 2:

powershell
wsl --version
wsl --list --verbose
5Set hypervisor launch type to auto

Sometimes the Windows hypervisor launch type gets set to "off". Fix it with these commands:

Open Command Prompt or PowerShell as Administrator:

powershell
# Enable hypervisor launch at boot
bcdedit /set hypervisorlaunchtype auto

# Restart for changes to take effect
shutdown /r /t 0

Verify the setting:

powershell
bcdedit /enum | findstr hypervisorlaunchtype
# Should show: hypervisorlaunchtype    Auto

If you ever need to disable it (for VirtualBox compatibility):

powershell
bcdedit /set hypervisorlaunchtype off
6Resolve conflicts with other virtualization software

VirtualBox, VMware, and certain other software can conflict with Hyper-V:

Option 1: Disable conflicting features
If you need Hyper-V for Docker:

powershell
# Disable Windows Sandbox (uses Hyper-V)
Disable-WindowsOptionalFeature -Online -FeatureName "Containers-DisposableClientVM"

# Disable Windows Hypervisor Platform for other apps
Disable-WindowsOptionalFeature -Online -FeatureName "HypervisorPlatform"

Option 2: Use VirtualBox 6.0+ with Hyper-V
VirtualBox 6.0 and later can run alongside Hyper-V (with reduced performance):
1. Update VirtualBox to version 6.0 or later
2. VirtualBox will automatically use Hyper-V as its backend

Option 3: Remove conflicting software
If you installed Cygwin, some users report conflicts:

powershell
# Uninstall Cygwin or its conflicting components

After making changes, restart Docker Desktop.

7Reset Hyper-V completely

If Hyper-V appears enabled but Docker still shows the error, try a complete reset:

Step 1: Disable Hyper-V completely

powershell
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Step 2: Restart your computer

Step 3: Re-enable Hyper-V

powershell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Step 4: Restart again

Step 5: Verify and set hypervisor launch

powershell
bcdedit /set hypervisorlaunchtype auto

Step 6: Final restart and test Docker Desktop

8Check for nested virtualization (if running in a VM)

If you're running Windows inside a virtual machine, you need nested virtualization support:

Hyper-V nested virtualization:
On the host machine, enable nested virtualization for the VM:

powershell
# Run on the HOST machine, not inside the VM
Set-VMProcessor -VMName "YourVMName" -ExposeVirtualizationExtensions $true

VMware Workstation:
1. Edit the VM settings
2. Go to Processors
3. Check "Virtualize Intel VT-x/EPT or AMD-V/RVI"

VirtualBox:
1. Open VirtualBox Settings for your VM
2. Go to System > Processor
3. Check "Enable Nested VT-x/AMD-V" (requires VirtualBox 6.1+)

Cloud VMs (Azure, AWS, GCP):
- Azure: Use Dv3, Ev3, or newer VM sizes that support nested virtualization
- AWS: Use metal instance types (e.g., c5.metal)
- GCP: Enable nested virtualization when creating the VM

Note: Docker Desktop is primarily designed to run on physical hardware. Running in a VM may have performance implications.

Advanced notes

Understanding the Virtualization Stack:
Docker Desktop on Windows relies on a layered virtualization architecture:

1. CPU Hardware - Must support VT-x (Intel) or AMD-V
2. BIOS/UEFI - Must have virtualization features enabled
3. Windows Hypervisor - Either Hyper-V or WSL 2 backend
4. Docker Desktop - Creates and manages Linux VMs for containers

Hyper-V vs WSL 2 Backend:
- Hyper-V backend: Traditional approach, uses a full Linux VM, better isolation
- WSL 2 backend: Lighter weight, faster startup, better filesystem performance for Linux files

You can switch between backends in Docker Desktop Settings > General > "Use the WSL 2 based engine".

Windows Core Isolation Conflicts:
Windows Security's Core Isolation feature (Memory Integrity) can sometimes interfere:

1. Open Windows Security
2. Go to Device Security > Core Isolation Details
3. Try disabling "Memory Integrity" temporarily to test

Diagnostic Commands:

powershell
# Full system virtualization check
systeminfo

# Check specific features
Get-WindowsOptionalFeature -Online | Where-Object {$_.FeatureName -like "*Hyper*" -or $_.FeatureName -like "*Virtual*"}

# Check BCD settings
bcdedit /enum | Select-String -Pattern "hypervisor"

# Check Docker Desktop logs
Get-Content "$env:APPDATA\Docker\log\vm\*.log" -Tail 50

Windows Sandbox and Hyper-V:
Windows Sandbox uses Hyper-V, so if Sandbox works, Hyper-V is functioning. Test with:
1. Enable Windows Sandbox feature
2. Launch Windows Sandbox from Start Menu
3. If it launches, Hyper-V is working

BIOS Reset Issues:
BIOS updates or CMOS battery replacement often reset virtualization settings to disabled. Always check BIOS settings after:
- BIOS/UEFI updates
- Motherboard battery replacement
- Full system resets

Frequently asked questions

What does "HCS_E_HYPERV_NOT_INSTALLED" mean?
The "Hardware assisted virtualization and data execution protection must be enabled in the BIOS" error indicates that Docker Desktop cannot detect the virtualization features required to run containers on Windows. Docker Desktop requires hardware-assisted virtualization (Intel VT-x or AMD-V) and Data Execution Protection (DEP) to create and manage virtual machines that run your containers. On Windows, Docker Desktop can use either Hyper-V or WSL 2 (Windows Subsystem for Linux 2) as its backend.
How do I fix "HCS_E_HYPERV_NOT_INSTALLED"?
This Docker Desktop error occurs when Windows cannot detect hardware virtualization support (VT-x/AMD-V) required to run containers. The fix involves enabling virtualization in your BIOS settings and ensuring Hyper-V or WSL 2 features are properly configured in Windows.
What causes "HCS_E_HYPERV_NOT_INSTALLED"?
Hardware virtualization (VT-x/AMD-V) is disabled in BIOS/UEFI settings Data Execution Protection (DEP/NX bit) is disabled in BIOS Hyper-V feature is not enabled in Windows (Windows Pro/Enterprise/Education)
Is the "HCS_E_HYPERV_NOT_INSTALLED" error serious?
Yes. This is a high-severity error that usually blocks work until it is fixed, but the steps above resolve it.

Official resources & further reading