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.

È stato utile?

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:

  1. 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,

  2. 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 linux id 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top