文章目录
-
- [1. 强制关闭所有 WSL](#1. 强制关闭所有 WSL)
- [2. 重启 WSL 服务](#2. 重启 WSL 服务)
- [3. 杀掉 WSL 虚拟机进程](#3. 杀掉 WSL 虚拟机进程)
- [4. Docker Desktop 用户重点检查](#4. Docker Desktop 用户重点检查)
- [插入:强制杀死docker desktop](#插入:强制杀死docker desktop)
- [5. 重启 Hyper-V 相关服务](#5. 重启 Hyper-V 相关服务)
- [6. 最直接的方法](#6. 最直接的方法)
如果 wsl --list 都卡住没反应 ,通常说明:
- WSL 虚拟机挂死
LxssManager服务异常- Hyper-V/WSL 后端异常
- Docker Desktop 把 WSL 搞挂了(比较常见)
按下面顺序排查:
1. 强制关闭所有 WSL
管理员 PowerShell:
powershell
wsl --shutdown
如果也卡死,继续下一步。
(确实卡死了)
2. 重启 WSL 服务
管理员 PowerShell:
powershell
Get-Service LxssManager

如果状态异常:
powershell
Restart-Service LxssManager

或者:
powershell
net stop LxssManager
net start LxssManager

然后再试:
powershell
wsl --list

(还是没用,一直卡死)
3. 杀掉 WSL 虚拟机进程
打开任务管理器:
结束:
text
vmmemWSL
或者 PowerShell:
powershell
taskkill /F /IM wsl.exe
taskkill /F /IM wslservice.exe
taskkill /F /IM vmcompute.exe

然后:
powershell
wsl --shutdown
wsl --list

(成功了)
4. Docker Desktop 用户重点检查
如果你运行了 Docker:
先退出 Docker Desktop。
(退出不了,点了一点反应都没)
然后:
powershell
wsl --shutdown
再启动 Docker。
很多情况下是:
text
docker-desktop
docker-desktop-data
内部卡死导致整个 WSL 无响应。
插入:强制杀死docker desktop
powershell
taskkill /F /IM "Docker Desktop.exe"
taskkill /F /IM "com.docker.backend.exe"
taskkill /F /IM "com.docker.service.exe"
(没用,docker还是一直转圈圈)

5. 重启 Hyper-V 相关服务
管理员 PowerShell:
powershell
Restart-Service vmcompute

如果失败:
powershell
net stop vmcompute
net start vmcompute

(没有用)
6. 最直接的方法
如果上面都没反应:
powershell
shutdown /r /t 0
直接重启 Windows。
WSL2 本质上是一个轻量级虚拟机,如果虚拟机层死锁,重启往往比折腾半小时更快。
如果你想进一步定位原因,请贴一下:
powershell
wsl --status
wsl --version
以及执行:
powershell
Get-Process *wsl*
Get-Process *vm*
的结果。
另外告诉我:
- 是否安装了 Docker Desktop
- 刚才在 WSL 里运行了什么命令
- 是突然卡死还是长期越来越慢
这样能更准确判断是 Docker、WSL 还是 Windows 虚拟化层的问题。