2009-10-12 8 views
25

He escrito un pequeño sistema de archivos basado en FUSE y ahora la única parte que falta es que quiero registrarlo con fstab (5) para montarlo automáticamente al arrancar el sistema y/o montarlo manualmente con solo mount /srv/virtual-db. ¿Cómo puedo conseguir esto?Cómo registrar el tipo de sistema de archivos FUSE con mount (8) y fstab?

Lo sé, solo puedo ejecutar /usr/bin/vdbfs.py /srv/virtual-db desde algún script de inicio, pero eso no es exactamente bonito.

Lo siento porque esta puede no ser exactamente una pregunta de programación, pero está muy relacionada, ya que el empaquetado y la implementación siguen siendo el trabajo del programador.

+0

buena pregunta, pero no la programación relacionada y hay serverfault.com ahora. – ypnos

+3

Si eso es solo un problema administrativo (como agregar una entrada a algún archivo), entonces, sí, probablemente. Pero registrar sistemas de archivos en el kernel es ciertamente un problema de programación (la única parte del administrador es agregar módulo a modprobe.conf), y no sé sobre FUSE ... Por lo tanto, no sé a dónde realmente pertenece. – drdaeman

+4

¡Oh, esto pertenece a SO, definitivamente! –

Respuesta

27

En general, uno "registra" un nuevo tipo de sistema de archivos de montaje creando un ejecutable mount.fstype.

 
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs 

Si vdbfs.py toma mount argumentos -ish (es decir dev path [-o opts]), entonces mount -t vdbfs y utilizando vdbfs como la tercera campo en fstab funcionará. Si no lo hace, puede crear un contenedor que tome argumentos de ese formulario y los asigne a lo que tome su vdbfs.py.

FUSE también debería instalar un ejecutable mount.fuse; mount.fuse 'vdbfs.py#dev' path -o opts continuará y llame al vdbfs.py dev path -o opts. En ese caso, puede usar fuse como su tipo de sistema de archivos y prefijar su dispositivo con vdbfs.py#.

16

Así que para aclarar la respuesta de ephemient, hay dos opciones:

  1. Editar /etc/fstab así:

    # <file system> <mount point>  <type> <options>   <dump> <pass> 
    # ... 
    vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0 
    

    O

  2. Crear un archivo ejecutable con el prefijo "monte". (Asegurándose de que puede ser utilizado con mount -como opciones):

    $ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs 
    

    y editar /etc/fstab así:

    # <file system> <mount point> <type> <options>   <dump> <pass> 
    # ... 
    <dev> /srv/virtual-db vdbfs.py user,<other-opts> 0 0 
    

En cuanto a montaje automático en el arranque y manual de montaje con mount, las opciones user y noauto son relevantes y totalmente compatibles con el fusible, por lo que no tiene que implementarlas usted mismo. La opción user permite que un usuario no privilegiado que sea miembro del grupo "fusible" monte su sistema de archivos con el comando mount, y noauto le indica a su sistema de archivos que no se monte automáticamente al inicio. Si no especifica noauto, se montará automáticamente.

1

Puede usar el tipo de sistema de archivos fusibles. Los siguientes trabajos en mi sistema:

smbnetfs /media/netbios fuse defaults,allow_other 0 0 

Otro ejemplo:

sshfs#[email protected]:/ /mnt fuse user,noauto 0 0 
+0

Esto plantea otra pregunta: ¿Cómo registro una aplicación personalizada con FUSE como proveedor del sistema de archivos? – jpaugh

+0

En realidad, [esto todavía requiere] (https://github.com/libfuse/libfuse/wiki/FAQ#is-it-possible-to-mount-a-fuse-filesystem-from-fstab) agregando el 'mount. type' solution [mencionado por ephemient] (https://stackoverflow.com/a/1555146/712526). – jpaugh

Cuestiones relacionadas