一、问题
最近应该是因为更新系统,正要使用 wsl 发现无法运行,并报错:
wsl: WSL 安装似乎已损坏 (错误代码: Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG)。
按任意键修复 WSL,或 CTRL-C 取消。
此提示将在 60 秒后超时。
只要与 WSL 相关的指令,一律都是同样的报错,所以只能外部卸载。并且按任意键自动修复,结束后也无法使用。
二、解决方案
1、尝试使用命令行重新安装 WSL,也没有作用:
打开 PowerShell 或 Windows 命令提示符(以管理员身份运行),卸载 WSL 可选组件:
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
重新启用 WSL 可选组件:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2、尝试使用用系统文件检查器(SFC)和部署映像服务和管理工具(DISM)来检查和修复系统文件:
sfc /scannow
然后
dism.exe /online /cleanup-image /restorehealth
重启还是没有用,盲猜当前版本官方的包会不会出问题。
3、于是我在Github下载了发行版,下载的最新的:
我下的 wsl.2.4.10.0.x64.msi,链接:
Releases · microsoft/WSL · GitHubhttps://github.com/microsoft/WSL/releaseshttps://github.com/microsoft/WSL/releases下载完成执行程序,会提示无法写入注册表,我在注册表没有找到对应的文件,于是一连串的弹窗我都选择忽略,重新运行 WSL,发现可以用了。
不知道是不是暂时的,后期可能微软会修复,先用着看吧,本来也是为了临时用。