Come registrare FUSE tipo di filesystem con mount (8) e fstab?
-
20-09-2019 - |
Domanda
ho scritto un piccolo file system FUSE-based e oggi l'unica parte che manca è che voglio registrarlo con fstab (5) per l'auto-montarlo su avvio del sistema e / o manualmente montarlo con solo mount /srv/virtual-db
. Come posso raggiungere questo obiettivo?
Lo so, posso solo correre /usr/bin/vdbfs.py /srv/virtual-db
da qualche script di init, ma non è esattamente abbastanza.
Mi dispiace perché questo potrebbe non essere esattamente una questione di programmazione, ma è altamente correlato, come l'imballaggio e la distribuzione è ancora il lavoro del programmatore.
Soluzione
In generale, uno "registri" un nuovo tipo di montaggio file system creando un mount.fstype
eseguibile.
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
Se vdbfs.py
prende argomenti mount
-ish (cioè dev path [-o opts]
), quindi mount -t vdbfs
e utilizzando vdbfs
come il terzo campo in fstab
funzionerà. In caso contrario, è possibile creare un wrapper che fa scattare gli argomenti di quella forma e li mappa per qualunque sia il vostro vdbfs.py
prende.
FUSE dovrebbe anche installare un eseguibile mount.fuse
; mount.fuse 'vdbfs.py#dev' path -o opts
andrà avanti e chiamare vdbfs.py dev path -o opts
. In tal caso, è possibile utilizzare fuse
come tipo di filesystem e prefisso il dispositivo con vdbfs.py#
.
Altri suggerimenti
Quindi, per chiarire la risposta di ephemient, ci sono due opzioni:
-
Modifica
/etc/fstab
in questo modo:# <file system> <mount point> <type> <options> <dump> <pass> # ... vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0
In alternativa,
-
Crea un file eseguibile con il prefisso "monte". (Assicurandosi che può essere usato con opzioni
mount
-like):$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
e modificare
/etc/fstab
in questo modo:# <file system> <mount point> <type> <options> <dump> <pass> # ... <dev> /srv/virtual-db vdbfs.py user,<other-opts> 0 0
Per quanto riguarda il montaggio automatico all'avvio e il montaggio manuale con mount
, le opzioni user
e noauto
sono rilevanti e pienamente supportato da fusibile per sé in modo da non dover implementare da soli. L'opzione user
consente a un utente non privilegiato che è un membro del gruppo "fuse" montare il filesystem con il comando mount
e noauto
dirige il filesystem non montare automaticamente all'avvio. Se non si specifica noauto
, verrà automaticamente montare.
Si potrebbe utilizzare fusibili tipo di filesystem. I seguenti lavori sul mio sistema:
smbnetfs /media/netbios fuse defaults,allow_other 0 0
Un altro esempio:
sshfs#user@example.com:/ /mnt fuse user,noauto 0 0
Dopo la ricerca di un sacco trovato questa soluzione per montare fusibile filesystem citato in giudizio l'ingresso fstab
. Stavo usando fusibile per s3bucket da montare sulla macchina Linux locale.
-
.passwd-s3fs
: è contenente le credenziali per accedere ai AWS conto 1 chiave segreta] e 2] Accessibilità .
-
uid
: User Id. È possibile digitare il comando linuxid
e si può ottenere uid
La sintassi:
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
Esempio:
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
Per il montaggio è necessario eseguire il comando seguente.
mount -a
Per controllare il secchio è montato correttamente o meno utilizzare seguente comando per verificare che mostra tutti i punti montati.
df -h