问题描述

windows更新之后wsl没了,文件资源管理器左边栏有linux的图标,但是点进去是空文件夹

尝试在命令行中打开ubuntu或者运行wsl命令会出现:

PS C:\WINDOWS\system32> wsl --install 
wsl: WSL 安装似乎已损坏 (错误代码: Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG)。
按任意键修复 WSL,或 CTRL-C 取消。
此提示将在 60 秒后超时。
PS C:\WINDOWS\system32> wsl --update 
wsl: WSL 安装似乎已损坏 (错误代码: Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG)。
按任意键修复 WSL,或 CTRL-C 取消。
此提示将在 60 秒后超时。
没有注册类
错误代码: Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG

使用 SFC /scannowDISM /Online /Cleanup-Image /RestoreHealth 命令,都没有检查出问题

解决办法

猜测原因是 Windows 更新在某种程度上破坏了 WSL 核心组件的注册信息,导致系统无法正确识别和加载 WSL 所需的类,因此尝试禁用并重新启用 WSL 功能

  1. 以管理员身份打开 PowerShell
  2. 运行以下命令禁用 WSL 功能:
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
  1. 重新启动计算机(必要,不然会报错:50)
  2. 以管理员身份打开 PowerShell
  3. 运行以下命令启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

其他情况

还有一种情况是,wsl需要更新:

需要以管理员身份运行命令行,输入:wsl.exe --update

之后重启电脑就可以在文件资源管理器看到wsl图标了