WSL drvfs 挂载问题 — 用户映射无法识别?

Tor*_*arg 4 networking mount ubuntu windows-subsystem-for-linux

我在 WSL(Win10 Linux 子系统)中安装驱动器时遇到一些问题 - 请参阅有关不同驱动器上安装错误的单独问题。

我在本地驱动器 W: 上安装了网络共享 - 并且我在 Windows 中具有读/写访问权限。

使用 drvfs 安装此驱动器工作正常:

$ sudo mount -t drvfs W: /mnt/w

但是 - 当我想访问驱动器时:

( -/- ) e514678@K46290: ~ $ ls -l /mnt/w
ls:无法访问“/mnt/w/bar”:权限被拒绝
ls:无法访问“/mnt/w/baz”:权限被拒绝
ls: 无法访问 '/mnt/w/foo': 权限被拒绝
总计 0
d??????? ?????酒吧
d??????? ?????巴兹
d??????? ?????富
( -/- ) e514678@K46290: ~ $

再次 - 在 Windows 上我可以访问驱动器以及驱动器上的子目录。使用 drvfs 安装,我可以看到驱动器上的顶级条目,但它们似乎缺少用户和权限信息;所以我也无法从linux访问任何文件。

访问其他几个网络共享上的文件工作正常 - 但我对这个有什么不同感到困惑。

对于这个网络卷可能有什么不同,您有什么想法吗?(尝试使用特定的 uid/gid 挂载它并没有帮助: 'sudo mount -t drvfs -ouid=1000,gid=1000 W: /mnt/w' linux 仍然无法访问驱动器——有同样的问题)。

小智 5

我遇到过同样的问题。

我发现/etc/wsl.conf自 Windows Build 17093 以来引入了 WSL。请阅读此处的详细信息:https ://docs.microsoft.com/en-us/windows/wsl/wsl-config#configure-per-distro-launch-settings-with- wslconf

这是一个可能解决您的问题的简单示例:

$ cat /etc/wsl.conf
[automount]
enabled=true
options=metadata,uid=1000,gid=1000,umask=022
Run Code Online (Sandbox Code Playgroud)

我从这里找到了上面的示例:WSL 挂载文件权限

创建或修改文件后,需要重新启动 WSL。