Подтвердить что ты не робот

Как зарегистрировать тип файловой системы FUSE с помощью mount (8) и fstab?

Я написал небольшую файловую систему на базе FUSE, и теперь единственная пропавшая часть - это то, что я хочу зарегистрировать ее с помощью fstab (5), чтобы автоматически смонтировать ее при запуске системы и/или вручную установить ее только с помощью mount /srv/virtual-db, Как я могу достичь этого?

Я знаю, я могу просто запустить /usr/bin/vdbfs.py /srv/virtual-db из некоторого init script, но это не совсем красиво.

Извините, потому что это может быть не совсем вопрос программирования, но он очень близок, поскольку упаковка и развертывание по-прежнему являются заданием программиста.

4b9b3361

Ответ 1

В общем, один "регистрирует" новый тип файловой системы монтирования, создавая исполняемый файл mount.fstype.

$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs

Если vdbfs.py принимает аргументы mount -ish (т.е. dev path [-o opts]), то mount -t vdbfs и использование vdbfs, поскольку 3-е поле в fstab будет работать. Если это не так, вы можете создать оболочку, которая принимает аргументы этой формы и сопоставляет их с тем, что принимает ваш vdbfs.py.

FUSE также должен установить исполняемый файл mount.fuse; mount.fuse 'vdbfs.py#dev' path -o opts продолжится и вызовет vdbfs.py dev path -o opts. В этом случае вы можете использовать fuse в качестве типа вашей файловой системы и префикс своего устройства с помощью vdbfs.py#.

Ответ 2

Итак, чтобы уточнить эфемерный ответ, есть два варианта:

  • Измените /etc/fstab следующим образом:

    # <file system>   <mount point>      <type>  <options>         <dump>  <pass>
    # ...
    vdbfs.py#<dev>    /srv/virtual-db    fuse    user,<other-opts>    0    0
    

    Или

  • Создайте исполняемый файл с префиксом "mount." (обеспечение его использования с опциями mount -like):

    $ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
    

    И отредактируйте /etc/fstab следующим образом:

    # <file system> <mount point> <type>    <options>         <dump>  <pass>
    # ...
    <dev>    /srv/virtual-db    vdbfs.py    user,<other-opts>    0    0
    

Что касается автоматической установки при запуске и ручного монтажа с помощью mount, опции user и noauto актуальны и полностью поддерживаются самим предохранителем, поэтому вам не нужно их самостоятельно реализовывать. Опция user позволяет непривилегированному пользователю, который является членом группы "плавкий предохранитель", монтировать вашу файловую систему с помощью команды mount, а noauto направляет вашу файловую систему автоматически не монтируется при запуске. Если вы не укажете noauto, он будет автоматически монтироваться.

Ответ 3

Вы можете использовать только тип файловой системы. В моей системе работает следующее:

smbnetfs    /media/netbios    fuse    defaults,allow_other    0    0

Другой пример:

sshfs#[email protected]:/    /mnt    fuse    user,noauto    0    0

Ответ 4

После долгих исследований нашел это решение для монтирования файловой системы fuse с помощью команды fstab. Я использовал fuse для s3bucket для установки на локальную Linux-машину.

  • .passwd-s3fs: содержит учетные данные для доступа к вашей учетной записи aws 1] Секретный ключ и 2] Ключ доступа.
  • uid: идентификатор пользователя Вы можете набрать id команды linux и получить uid

Синтаксис:

s3fs#<Bucket_Name> <Mounted_Direcotry_Path> fuse _netdev,allow_other,passwd_file=/home/ubuntu/.passwd-s3fs,use_cache=/tmp,umask=002,uid=<User_Id> 0 0

Пример:

s3fs#myawsbucket /home/ubuntu/s3bucket/mys3bucket fuse _netdev,allow_other,passwd_file=/home/ubuntu/.passwd-s3fs,use_cache=/tmp,umask=002,uid=1000 0 0

Для монтирования вам нужно выполнить следующую команду.

mount -a

Чтобы проверить, правильно ли смонтирован ковш, или не используйте следующую команду, чтобы проверить, какие точки смонтированы.

df -h