WSL命令行偶尔调用错误发行版的问题求助
WSL命令行偶尔调用错误发行版的问题求助
各位大佬好,我最近在频繁启动、停止WSL发行版做开发测试的时候,遇到了一个很头疼的问题——有时候用wsl.exe -d <发行版名称>指定调用某个发行版执行命令,结果却跑到了别的发行版里,必须执行wsl --shutdown重启WSL之后才能恢复正常。下面是我遇到的几个具体场景:
场景1:指定调用pedro3却报错,重启后正常
一开始pedro3显示为运行状态,但执行命令提示文件不存在,重启WSL后再执行就正常返回了pedro3的系统版本信息:
PS D:\wslsandbox> wsl -l -v NAME STATE VERSION * Ubuntu Running 2 mikeenv Stopped 2 tam Stopped 2 docker Stopped 2 java17 Stopped 2 pedro Stopped 2 docker-desktop Stopped 2 docker-desktop-data Stopped 2 pedro3 Running 2 docker2 Stopped 2 PS D:\wslsandbox> wsl.exe -d pedro3 cat /etc/system-release /bin/bash: /etc/system-release: No such file or directory PS D:\wslsandbox> wsl.exe --shutdown PS D:\wslsandbox> wsl.exe -d pedro3 cat /etc/system-release Amazon Linux release 2 (Karoo) PS D:\wslsandbox>
场景2:第一个启动的发行版变成“唯一可用”的,其他发行版都指向它
所有发行版都处于停止状态时,先尝试调用Ubuntu和pedro3都报错,之后pedro3能正常调用了,但再调用Ubuntu却返回了pedro3的系统版本:
PS D:\wslsandbox> wsl.exe -l -v NAME STATE VERSION * Ubuntu Stopped 2 mikeenv Stopped 2 tam Stopped 2 docker Stopped 2 java17 Stopped 2 pedro Stopped 2 pedro3 Stopped 2 docker-desktop Stopped 2 docker-desktop-data Stopped 2 docker2 Stopped 2 PS D:\wslsandbox> wsl.exe -d Ubuntu cat /etc/system-release cat: /etc/system-release: No such file or directory PS D:\wslsandbox> wsl.exe -d pedro3 cat /etc/system-release cat: /etc/system-release: No such file or directory PS D:\wslsandbox> wsl.exe -l -v NAME STATE VERSION * Ubuntu Stopped 2 mikeenv Stopped 2 tam Stopped 2 docker Stopped 2 java17 Stopped 2 pedro Stopped 2 pedro3 Stopped 2 docker-desktop Stopped 2 docker-desktop-data Stopped 2 docker2 Stopped 2 PS D:\wslsandbox> wsl.exe -d pedro3 cat /etc/system-release Amazon Linux release 2 (Karoo) PS D:\wslsandbox> wsl.exe -d Ubuntu cat /etc/system-release Amazon Linux release 2 (Karoo)
场景3:未在列表中显示的wslg发行版“霸占”所有调用
不管指定哪个发行版,进入的都是wslg环境,用户ID都是wslg,重启WSL后才恢复各发行版的正常用户身份:
C:\>wsl -d Ubuntu wslg [ /mnt/c ]$ exit logout C:\>wsl -d pedro wslg [ /mnt/c ]$ exit logout C:\>wsl -d pedro2 wslg [ /mnt/c ]$ exit logout C:\>wsl -d pedro2 id uid=1000(wslg) gid=1000(wslg) groups=1000(wslg) C:\>wsl -d pedro id uid=1000(wslg) gid=1000(wslg) groups=1000(wslg) C:\>wsl -d Ubuntu id uid=1000(wslg) gid=1000(wslg) groups=1000(wslg) C:\>wsl -l -v NAME STATE VERSION * Ubuntu Running 2 mikeenv Stopped 2 java17_2 Stopped 2 tam Stopped 2 pedro3 Stopped 2 docker Stopped 2 pedro2 Stopped 2 pedro4 Running 2 pedro Stopped 2 docker2 Stopped 2 C:\>wsl -d mikeenv id uid=1000(wslg) gid=1000(wslg) groups=1000(wslg) C:\>wsl --shutdown C:\>wsl -d mikeenv id uid=1000(mdoyle) gid=1000(mdoyle) groups=1000(mdoyle) C:\>wsl -d pedro id uid=1620(lawson) gid=1620(lawson) groups=1620(lawson) C:\>wsl -d pedro2 id uid=1620(lawson) gid=1620(lawson) groups=1620(lawson) C:\>wsl -d Ubuntu id uid=1000(mdoyle) gid=1000(mdoyle) groups=1000(mdoyle),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev),36257(docker)
这种情况出现得挺频繁的,因为我需要频繁启停不同的WSL发行版来做开发测试。有没有大佬遇到过类似的问题?或者知道这是什么原因导致的,有没有什么解决办法?谢谢大家!
备注:内容来源于stack exchange,提问作者mikedoy
相关产品推荐
相关产品推荐

