Antecedentes: estoy tratando de montar un disco usb como de solo lectura, pero mi instalación de ubuntu lo está montando rw cuando conecto el disco.
Puedo desmontar el disco manualmente y volver a montarlo manualmente como solo lectura con los comandos umount y mount, pero eso no es divertido. ¿Podría alguien darme una explicación rápida sobre cómo se realizan automáticamente los montajes usb en un sistema Linux típico (udev? Los antecedentes históricos también son buenos) y tal vez cómo puedo ajustar este proceso para que me permita leer el disco ro?
Gracias.
Editar: estoy usando gnome si eso ayuda en absoluto.
Edit2: en mi apuro olvidé proporcionar un poco más de información. Así es como se ve el disco desde la salida de 'mount'.
/dev/sdb1 on /media/LaCie type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
Edit3: Esto también puede ser relevante a su manera. En la salida de montaje también tengo lo siguiente:
gvfs-fuse-daemon on /home/fletcher/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=fletcher)
Pensé que esto podría haber estado relacionado con el montaje fuseblk anterior, pero lo que descubrí fue esto.
Gvfs es el sistema de archivos virtual de Gnome. Es un sistema de archivos virtual construido sobre el kernel vfs ya existente. gvfs usa la biblioteca GIO (que es una API VFS) para acceder a archivos, dispositivos, ubicaciones de red remotas, etc. En este caso anterior ('gvfs-fuse-daemon') gvfs está usando FUSE para montar archivos / ubicaciones / dispositivos. Esto es esencialmente lo que sucede cuando monta una conexión de red remota en Nautilus. Utilizará FUSE para montar la ubicación (¿dentro?) Del directorio .gvfs, y luego se comunicará con la capa del sistema de archivos virtual gnome para comunicarse con el nuevo montaje.
Básicamente, esta estructura permite al usuario montar dinámicamente nuevas ubicaciones e interactuar con ellas a través de nautilus.
Solo como referencia: FUSE es un sistema de archivos de espacio de usuario, también conocido como permite al usuario ejecutar mount incluso cuando ese usuario no es root)
Entonces, ¿dónde me deja eso? Bueno, el disco LaCie se está montando con el tipo fuseblk. Esto es solo un dispositivo de bloque montado con fusible. Entonces, algún demonio detectó automáticamente la unidad cuando se enchufó y luego siguió adelante y ejecutó el fusible para montar mi dispositivo de bloqueo. Entonces, ¿qué demonio es esto y cómo está configurado (supongo que es algo de gnomo interno) es la pregunta más importante. Una pregunta secundaria es cómo el sistema detectó automáticamente un disco usb recientemente insertado, pero creo que eso es un poco aparte y un nivel mucho más bajo aquí (léase: udev?).
Enlaces:
fuente
Respuestas:
Traté de hacer esto en mi computadora y funciona :)
Primero obtengo un nombre para mi dispositivo:
En mi caso es / proc / disk / by-id / usb-09a6_8001
Agregué esta línea en / etc / fstab:
Y está funcionando, cuando conecto mi llave USB, está montada en ro y es propiedad de mi usuario.
fuente
Hoy en día, las soluciones predeterminadas son, por lo que sé,
udisk
un demonio que proporciona una API dbus , así como una interfaz de línea de comandos . También hay disponibles varios envoltorios y montadores automáticos de udiscos.Por lo general, no se configura
udisk
solo, ya que solo hace lo que se le dice, por lo que debe buscar en Gnome. Tal vez la Utilidad de Disco Gnome le permite modificar / cambiar los indicadores de montaje.fuente
Como dijo Ulrich Dangel, los udiscos deberían ser la referencia hoy en día. Todavía tengo que ver cómo se notifica (udev-> dbus-> udisks?), Pero manualmente se puede usar para montar un dispositivo con las opciones que necesita.
Udisks habla con polkit para ver qué puede hacer un usuario con los volúmenes. Supongo que aquí, pero si pudiéramos encontrar un lugar para establecer propiedades para un disco / dispositivo con nombre, debería funcionar.
Con udisksctl, su usuario debería poder montar el dispositivo con las opciones que necesita, algo como esto:
udisksctl mount -b / dev / sdxy -o ro / mountpoint
Sin embargo, no sé dónde colocar las opciones.
ACTUALIZACIÓN: Siguiendo las sugerencias de Ulrich, fui a la utilidad de disco Gnome y logré lo que necesita, pero no estoy seguro de si es la solución más elegante o no. Estoy usando Kororaa 17 (basado en Fedora 17) con Cinnamon + Gnome3, fui a la utilidad "Discos" y modifiqué las opciones de montaje para mi unidad usb, agregué "ro" y guardé.
Agrega una entrada a fstab (ahí es donde no lo veo como una solución elegante, creo que debería permanecer como una configuración de usuario, no en todo el sistema), conecto el disco y se monta automáticamente en el punto de montaje seleccionado con opciones Ahorré en la utilidad de discos Gnome.
fuente
udev→dbus→udisk
sinoudev/uevent→udisk→dbus
ro
opción.Sobre el tema de cómo el núcleo detecta el hardware,
aquí hay un artículo muy agradable sobre lo que sucede.En resumen:
/sys/
./dev/
En este punto, el dispositivo está listo para ser utilizado por el espacio de usuario. Gvfs y FUSE son sistemas de archivos de espacio de usuario.
fuente
udev
general, no notifica que las aplicaciones a través dedbus
esto son realizadas por aplicaciones de terceros. Si lo usaqdbus --system
, no verá ningún nombre udev. Por lo general, las solicitudes solo se suscribenuevents
o envían sus propias reglas