WSL 灾难性故障:Wsl/Service/E_UNEXPECTED
启动 WSL 时,如果反复出现 Wsl/Service/E_UNEXPECTED,即使重启 Windows 也无法恢复,问题可能已经不只是某个 Linux 发行版没有正常退出,而是 WSL 的宿主服务状态异常。此时可以先关闭 WSL 实例,再重启负责管理 WSL 生命周期和运行衔接的 Windows 服务。
解决方案
操作前先保存 WSL 中的工作,并退出 Docker Desktop 等依赖 WSL 的程序。下面的命令需要在 Windows 管理员身份的 PowerShell 或命令提示符中执行,不要在 WSL Shell 中执行。
-
关闭所有 WSL 实例:
wsl --shutdown -
重启 WSL 服务。对于使用 Windows 内置 WSL 组件的系统,服务名通常是
LxssManager:net stop LxssManager net start LxssManagerLxssManager负责管理 WSL 实例的启动、停止和生命周期,并衔接wsl.exe与 Linux 子系统。重启服务会结束当前 WSL 实例,因此需要先保存未完成的工作。 -
服务启动完成后,重新打开 WSL:
wsl
如果找不到 LxssManager 服务
部分通过 Microsoft Store 安装或更新的 WSL 版本,可能使用 WslService 替代 LxssManager。可以先查询服务:
Get-Service LxssManager, WslService -ErrorAction SilentlyContinue
如果查询结果中存在 WslService,请重启该服务:
net stop WslService
net start WslService
然后再次执行 wsl。如果服务无法停止或启动,先确认 Docker Desktop 等程序已经退出,再以管理员身份重试。