WSL运行时遇到未知异常错误无法使用

现经常会使用WSL服务在Windows系统上搭环境进行新技术的探索,只是间隔了约2周时间没有用,结果今天临时想要验证某个服务时,发现WSL服务无法正常使用,尝试强制停止WSL进程,最后都把电脑重启好几次,但依旧很失望还是无法正常。着实也是把自己给惊到了,里面搭建的环境是否就全都作废丢失呢。最后在微软官方的帮助站点找到了解决办法,抱着活马当死马的心态尝试一把,庆幸是最终成功了。

此次WSL服务报出的异常问题也是非常诡异,在进程管理中显示服务是正常在运行的,但当在Windows终端中输入wsl命令时,却提示正在完成升级,然后就直接报错退出,大致输出的错误信息如下:

1
2
3
4
5
6
wsl --list
WSL 正在完成升级...
Could not write value  to key \SOFTWARE\Classes\Directory\shell\WSL.   
Verify that you have sufficient access to that key, or contact your support personnel.
更新失败(退出代码: 1603)错误代码: Wsl/CallMsi/Install/ERROR_INSTALL_FAILURE

然后在微软官方帮助站点上找到一篇类似问题: wsl –install 报错:灾难性故障 ,里面提供相关的解决办法,大致的思路就是说注册表名称出错,只需要删除以下的WSL服务相关的注册表项,然后再重启下WSL服务重新查看列表,便可以看到之前搭建的环境依旧还在的。

1
2
3
计算机\HKEY\_LOCAL\_MACHINE\SOFTWARE\Classes\Drive\shell\WSL
计算机\HKEY\_LOCAL\_MACHINE\SOFTWARE\Classes\Directory\background\shell\WSL
计算机\HKEY\_LOCAL\_MACHINE\SOFTWARE\Classes\Directory\shell\WSL
注:如果你不确定删除是否有其它未知影响,可以将上述的注册表项直接重命名,等WSL服务恢复后再删除。

问题是解决好了,但回过头来想了许久,也不明白为何会遇到这样的情况,过去2周的时间里并没有安装或卸载过软件,或是对注册表进行操作,莫非这只是偶然的概率事件,只是自己运气非常不好,正好给碰上呢,真是丈二和尚摸不着头脑喽😅