Как зарегистрировать тип файловой системы FUSE с помощью mount (8) и fstab?
-
20-09-2019 - |
Вопрос
Я написал небольшую файловую систему на основе 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#
.
Другие советы
Итак, чтобы прояснить ответ эфемера, есть два варианта:
Редактировать
/etc/fstab
вот так:# <file system> <mount point> <type> <options> <dump> <pass> # ... vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0
Или,
Создайте исполняемый файл с префиксом "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 пользователя.Вы можете ввести команду Linuxid
и ты сможешь получить 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