Contexte: J'essaie de monter un disque USB en lecture seule mais mon installation Ubuntu est en train de le monter rw lorsque je branche le disque.
Je peux démonter le disque manuellement et le remonter manuellement en lecture seule avec les commandes umount et mount mais ce n'est pas amusant. Quelqu'un pourrait-il me donner une explication rapide sur la façon dont les montages USB sont effectués automatiquement sur un système Linux typique (udev? Le contexte historique est bien aussi) et peut-être comment je peux modifier ce processus pour me permettre de lire le disque ro?
Merci.
Edit: j'utilise gnome si cela aide du tout.
Edit2: Dans ma hâte, j'ai oublié de fournir un peu plus d'informations. Voici à quoi ressemble le disque à la sortie de 'mount'.
/dev/sdb1 on /media/LaCie type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
Edit3: Cela peut également être pertinent à sa manière. Dans la sortie de montage, j'ai également les éléments suivants:
gvfs-fuse-daemon on /home/fletcher/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=fletcher)
Je pensais que cela pouvait être lié au support Fuseblk ci-dessus, mais ce que j'ai découvert était le suivant.
Gvfs est le système de fichiers virtuel Gnome. Il s'agit d'un système de fichiers virtuel construit au-dessus des vfs du noyau déjà existants. gvfs utilise la bibliothèque GIO (qui est une API VFS) pour accéder aux fichiers, périphériques, emplacements réseau distants, etc. Dans ce cas ci-dessus ('gvfs-fuse-daemon') gvfs utilise FUSE pour monter des fichiers / emplacements / périphériques. C'est essentiellement ce qui se produit lorsque vous montez une connexion réseau à distance dans Nautilus. Il utilisera FUSE pour monter l'emplacement (à l'intérieur?) Du répertoire .gvfs, puis il communiquera avec la couche du système de fichiers virtuel gnome pour communiquer avec le nouveau montage.
Fondamentalement, cette structure permet à l'utilisateur de monter dynamiquement de nouveaux emplacements et d'interagir avec eux via nautilus.
Juste pour référence: FUSE est un système de fichiers en espace utilisateur, c'est-à-dire qu'il permet à l'utilisateur d'exécuter le montage même lorsque cet utilisateur n'est pas root)
Alors, où est ce qu'il me laisse? Eh bien, le disque LaCie est monté avec un fusible de type. Ceci est juste un appareil bloc monté avec fusible. Donc, un démon a détecté automatiquement le lecteur lorsqu'il a été branché, puis est allé de l'avant et a exécuté un fusible pour monter mon périphérique de blocage. Alors, quel démon est-ce, et comment est-il configuré (je suppose que c'est quelque chose de gnome interne) est la question la plus importante. Une question secondaire est de savoir comment le système a détecté automatiquement un disque USB nouvellement inséré, mais je pense que c'est un peu un niveau à part et beaucoup plus bas ici (lire: udev?).
Liens:
la source
Réponses:
J'ai essayé de le faire sur mon ordinateur et ça marche :)
Je reçois d'abord un nom pour mon appareil:
Dans mon cas, c'est / proc / disk / by-id / usb-09a6_8001
J'ai ajouté cette ligne dans / etc / fstab:
Et cela fonctionne, lorsque je branche ma clé USB, elle est montée sur ro et appartient à mon utilisateur.
la source
De nos jours, les solutions par défaut sont autant que je sache
udisk
un démon fournissant une API dbus ainsi qu'une interface de ligne de commande . Il existe également plusieurs wrappers udisks et monteurs automatiques disponibles.En règle générale, vous ne vous configurez pas
udisk
lui-même car il fait simplement ce qui lui est dit, vous devez donc vous pencher sur Gnome. Peut-être que l'utilitaire de disque Gnome vous permet de modifier / changer les drapeaux de montage lui-même.la source
Comme l'a dit Ulrich Dangel, les udisks devraient être la référence de nos jours. Je n'ai pas encore vu comment il est notifié (udev-> dbus-> udisks?), Mais manuellement, il peut être utilisé pour monter un appareil avec les options dont vous avez besoin.
Udisks parle à polkit pour voir ce qu'un utilisateur est autorisé à faire avec les volumes. Je suppose ici, mais si nous pouvions trouver un endroit pour définir les propriétés d'un disque / périphérique nommé, cela devrait fonctionner.
En utilisant udisksctl, votre utilisateur devrait être capable de monter l'appareil avec les options dont vous avez besoin, quelque chose comme ceci:
udisksctl mount -b / dev / sdxy -o ro / mountpoint
Pourtant, je ne sais pas où placer les options.
MISE À JOUR: Suite aux suggestions d'Ulrich, je suis allé à l'utilitaire de disque Gnome et j'ai obtenu ce dont vous avez besoin mais je ne sais pas si c'est la solution la plus élégante ou non. J'utilise Kororaa 17 (basé sur Fedora 17) avec Cinnamon + Gnome3, je suis allé à l'utilitaire "Disks" et j'ai modifié les options de montage pour mon lecteur USB, ajouté "ro" et enregistré.
Il ajoute une entrée à fstab (c'est là que je ne le vois pas comme une solution élégante, je pense qu'il devrait rester comme une configuration utilisateur non étendue au système), je branche le lecteur et il est monté automatiquement sur le point de montage sélectionné avec des options J'ai enregistré sur l'utilitaire de disques Gnome.
la source
udev→dbus→udisk
maisudev/uevent→udisk→dbus
ro
option.Sur le sujet de la façon dont le noyau détecte le matériel,
voici un très bel article sur ce qui se passe.En résumé:
/sys/
./dev/
À ce stade, l'appareil est prêt à être utilisé par l'espace utilisateur. Gvfs et FUSE sont tous deux des systèmes de fichiers en espace utilisateur.
la source
udev
règle générale , les applications ne sont pas notifiées via desdbus
applications tierces. Si vous utilisez,qdbus --system
vous ne verrez aucun nom udev. En règle générale, les applications s'abonnentuevents
ou expédient leurs propres règles