Created
July 6, 2026 06:32
-
-
Save imranhoshain/0b3cc7bf074bedd7f2348013eb1a7fdc to your computer and use it in GitHub Desktop.
Virtualization Guide
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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