Im Allgemeinen "registriert" man einen neuen Mount-Dateisystemtyp, indem man eine ausführbare Datei mount.fstype
erstellt .
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
Wenn vdbfs.py
dauert mount
-ish Argumente (d.h. dev path [-o opts]
), dann mount -t vdbfs
und mit vdbfs
als 3. Feld in fstab
wird funktionieren. Wenn dies nicht der Fall ist, können Sie einen Wrapper erstellen, der Argumente dieser Form akzeptiert und sie Ihrem vdbfs.py
zuordnet dauert.
FUSE sollte auch einen mount.fuse
installieren ausführbar; mount.fuse 'vdbfs.py#dev' path -o opts
wird weitergehen und vdbfs.py dev path -o opts
anrufen . In diesem Fall können Sie fuse
verwenden als Dateisystemtyp und stellen Sie Ihrem Gerät vdbfs.py#
voran .
Um die Antwort von ephemient zu verdeutlichen, gibt es zwei Möglichkeiten:
-
Bearbeiten Sie
/etc/fstab
so:# <file system> <mount point> <type> <options> <dump> <pass> # ... vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0
Oder,
-
Erstellen Sie eine ausführbare Datei mit dem Präfix „mount“. (Stellen Sie sicher, dass es mit
mount
verwendet werden kann -ähnliche Optionen):$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
Und bearbeiten Sie
/etc/fstab
so:# <file system> <mount point> <type> <options> <dump> <pass> # ... <dev> /srv/virtual-db vdbfs.py user,<other-opts> 0 0
In Bezug auf das automatische Mounten beim Start und das manuelle Mounten mit mount
, die user
und noauto
Optionen sind relevant und werden vollständig von der Sicherung selbst unterstützt, sodass Sie sie nicht selbst implementieren müssen. Die user
Option lässt einen nicht privilegierten Benutzer, der Mitglied der "fuse"-Gruppe ist, Ihr Dateisystem mit dem mount
mounten Befehl und noauto
weist Ihr Dateisystem an, beim Start nicht automatisch zu mounten. Wenn Sie noauto
nicht angeben , wird es automatisch gemountet.
Zur Klärung kommentiert @patryk.beza die akzeptierte Antwort auf den richtigen Weg Um ein FUSE-Dateisystem zu mounten, setzen Sie den Dateisystemtyp auf fuse.<subtype>
.
Zum Beispiel, um eine s3fs-fuse-Implementierung zu mounten, die keinen bestimmten /sbin/mount.*
bereitstellt Wrapper und verwendet normalerweise den s3fs
Benutzerbefehl zum Mounten von S3-Buckets, kann man diesen Befehl als root verwenden:
mount -t fuse.s3fs bucket-name /path/to/dir -o <some,options>
oder diese Zeile in /etc/fstab
:
bucket-name /path/to/dir fuse.s3fs <some,options> 0 0
oder diese SystemD-Einhängeeinheit (zum Beispiel /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
Wie das funktioniert:mount
erkennt das Konzept von "Dateisystem-Untertypen", wenn der Typ mit einem Punkt formatiert ist (z. B. <type>.<subtype>
), sodass ein Typ mit dem Format fuse.someimpl
ist anerkanntermaßen in der Verantwortung des FUSE Mount Helpers /sbin/mount.fuse
. Der FUSE Mount Helper löst dann den someimpl
auf Teil der FUSE-Implementierung, genauso wie #
format wird in der ursprünglichen Antwort verwendet (ich denke, dies ist nur eine Pfadsuche nach einem Programm namens <subtype>
, bin mir da aber nicht 100% sicher).