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

DockerINTERMEDIATEHIGHUpdated Dec 1, 2025ยท 640 views

This error occurs when Docker Desktop cannot detect hardware virtualization support. You need to enable virtualization (VT-x/AMD-V) in your BIOS/UEFI settings and ensure Hyper-V or WSL 2 is properly configured in Windows.

Quick fix

Fixes Hardware assisted virtualization and data execution protection must be enabled in the BIOS

systeminfo
  1. Check current virtualization status
  2. Enable virtualization in BIOS/UEFI
  3. Enable Hyper-V Windows features
  4. Enable WSL 2 (for Windows Home or as alternative)
docker โ€” error
systeminfo
Hardware assisted virtualization and data execution protection must be enabled in the BIOS

What this error means

When Docker Desktop starts on Windows, it checks for hardware virtualization support. Docker requires either Hyper-V (Windows Pro/Enterprise) or WSL 2 (Windows Home/Pro) to run containers, and both of these technologies depend on CPU virtualization features being enabled. This error appears when Docker detects that: - Hardware virtualization (Intel VT-x or AMD-V/SVM) is disabled in BIOS/UEFI - Data Execution Prevention (DEP/NX bit) is disabled - The Windows Hypervisor Platform is not enabled - Required Windows features (Hyper-V or WSL 2) are not installed The error message "Docker Desktop is unable to detect a Hypervisor" or "Hardware assisted virtualization and data execution protection must be enabled in the BIOS" indicates that the underlying virtualization layer that Docker needs is not available or properly configured.

Typical symptoms

  • Docker Desktop fails to start with a virtualization error dialog
  • Error message: 'Hardware assisted virtualization and data execution protection must be enabled in the BIOS'
  • Docker Desktop shows 'Unable to detect a Hypervisor' error
  • Task Manager Performance tab shows 'Virtualization: Disabled'
  • Docker Desktop installer warns about missing virtualization support
  • WSL 2 based engine fails to initialize

Common causes

  1. Hardware virtualization (VT-x/AMD-V) is disabled in BIOS/UEFI settings
  2. Data Execution Prevention (DEP/NX bit) is disabled in BIOS
  3. Hyper-V Windows feature is not enabled (Windows Pro/Enterprise)
  4. Windows Hypervisor Platform feature is not enabled
  5. WSL 2 is not installed or properly configured (Windows Home)
  6. Hypervisor launch type is set to 'Off' in Windows boot configuration
  7. Conflicting software disabled the hypervisor (VirtualBox, VMware, anti-cheat software)
  8. Windows version does not support required virtualization features
  9. Secure Boot or other BIOS settings interfering with virtualization

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

1Check current virtualization status

First, verify whether virtualization is currently enabled on your system:

Using 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 say "Enabled"

Using System Information:

powershell
systeminfo

Look for the "Hyper-V Requirements" section at the bottom. If you see "A hypervisor has been detected. Features required for Hyper-V will not be displayed", virtualization is working.

If virtualization shows "Disabled", proceed to enable it in BIOS.

2Enable virtualization in BIOS/UEFI

Restart your computer and enter BIOS/UEFI settings. The key varies by manufacturer:

| Manufacturer | BIOS Key |
|-------------|----------|
| Dell | F2 or F12 |
| HP | F10 or Esc |
| Lenovo | F1 or F2 |
| ASUS | F2 or Del |
| Acer | F2 or Del |
| MSI | Del |

For Intel CPUs, look for:
- "Intel Virtualization Technology" or "Intel VT-x"
- "VT-d" (for directed I/O)
- Usually found under: Advanced > CPU Configuration

For AMD CPUs, look for:
- "SVM Mode" (Secure Virtual Machine)
- "AMD-V"
- Usually found under: Advanced > CPU Configuration or Tweaker > Advanced CPU Settings

Enable both virtualization AND NX/XD bit:
- "Execute Disable Bit" or "NX Mode" (should be Enabled)

Save changes and exit BIOS (usually F10).

3Enable Hyper-V Windows features

After enabling virtualization in BIOS, enable the required Windows features.

For Windows Pro/Enterprise (using Hyper-V):

1. Press Win + R, type optionalfeatures, press Enter
2. Check the following boxes:
- Hyper-V (expand and check all sub-items)
- Windows Hypervisor Platform
3. Click OK and restart when prompted

Using PowerShell (as Administrator):

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

Using DISM (as Administrator):

cmd
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Restart your computer after enabling these features.

4Enable WSL 2 (for Windows Home or as alternative)

Windows Home doesn't have Hyper-V, but Docker Desktop can use WSL 2 instead.

Enable WSL and Virtual Machine Platform:

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

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

Restart your computer, then set WSL 2 as default:

powershell
wsl --set-default-version 2

Update WSL to the latest version:

powershell
wsl --update

In Docker Desktop Settings, ensure "Use the WSL 2 based engine" is checked.

5Set hypervisor to auto-start

Sometimes the hypervisor launch type gets set to "Off" by other software. Fix this with:

Check current setting:

cmd
bcdedit

Look for hypervisorlaunchtype. If it says "Off", change it:

Enable hypervisor auto-start (run as Administrator):

cmd
bcdedit /set hypervisorlaunchtype auto

You should see "The operation completed successfully."

Restart your computer for changes to take effect.

Note: Some anti-cheat software and virtualization tools set this to "Off". You may need to disable or configure them.

6Remove conflicting software

Certain software can conflict with Hyper-V and Docker:

Common conflicts:
- VirtualBox (versions before 6.0): Update to 6.0+ or uninstall
- VMware Workstation (versions before 15.5.5): Update or uninstall
- Android emulators: Some disable Hyper-V on install
- Anti-cheat software: Games like Valorant's Vanguard can disable hypervisor
- Cygwin: Some configurations conflict with Docker

If you use VirtualBox:
VirtualBox 6.0+ can work alongside Hyper-V, but performance may be reduced. Consider using Docker's built-in virtualization instead.

After removing conflicting software:
1. Re-enable Hyper-V if it was disabled
2. Run bcdedit /set hypervisorlaunchtype auto
3. Restart your computer

7Reinstall Hyper-V components

If Hyper-V is partially installed or corrupted, reinstall it:

Using PowerShell (as Administrator):

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

# Restart computer, then re-enable
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

# Also enable containers feature
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All

Using Windows Features GUI:
1. Open "Turn Windows features on or off"
2. Completely uncheck Hyper-V and all sub-components
3. Click OK and restart
4. Return and re-enable Hyper-V
5. Restart again

8Verify Windows version compatibility

Docker Desktop has specific Windows version requirements:

Minimum requirements:
- Windows 10 64-bit: Version 22H2 (Build 19045) or higher
- Windows 11 64-bit: Version 23H2 (Build 22631) or higher
- Windows Pro, Enterprise, or Education for Hyper-V
- Windows Home can use WSL 2 backend

Check your Windows version:

powershell
winver

If your Windows version is too old:
1. Run Windows Update to get the latest version
2. Go to Settings > Update & Security > Windows Update
3. Install all available updates

Windows Home users:
- You cannot use Hyper-V, only WSL 2
- Ensure Docker Desktop is configured for WSL 2 backend

9Reset Docker Desktop and reinstall

If nothing else works, perform a clean reinstall:

Reset Docker Desktop:
1. Open Docker Desktop (if possible)
2. Go to Settings > Troubleshoot
3. Click "Reset to factory defaults"

Clean uninstall and reinstall:
1. Uninstall Docker Desktop from Windows Settings > Apps
2. Delete remaining Docker data:

powershell
Remove-Item -Recurse -Force "$env:APPDATA\Docker" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Docker" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:PROGRAMDATA\Docker" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:PROGRAMDATA\DockerDesktop" -ErrorAction SilentlyContinue

3. Restart Windows
4. Download latest Docker Desktop from https://www.docker.com/products/docker-desktop/
5. Run installer and follow prompts
6. Restart when prompted

Advanced notes

Understanding the virtualization stack:
Docker Desktop on Windows uses a layered virtualization approach:
1. CPU Virtualization (VT-x/AMD-V): Hardware feature that must be enabled in BIOS
2. Windows Hypervisor Platform: Windows component that exposes virtualization to applications
3. Hyper-V or WSL 2: The actual virtualization backend Docker uses
4. Docker Engine: Runs inside a lightweight VM managed by Hyper-V or WSL 2

Hyper-V vs WSL 2 backend:
| Feature | Hyper-V | WSL 2 |
|---------|---------|-------|
| Windows Editions | Pro/Enterprise/Education | All editions |
| Performance | Good | Better (native Linux) |
| File system sharing | Slower | Faster |
| Memory usage | Fixed allocation | Dynamic |
| Linux kernel | Moby VM | Real Linux kernel |

WSL 2 is now the recommended backend for most users.

Secure Boot considerations:
Secure Boot is generally compatible with Hyper-V and Docker. However, if you're having issues:
- Try disabling Secure Boot temporarily to test
- Ensure your BIOS firmware is up to date
- Some older systems require Secure Boot disabled for virtualization

Corporate/Enterprise environments:
- Group Policy may control Hyper-V settings
- Windows Defender Credential Guard may conflict
- Check with IT if virtualization features are managed centrally

Nested virtualization:
If running Windows in a VM (e.g., on cloud or another hypervisor), ensure nested virtualization is enabled on the host:
- VMware: Enable "Virtualize Intel VT-x/EPT or AMD-V/RVI"
- Hyper-V: Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
- Azure/AWS: Use VM sizes that support nested virtualization

Frequently asked questions

What does "Hardware assisted virtualization and data execution protection must be" mean?
When Docker Desktop starts on Windows, it checks for hardware virtualization support. Docker requires either Hyper-V (Windows Pro/Enterprise) or WSL 2 (Windows Home/Pro) to run containers, and both of these technologies depend on CPU virtualization features being enabled. This error appears when Docker detects that: - Hardware virtualization (Intel VT-x or AMD-V/SVM) is disabled in BIOS/UEFI - Data Execution Prevention (DEP/NX bit) is disabled - The Windows Hypervisor Platform is not enabled - Required Windows features (Hyper-V or WSL 2) are not installed The error message "Docker Desktop is unable to detect a Hypervisor" or "Hardware assisted virtualization and data execution protection must be enabled in the BIOS" indicates that the underlying virtualization layer that Docker needs is not available or properly configured.
How do I fix "Hardware assisted virtualization and data execution protection must be"?
This error occurs when Docker Desktop cannot detect hardware virtualization support. You need to enable virtualization (VT-x/AMD-V) in your BIOS/UEFI settings and ensure Hyper-V or WSL 2 is properly configured in Windows.
What causes "Hardware assisted virtualization and data execution protection must be"?
Hardware virtualization (VT-x/AMD-V) is disabled in BIOS/UEFI settings Data Execution Prevention (DEP/NX bit) is disabled in BIOS Hyper-V Windows feature is not enabled (Windows Pro/Enterprise)
Is the "Hardware assisted virtualization and data execution protection must be" 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