Verify Hardware Virtualization in BIOS
The most common cause of WSL2 failure is that the CPU's virtualization extensions are turned off in the system firmware. Modern Intel processors use a feature called Intel VT-x, while AMD processors use AMD-V. If these are disabled, the Windows Hypervisor cannot function, leading to immediate rejection when trying to launch a Linux distribution. You need to restart your computer and enter the BIOS or UEFI setup menu. This is usually done by pressing a specific key during boot, such as F2, Del, F10, or Esc, depending on the manufacturer. Once inside the BIOS interface, look for a section labeled "Advanced," "CPU Configuration," or "Security." Search for options named "Intel Virtualization Technology," "VT-x," "AMD-V," or "SVM Mode." Ensure this option is set to Enabled. Save your changes and exit the BIOS. The system will reboot into Windows.Enable Required Windows Features
Even with hardware support enabled, Windows must have specific software components installed to run WSL2. These features allow the operating system to create and manage lightweight virtual machines. You can enable them using PowerShell with administrative privileges. Open PowerShell as Administrator and run the following command to install the necessary base components:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform
This command activates both the WSL kernel and the Hyper-V based virtual machine platform that WSL2 relies on. After running the command, you must restart your computer for the changes to take effect. Without this restart, the new drivers and services will not load correctly, and WSL2 will continue to report that the system is unsupported.
Check Core Isolation and Memory Integrity
A frequent point of confusion involves the interaction between WSL2 and Windows Security features like Core Isolation. Historically, older versions of WSL required disabling memory integrity, but modern builds of Windows 10 and 11 support WSL2 alongside these security features. However, if you encounter errors after enabling the features above, check if Memory Integrity is blocking the hypervisor. Navigate to Windows Security > Device Security > Core isolation details. Here, you can toggle Memory integrity. In many cases, leaving this enabled is safe for WSL2. If you still face issues, try temporarily disabling it to see if the error persists. Note that disabling Memory Integrity reduces your system's security posture against certain types of malware, so re-enable it once you confirm whether it is the culprit.Distinguishing Between VBS and Hyper-V
It is important to understand that WSL2 uses the same underlying technology as Hyper-V, known as Virtualization-Based Security (VBS). Enabling WSL2 effectively turns on VBS components. Therefore, you should not disable VBS entirely if you want WSL2 to work. Instead, ensure that no third-party antivirus software is interfering with the hypervisor launch. Some legacy security tools may hook into the virtualization layer and prevent WSL from starting. Temporarily disabling such software during installation can help identify conflicts.Update the WSL Kernel
After ensuring the features are enabled and the system has restarted, you may need to update the internal Linux kernel used by WSL2. Microsoft releases updates to the WSL kernel separately from Windows updates. Open PowerShell again and run:wsl --update
This command checks for the latest version of the WSL kernel and installs it if available. An outdated kernel can sometimes fail to initialize properly on newer hardware configurations. Following the update, restart the WSL service by running wsl --shutdown and then launching your distribution again.
Validate the Installation
To confirm that the issue is resolved, check the status of your WSL instances. Run the following command in PowerShell:wsl -l -v
If the output lists your distributions with a VERSION column showing 2, then WSL2 is successfully installed and running. If it still shows version 1 or fails to list any distros, revisit the BIOS settings and Windows feature installation steps. Ensure that no other virtualization software, such as VMware or VirtualBox, is actively locking the hypervisor resources, although they usually coexist peacefully in modern Windows versions.
Frequently Asked Questions
Why does WSL2 say system not supported even after enabling virtualization?
This often happens if the Windows "VirtualMachinePlatform" feature was not enabled before the first attempt to run WSL. You must enable both the Linux subsystem and the VM platform features via PowerShell and then restart the computer. Additionally, ensure that your BIOS settings were saved correctly and that the system booted into the updated configuration.
Can I run WSL2 with Docker Desktop on Windows?
Yes, Docker Desktop for Windows uses WSL2 as its backend engine for better performance and resource management. If WSL2 is working correctly, Docker Desktop should automatically detect it. If Docker reports an error, ensure that the WSL integration toggle is enabled within the Docker Desktop settings under Resources > WSL Integration.
How do I fix WSL_E_DEFAULT_DISTRO_NOT_FOUND after updating?
If you recently updated Windows or WSL and cannot find your default distribution, it may be due to a corrupted registry entry or missing package. You can reinstall a specific distribution using the Microsoft Store or by downloading the tarball directly and importing it with wsl --import. Check Troubleshooting WSL_E_DEFAULT_DISTRO_NOT_FOUND Error on Windows Subsystem for Linux for detailed recovery steps.
Does enabling WSL2 slow down my Windows PC?
WSL2 runs in a lightweight virtual machine, which consumes RAM and CPU cycles only when active. When idle, it uses minimal resources. However, if you leave multiple Linux processes running in the background, it can impact system performance. You can shut down all WSL instances using wsl --shutdown to free up resources when not in use.
Is it safe to disable Core Isolation for WSL2?
Disabling Core Isolation (Memory Integrity) is generally not recommended as it exposes your system to kernel-level attacks. Most modern WSL2 versions work perfectly with Core Isolation enabled. Only disable it temporarily for troubleshooting purposes if you suspect a conflict with specific legacy applications or drivers, and re-enable it immediately afterward.