我的文件系统上有一个特定的目录(关键是目录名,见下文),启动 wsl shell 时总是会从主目录开始。像这样:
PS C:\Source\Code\contentmatch.stream> wsl
jjk@pc-name:~$
尝试通过文件资源管理器对话框选项(在此处打开 Linux shell)执行相同操作会得到相同的效果。
在幕后,实际执行此操作的命令也具有相同的效果
PS C:\Source\Code\contentmatch.stream> wsl --cd "C:\Source\Code\contentmatch.stream"
jjk@pc-name:~$
在任何其他目录中都不会发生这种情况。将此目录重命名为其他名称可以缓解此问题。创建另一个同名目录将再次触发相同的行为。我可以从 WSL 级别访问该目录,没有任何问题。我在注册表中搜索了对所述字符串的任何引用,但一无所获。
读完本文后: WSL在此处打开Linux Shell不会在当前目录中打开 也尝试过这个命令,但结果是一样的:
PS C:\Source\Code\contentmatch.stream> wsl --cd "C:\Source\Code\contentmatch.stream" -e bash --noprofile --norc
bash-5.0$ ls
LICENSE datadump.jsons efs-utils error out output packages-microsoft-prod.deb
bash-5.0$ exit
exit
PS C:\Source\Code\contentmatch.stream>
在我看来,好像有一些映射文件可以重定向或以其他方式禁用此特定路径来启动 wsl,但在网上搜索了很久之后,我无法确定那是什么。
我应该在哪里寻找这种行为的原因?
答案1
在这种情况下,我发现禁用docker可以使其正常工作。但重新启动后问题又出现了。
进一步搜索可能的引用后,清除此目录后问题就消失了:mnt/wsl/docker-desktop-bind-mounts/
始终找不到该目录中的引用导致此问题的根本原因。