Установка моего сетевого диска PC Box на wsl2 с помощью drvfs работает вручную, но не в /etc/fstab

Я хочу подключить диск Box к wsl2, чтобы иметь доступ к одним и тем же файлам, синхронизированным локально/в облаке, в двух разных системах (Windows и Linux). Box — это файловая система FAT32, которая, как мне кажется, поддерживается монтированием drvfs.

Я могу смонтировать его просто отлично, если я смонтирую его из файла .bashrc, используя следующую команду монтирования:

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

Затем я могу получить доступ к /mnt/box через символическую ссылку в моем домашнем каталоге.

Проблема в том, что мне приходится вводить пароль sudo каждый раз, когда я открываю терминал WSL, что я не всегда могу сделать.

Я вставил эту строку /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 ответ

Обработка /etc/fstabфайл в Linux выполняется функцией 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
Другие вопросы по тегам