在命令行中执行命令 wsl 报错 系统找不到指定的文件,尝试重新安装 WSL 功能无效。
wsl 命令默认的路径是 C:\Windows\system32\wsl.exe,还有另一个 wsl.exe 位于 C:\Program Files\WSL\wsl.exe,后者可正常运行。是否有办法替换 wsl 命令所执行的应用,或者删除掉 system32 下的 wsl.exe?
在命令行中执行命令 wsl 报错 系统找不到指定的文件,尝试重新安装 WSL 功能无效。
wsl 命令默认的路径是 C:\Windows\system32\wsl.exe,还有另一个 wsl.exe 位于 C:\Program Files\WSL\wsl.exe,后者可正常运行。是否有办法替换 wsl 命令所执行的应用,或者删除掉 system32 下的 wsl.exe?
翻了下笔记,正好有类似的问题,你可以参考下试试:
WSL 启动报错
wsl 系统无法访问此文件。 [process exited with code 1 (0x00000001)]
解决:使用管理员权限打开powershell,执行netsh winsock reset,然后重启,成功修复。
试了一下,没有效果。
在 powershell 中输入 gcm wsl 看看结果是什么?
另外看看 wsl /l 的默认值是否你所需要的发行版,如果不是可以用 wsl -s debian 或者 wsl -s ubuntu 设置为你想要的默认值
wsl 加上任何参数都有一样的报错,gcm wsl 结果如下
CommandType Name Version Source
----------- ---- ------- ------
Application wsl.exe 10.0.2262… C:\Windows\system32\wsl.exe
总之就是 system32 下面这个 wsl 一直报错,Program Files 下面的可以正常执行。
我怀疑你是既在 Windows 功能里启用了 适用于 Linux 的 Windows 子系统,同时又用过 wsl --install 的命令。。。
之前都正常用,今天开机突然不行了,两个不同的 WSL 不知道是怎么回事。
有两个 wsl.exe 是正常的,我的建议是先在控制面板的程序 Windows 功能里确认一下这里是否已经关闭了。
然后彻底卸载 WSL 组件,重启后,用管理员身份打开 powershell 重新输入 wsl --install 试试看
不过不确定你是否有重要的数据在 wsl,这样卸载会丢失数据的,最好先备份数据