Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save imranhoshain/0b3cc7bf074bedd7f2348013eb1a7fdc to your computer and use it in GitHub Desktop.

Select an option

Save imranhoshain/0b3cc7bf074bedd7f2348013eb1a7fdc to your computer and use it in GitHub Desktop.
Virtualization Guide
Virtualization Guide: Host PC and VMware VM
Last updated: 2026-07-06
This guide covers two different setups that conflict with each other on many Windows hosts:
Host PC mode: Claude workspace, WSL 2, Docker Desktop on the host.
VMware nested virtualization mode: Docker Desktop inside a Windows VMware guest.
You may need to switch between these modes depending on what you want to run.
VMware Guest VM
From previous checks:
Manufacturer: VMware, Inc.
Model: VMware20,1
RAM: 8 GB
OS: Windows 11 Pro
Docker Desktop needs virtualization exposed from the host.
BIOS / UEFI Settings on Host PC
Enter Gigabyte BIOS with Del during boot.
Enable:
Intel Virtualization Technology
VT-d
Save and reboot.
If these are disabled, both WSL/Claude and VMware nested virtualization can fail with messages like:
Hardware virtualization (Intel VT-x or AMD-V) is disabled in this device's firmware.
Mode 1: Enable Host PC for Claude / WSL 2
Use this mode when Claude workspace, WSL 2, or Docker Desktop on the physical host says the hypervisor is not running.
Open PowerShell as Administrator on the physical host and run:
bcdedit /set hypervisorlaunchtype auto
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:HypervisorPlatform /all /norestart
wsl --update
Reboot the host:
shutdown /r /t 0
After reboot, check:
wsl --status
systeminfo
For Claude/WSL mode, this is usually good:
Hyper-V Requirements: A hypervisor has been detected.
That means the Windows hypervisor is running.
Mode 2: Enable VMware VM for Docker Desktop Nested Virtualization
Use this mode when Docker Desktop inside the VMware Windows guest says:
Virtualization support not detected
Or VMware fails with:
Feature 'hv.capable' was 0, but must be at least 0x1.
Module 'FeatureCompatLate' power on failed.
This usually means the Windows host hypervisor or VBS/HVCI is still active and VMware cannot expose VT-x/EPT to the guest.
1. Shut down the VMware VM
Power off the guest completely. Do not suspend it.
2. Disable host Windows hypervisor and VBS/HVCI
Open PowerShell as Administrator on the physical host and run:
bcdedit /set hypervisorlaunchtype off
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled /t REG_DWORD /d 0 /f
Also check the GUI setting:
Open Windows Security.
Go to Device security.
Open Core isolation.
Turn Memory integrity off.
Reboot the physical host:
shutdown /r /t 0
3. Verify host state
After reboot, run this on the physical host:
systeminfo
For VMware nested virtualization mode, you do not want to see:
Virtualization-based security: Status: Running
Hyper-V Requirements: A hypervisor has been detected.
If VBS is still running, VMware may still fail to expose VT-x/EPT.
4. Enable nested virtualization in VMware
In VMware Workstation:
Select the VM.
Open VM Settings.
Go to Processors.
Enable Virtualize Intel VT-x/EPT or AMD-V/RVI.
Start the VM.
If the checkbox is unavailable or the VM fails to start, the host is still blocking nested virtualization.
5. Enable WSL/Docker requirements inside the guest VM
Inside the Windows VMware guest, open PowerShell as Administrator:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
wsl --update
Reboot the guest VM.
Then start Docker Desktop inside the guest.
Quick Switching Commands
Switch to Claude / WSL on Host
Run on host as Administrator:
bcdedit /set hypervisorlaunchtype auto
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:HypervisorPlatform /all /norestart
shutdown /r /t 0
Switch to Docker Desktop Inside VMware Guest
Run on host as Administrator:
bcdedit /set hypervisorlaunchtype off
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled /t REG_DWORD /d 0 /f
shutdown /r /t 0
Then enable nested virtualization in VMware VM settings.
Troubleshooting
Claude says HRESULT 0x80370102
Usually means WSL cannot start because the host hypervisor is off.
Fix:
bcdedit /set hypervisorlaunchtype auto
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
shutdown /r /t 0
Docker Desktop inside VMware says virtualization support not detected
Usually means VMware cannot expose VT-x/EPT to the guest.
Check on the host:
systeminfo
If you see:
Virtualization-based security: Status: Running
Disable VBS/HVCI and reboot the host.
VMware says Feature 'hv.capable' was 0
This is a host-side problem. The guest cannot fix it.
Check:
BIOS has Intel Virtualization Technology enabled.
BIOS has VT-d enabled.
Host hypervisorlaunchtype is off for VMware nested mode.
Host Memory Integrity is off.
Host VBS is not running.
bcdedit says access denied
You are not running PowerShell as Administrator.
Right-click PowerShell or Windows Terminal and choose Run as administrator.
Important Tradeoff
On many Windows systems, these two setups conflict:
Claude/WSL/Docker Desktop on host wants the Windows hypervisor enabled.
VMware nested virtualization often needs the Windows hypervisor and VBS disabled.
If you switch modes, reboot the physical host after changing bcdedit or VBS settings.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment