You ran wsl --install, Ubuntu downloaded fine, and then the first launch died with this:
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
WSL 2 runs a real Linux kernel inside a lightweight virtual machine. If any of the three layers is off (CPU virtualization in firmware → Windows features → the hypervisor itself), you get this error. Work through them in order and it’s almost always fixed by step 3.
Quick map of common error codes
| Error | Meaning | Go to |
|---|---|---|
| 0x80370102 | The VM couldn’t start | Steps 1–3 |
| 0x8007019e | The WSL feature isn’t enabled | Step 2 |
| 0x800701bc | WSL 2 kernel component needs an update | Step 4 (wsl --update) |
1. Make sure virtualization is enabled in BIOS/UEFI
This is the usual culprit. Open Task Manager (Ctrl+Shift+Esc) → Performance → CPU and look for Virtualization in the lower right.
- Enabled: firmware is fine, move on to step 2.
- Disabled: reboot into BIOS/UEFI setup and turn it on. On Intel boards it’s typically Intel Virtualization Technology (VT-x); on AMD it’s often called SVM Mode. Look under Advanced → CPU Configuration. Some laptops tuck it under the Security menu instead.
Save with F10, reboot, and confirm in Task Manager again.
2. Turn on both Windows features
WSL 2 needs Windows Subsystem for Linux and Virtual Machine Platform. From an elevated PowerShell:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
When both report “The operation completed successfully,” reboot. If you prefer the GUI, tick the same two items under Control Panel → Programs → Turn Windows features on or off.
3. Re-enable the hypervisor at boot
Firmware and features both on, still 0x80370102? Something (an old VM app, a game anti-cheat guide, a tweak script) may have disabled the hypervisor. Check from an elevated Command Prompt:
bcdedit /enum {current}
If you see hypervisorlaunchtype Off, set it back and reboot:
bcdedit /set hypervisorlaunchtype auto
After the restart, systeminfo should end with “A hypervisor has been detected” under the Hyper-V section.
4. Update WSL and set version 2 as default
wsl --update
wsl --set-default-version 2
wsl --install -d Ubuntu
This also clears 0x800701bc. If a half-installed distro is hanging around, wsl --unregister Ubuntu removes it so you can start clean. That deletes everything inside the distro, so only use it on a fresh install.
5. Confirm it worked
wsl --version
wsl -l -v
Your distro should show VERSION 2. If it says 1, run wsl --set-version Ubuntu 2. Planning to run GPU workloads inside WSL 2? Continue with our RTX 50 series PyTorch CUDA setup guide.
FAQ
- Running Windows inside a VM? The host has to expose nested virtualization. On a Hyper-V host, with the VM off:
Set-VMProcessor -VMName "YourVM" -ExposeVirtualizationExtensions $true. Other hypervisors have their own nested virtualization toggle. - Does it conflict with VirtualBox or VMware? Current versions run on top of the Windows hypervisor. Old versions don’t, so update them.
- Does it work on Windows Home? Yes. WSL 2 and Virtual Machine Platform are available on Home; only tools like Hyper-V Manager need Pro.