WSL 无法访问安装在驱动器号*下方*的磁盘

WSL 无法访问安装在驱动器号*下方*的磁盘

一台运行 Ubuntu 18.04 的带有 WSL 2 的 Win10 主机(C:) \2在磁盘管理中将 SSD 安装为驱动器路径。(这是为了快速“扩大”我的 C:SSD,以便安装那些坚持安装在 C:而不是更宽敞但更慢的 D:HDD 上的软件。)

但在 Ubuntu shell 中,/mnt/c我无法cd 2ls 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必须重新安装。

相关内容