Как зарегистрировать тип файловой системы FUSE с помощью mount (8) и fstab?
Я написал небольшую файловую систему на базе FUSE, и теперь единственная пропавшая часть - это то, что я хочу зарегистрировать ее с помощью fstab (5), чтобы автоматически смонтировать ее при запуске системы и/или вручную установить ее только с помощью mount /srv/virtual-db
, Как я могу достичь этого?
Я знаю, я могу просто запустить /usr/bin/vdbfs.py /srv/virtual-db
из некоторого init script, но это не совсем красиво.
Извините, потому что это может быть не совсем вопрос программирования, но он очень близок, поскольку упаковка и развертывание по-прежнему являются заданием программиста.
Ответы
Ответ 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