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

StackOverflow https://stackoverflow.com/questions/1554178

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Если vdbfs.py берет mount-иш аргументы (т.е. 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#.

Другие советы

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

  1. Редактировать /etc/fstab вот так:

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

    Или,

  2. Создайте исполняемый файл с префиксом "mount". (убедитесь, что он может быть использован с mount-понравившиеся варианты):

    $ 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 опции актуальны и полностью поддерживаются самим fuse, поэтому вам не нужно внедрять их самостоятельно.Тот Самый user опция позволяет пользователю, не имеющему привилегий, который является членом группы "fuse", смонтировать вашу файловую систему с помощью mount команда, и noauto указывает вашей файловой системе не монтировать автоматически при запуске.Если вы не укажете noauto, он будет автоматически смонтирован.

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

smbnetfs    /media/netbios    fuse    defaults,allow_other    0    0

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

sshfs#user@example.com:/    /mnt    fuse    user,noauto    0    0

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

  • .passwd-s3fs :Содержит учетные данные для доступа к вашей учетной записи aws 1] Секретный ключ и 2] Ключ доступа.
  • uid :ID пользователя.Вы можете ввести команду Linux id и ты сможешь получить 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top