After rebooting, no WSL distro will start. Every wsl invocation fails immediately:
The system cannot find the file specified.
Error code: Wsl/Service/CreateInstance/CreateVm/HCS/ERROR_FILE_NOT_FOUND
WSL was working fine. When I restarted, it wouldn’t work with the wierd file not found error.
Environment
-
Windows 11 23H2 (build 22631)
-
WSL 2.7.11.0, kernel 6.18.33.2-2
-
Distros stored in the default location
What I have already checked
I’ve tried:
-
%USERPROFILE%.wslconfigcontains no file paths at all (nokernel=, noswapFile=), so it isn’t pointing at something that has gone missing. -
VirtualMachinePlatformisEnabled:
Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform | ft FeatureName, State
-
vmcomputeandhnsare bothRunning. -
The distro
ext4.vhdxfiles are all present, and their registrations underHKCUSoftwareMicrosoftWindowsCurrentVersionLxssare intact. -
The WSL package reports itself as healthy:
Get-AppxPackage -AllUsers *WindowsSubsystemForLinux* | fl Name, Version, Status
# Version : 2.7.11.0
# Status : Ok
Repair attempts that failed
winget fails near the end of the install:
Installer failed with exit code: 0x80070002 : The system cannot find the file specified.
The AppX deployment log showed that the winget manifest is a version behind what is installed, so it is treated as a downgrade:
Windows cannot install package MicrosoftCorporationII.WindowsSubsystemForLinux
because it has version 2.7.10.0. A higher version 2.7.11.0 of this package is
already installed.
Installing the matching .msixbundle from the WSL releases page directly fails too:
Add-AppxPackage: Deployment failed with HRESULT: 0x80073CFB, The provided package
is already installed, and reinstallation of the package was blocked.
... the provided package has the same identity as an already-installed package but
the contents are different.
What file is WSL actually failing to find, and how do I get it back without unregistering my distros?