使用 drvfs 将我的 PC Box 网络驱动器手动安装到 wsl2 上,但在 /etc/fstab 中却不行

使用 drvfs 将我的 PC Box 网络驱动器手动安装到 wsl2 上,但在 /etc/fstab 中却不行

我想将 Box 驱动器安装到 wsl2 上,以便我可以在两个不同的系统(Windows 和 Linux)上访问相同的本地/云同步文件。Box 是一个 FAT32 文件系统,我相信 drvfs mount 支持它。

如果我使用以下 mount 命令从 .bashrc 文件挂载它,就可以正常挂载它:

sudo mount -t drvfs 'C:\Users\Jakda\Box' /mnt/box

然后我可以通过主目录中的符号链接访问 /mnt/box。

问题在于,每次打开 WSL 终端时,我都必须输入 sudo 密码,而我并不总是能做到这一点。

我把这句话放进去了/etc/fstab

'C:\Users\Jakda\Box'    /mnt/box        drvfs     defaults     0       0

当我跑步时mount -a我得到:

<4>WARNING: mount: waiting for virtio device...
<3>init: (110) ERROR: MountPlan9WithRetry:285: mount drvfsa on /mnt/box (cache=mmap,rw,msize=262144,trans=virtio,aname=drvfs;path='C:\Users\Jakda\Box';symlinkroot=/mnt/) failed: 2
mount: No such file or directory

我已经尝试了一段时间了,但我不知道该怎么做。

答案1

Linux 中文件的处理/etc/fstab由函数完成getmntent。根据其手册页:

GETMNTENT(3)               Linux Programmer's Manual              GETMNTENT(3)

.
.
.

DESCRIPTION
       These routines are used  to  access  the  filesystem  description  file
       /etc/fstab and the mounted filesystem description file /etc/mtab.

.
.
.

       Since fields in the mtab and fstab files are separated  by  whitespace,
       octal  escapes  are  used to represent the characters space (\040), tab
       (\011), newline (\012), and backslash (\\) in those files when they oc‐
       cur in one of the four strings in a mntent structure.  The routines ad‐
       dmntent() and getmntent() will convert from  string  representation  to
       escaped  representation  and back.  When converting from escaped repre‐
       sentation, the sequence \134 is also converted to a backslash.

(迄今为止最常用的是\040空格字符 - 制表符和换行符,虽然在 Linux 路径名中是合法的,但在实践中很少使用)。

因此删除引号并用八进制转义符替换反斜杠\134

C:\134Users\134Jakda\134Box    /mnt/box        drvfs     defaults     0       0

相关内容