Wie FUSE-Dateisystem-Typen mit mount (8) und fstab registrieren?
-
20-09-2019 - |
Frage
ich ein kleines FUSE-basiertes Dateisystem geschrieben habe und nun der einzigen Teil fehlt, ist, dass ich es mit fstab (5) registrieren möge Auto-Mount es beim Systemstart und / oder manuell montiert mit nur mount /srv/virtual-db
. Wie kann ich das erreichen?
ich weiß, ich kann nur /usr/bin/vdbfs.py /srv/virtual-db
von einem Init-Skript laufen, aber das ist nicht gerade hübsch.
Es tut mir leid, weil dies eine Programmierung Frage nicht genau sein kann, aber es ist sehr verwandt, da die Verpackung und Bereitstellung ist nach wie vor die Aufgabe des Programmierers.
Lösung
In der Regel ein „Register“, ein neues Dateisystem-Typ bereitstellen, indem ein ausführbares mount.fstype
zu schaffen.
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
Wenn vdbfs.py
mount
-ish Argumente annimmt (das heißt dev path [-o opts]
), dann mount -t vdbfs
und mit vdbfs
als das dritte Feld in fstab
arbeiten. Wenn dies nicht der Fall, können Sie einen Wrapper erstellen, die lassen die Argumente dieser Form und ordnet sie, was auch immer Ihre vdbfs.py
nimmt.
FUSE sollte auch eine mount.fuse
ausführbare Datei installieren; mount.fuse 'vdbfs.py#dev' path -o opts
wird weitergehen und Call vdbfs.py dev path -o opts
. In diesem Fall können Sie fuse
als Dateisystem-Typ verwenden und Ihr Gerät mit vdbfs.py#
Präfix.
Andere Tipps
So ephemient Antwort zu klären, gibt es zwei Möglichkeiten:
-
Bearbeiten
/etc/fstab
wie folgt aus:# <file system> <mount point> <type> <options> <dump> <pass> # ... vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0
Oder
-
eine ausführbare Datei erstellen mit dem Präfix "mount". (Um sicherzustellen, kann es verwendet werden mit
mount
ähnlichen Optionen):$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
Und bearbeiten
/etc/fstab
wie folgt aus:# <file system> <mount point> <type> <options> <dump> <pass> # ... <dev> /srv/virtual-db vdbfs.py user,<other-opts> 0 0
Im Hinblick auf die Auto-Montage beim Start und manuell mit mount
Montage, die user
und noauto
Optionen sind relevant und vollständig durch Sicherung selbst unterstützt, so dass Sie müssen sie nicht selbst implementieren. Die user
Option läßt einen nicht-privilegierten Benutzer, der ein Mitglied der Gruppe „fuse“ mit dem mount
Befehl mount Ihr Dateisystem ist, und noauto
leitet das Dateisystem nicht automatisch beim Start zu montieren. Wenn Sie nicht noauto
angeben, wird es automatisch montieren.
Sie könnten nur Sicherung Dateisystem-Typen verwenden. Folgende Arbeiten auf meinem System:
smbnetfs /media/netbios fuse defaults,allow_other 0 0
Ein weiteres Beispiel:
sshfs#user@example.com:/ /mnt fuse user,noauto 0 0
Nach vieler Erforschung fand diese Lösung Sicherung Dateisystem verklagt fstab
Eintrag zu montieren. Ich war mit Sicherung für s3Bucket auf lokaler Linux-Maschine zu montieren.
-
.passwd-s3fs
: Ist enthält Anmeldeinformationen Ihre aws-Konto zugreifen 1] geheime Schlüssel und 2] Access Key .
-
uid
: Benutzer-ID. Sie können Linux-Befehlid
eingeben und Sie können uid erhalten
Syntax:
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
Beispiel:
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
Zur Montage Sie müssen folgenden Befehl ausführen.
mount -a
Ihr Eimer Um zu überprüfen ist richtig montiert oder nicht folgenden Befehl verwenden, um zu überprüfen, welche zeigt alle Punkte montiert ist.
df -h