En général, on "enregistre" un nouveau type de système de fichiers de montage en créant un exécutable mount.fstype
.
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
Si vdbfs.py
prend mount
-ish arguments (c'est-à-dire dev path [-o opts]
), puis mount -t vdbfs
et en utilisant vdbfs
comme 3ème champ dans fstab
marchera. Si ce n'est pas le cas, vous pouvez créer un wrapper qui prend des arguments de cette forme et les mappe à votre vdbfs.py
prend.
FUSE devrait également installer un mount.fuse
exécutable ; mount.fuse 'vdbfs.py#dev' path -o opts
va continuer et appeler le vdbfs.py dev path -o opts
. Dans ce cas, vous pouvez utiliser fuse
comme type de système de fichiers et préfixez votre appareil avec vdbfs.py#
.
Donc, pour clarifier la réponse d'ephemient, il y a deux options :
-
Modifier
/etc/fstab
comme ceci :# <file system> <mount point> <type> <options> <dump> <pass> # ... vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0
Ou,
-
Créez un exécutable préfixé par "mount". (en s'assurant qu'il peut être utilisé avec
mount
-options similaires) :$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
Et modifiez
/etc/fstab
comme ceci :# <file system> <mount point> <type> <options> <dump> <pass> # ... <dev> /srv/virtual-db vdbfs.py user,<other-opts> 0 0
En ce qui concerne le montage automatique au démarrage et le montage manuel avec mount
, le user
et noauto
les options sont pertinentes et entièrement prises en charge par fuse lui-même, vous n'avez donc pas à les implémenter vous-même. Le user
permet à un utilisateur non privilégié membre du groupe "fuse" de monter votre système de fichiers avec le mount
commande, et noauto
ordonne à votre système de fichiers de ne pas se monter automatiquement au démarrage. Si vous ne spécifiez pas noauto
, il montera automatiquement.
Pour clarifier le commentaire de @patryk.beza sur la réponse acceptée, la bonne manière monter un système de fichiers FUSE consiste à définir le type de système de fichiers sur fuse.<subtype>
.
Par exemple, pour monter une implémentation s3fs-fuse, qui ne fournit pas de /sbin/mount.*
spécifique wrapper et utilise normalement le s3fs
commande utilisateur pour monter des buckets S3, on peut utiliser cette commande en tant que root :
mount -t fuse.s3fs bucket-name /path/to/dir -o <some,options>
ou cette ligne en /etc/fstab
:
bucket-name /path/to/dir fuse.s3fs <some,options> 0 0
ou cette unité de montage SystemD (par exemple, /etc/systemd/system/path-to-dir.mount
):
[Unit]
Description=S3 Storage
After=network.target
[Mount]
What=bucket-name
Where=/path/to/dir
Type=fuse.s3fs
Options=<some,options>
[Install]
WantedBy=multi-user.target
Comment cela fonctionne :mount
reconnaît le concept de "sous-types de système de fichiers" lorsque le type est formaté avec un point (c'est-à-dire <type>.<subtype>
), de sorte qu'un type au format fuse.someimpl
est reconnu comme étant sous la responsabilité de l'assistant de montage FUSE /sbin/mount.fuse
. L'assistant de montage FUSE résout ensuite le problème someimpl
partie à l'implémentation de FUSE, de la même manière que le #
le format est utilisé dans la réponse d'origine (je pense qu'il s'agit simplement d'une recherche de chemin pour un programme nommé <subtype>
, mais je n'en suis pas sûr à 100 %).