一台运行 Ubuntu 18.04 的带有 WSL 2 的 Win10 主机(C:) \2
在磁盘管理中将 SSD 安装为驱动器路径。(这是为了快速“扩大”我的 C:SSD,以便安装那些坚持安装在 C:而不是更宽敞但更慢的 D:HDD 上的软件。)
但在 Ubuntu shell 中,/mnt/c
我无法cd 2
、ls 2
等等。大多数命令都会失败
cannot read symbolic link '2': Input/output error
。
WSL 命令可以访问 /mnt/c 和 /mnt/d 的其余部分。
当然,Windows 可以访问 C:、C:\2 和 D:。
我如何让 WSL 访问/mnt/c/2
?
(在 powershell 中与 cmd.exe 略有subst f: c:\2
不同f:
,但在任何一种情况下 WSL 都不会显示相应的 /mnt/f。)
答案1
它是WSL 中的错误。
您可以将有问题的挂载点重新挂载为 WSL 中的其他目录,范围之外/mnt/c
:
sudo mkdir /mnt/2
sudo mount -t drvfs C:\\2 /mnt/2
(请注意转义的反斜杠)
这可能会很不方便,因为相对路径会失效。但至少你可以访问文件。
答案2
基于@basil-peace的回答:
SUBSTed 驱动器仍然会让 WSL 感到困惑,尽管我可以在会话期间强制安装该驱动器并绕过它,但不需要新的安装点:
在CMD中:
D:\>wsl
<3>WSL (318) ERROR: CreateProcessParseCommon:711: Failed to translate D:\
brbill@brbox:~$ ls /mnt/d
brbill@brbox:/mnt$ sudo mount -t drvfs D:\\ /mnt/d
[sudo] password for brbill:
brbill@brbox:/mnt$ ls /mnt/d
folder1 license.txt readme.txt
如果我离开会话并返回,则不再报告错误。如果我删除已替换的 D: 驱动器,然后重新启动 WSL,/mnt/d
则显示为空。如果我再次重新替换 D: 驱动器,则错误再次出现,/mnt/d
必须重新安装。