1、问题

  • windows
  • wsl2 (Ubuntu-18.04)

wsl 子系统用了一段时间,突然无法连接了,报错提示如下:

由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

折腾多次后,报错提示变为如下提示,详见第二部分:

没有收到虚拟机或容器的回应,操作超时 [已退出进程,代码为4294967295]

2、排查

根据网上方案,使用以下命令多次重启 wsl ,有一两次提示发生了变化,但总是无法启动 wsl
注:许多人通过重启就可以解决问题,值得一试。

重启命令 1

# 在 Windows PowerShell(管理员)下运行
net stop LxssManager
net start LxssManager

重启命令 2

# 在 Windows PowerShell(管理员)下运行
wsl --shutdown
wsl

重启命令 3

# 在 Windows PowerShell(管理员)下运行
wsl --terminate Ubuntu-18.04
wsl

新的错误提示

没有收到虚拟机或容器的回应,操作超时 [已退出进程,代码为4294967295]

3、解决

最终我的解决方案是“无损重装 wsl”,即将 wsl 导出、卸载(注销)、重新导入,此方案会比较耗时,但可以保证成功并可以完全恢复原来的 wsl 系统。

  • 首先导出子系统为 D 盘下的 tar 文件,此步骤根据 wsl 子系统大小,耗时可能超过半个小时,记得耐心等待。
# 在 Windows PowerShell(管理员)下运行
# --export <系统版本> <文件名/文件路径>
wsl --export Ubuntu-18.04 D:\wsl.tar
  • 然后卸载(注销)这个 wsl 子系统
# 在 Windows PowerShell(管理员)下运行
# wsl --unregister <系统版本>
wsl --unregister Ubuntu-18.04
  • 最后从 tar 文件重新导入子系统,此步骤根据 wsl 子系统大小,耗时可能超过半个小时,记得耐心等待。
# 在 Windows PowerShell(管理员)下运行
# wsl --import <系统版本> <安装路径> <文件名/文件路径>
wsl --import Ubuntu-18.04 C:\Ubuntu-18.04 D:\wsl.tar
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐