Hintergrund: Ich versuche, eine USB-Festplatte als schreibgeschützt zu mounten, aber meine Ubuntu-Installation mountet sie rw, wenn ich die Festplatte einstecke.
Ich kann die Festplatte manuell aushängen und sie mit den Befehlen umount und mount als schreibgeschützt erneut einhängen, aber das macht keinen Spaß. Könnte mir jemand eine kurze Erklärung geben, wie genau USB-Mounts auf einem typischen Linux-System automatisch ausgeführt werden (udev? Historischer Hintergrund ist auch nett) und wie ich diesen Prozess optimieren kann, damit ich die Festplatte lesen kann?
Vielen Dank.
Bearbeiten: Ich benutze Gnome, wenn das überhaupt hilft.
Edit2: In meiner Eile habe ich vergessen, ein bisschen mehr Informationen zur Verfügung zu stellen. So sieht die Festplatte bei der Ausgabe von 'mount' aus.
/dev/sdb1 on /media/LaCie type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
Edit3: Dies kann auch auf seine eigene Weise relavent sein. In der Mount-Ausgabe habe ich auch Folgendes:
gvfs-fuse-daemon on /home/fletcher/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=fletcher)
Ich dachte, dass dies mit dem oben genannten Fuseblk-Mount zu tun haben könnte, aber was ich herausfand, war dies.
Gvfs ist das virtuelle Gnome-Dateisystem. Es ist ein virtuelles Dateisystem, das auf dem bereits vorhandenen Kernel vfs aufbaut. gvfs verwendet die GIO-Bibliothek (bei der es sich um eine VFS-API handelt), um auf Dateien, Geräte, Remotenetzwerkspeicherorte usw. zuzugreifen. Dies ist im Wesentlichen der Fall, wenn Sie eine Remotenetzwerkverbindung in Nautilus bereitstellen. Es verwendet FUSE, um den Speicherort (innerhalb?) Des .gvfs-Verzeichnisses bereitzustellen, und kommuniziert dann mit der virtuellen Dateisystemschicht von gnome, um mit der neuen Bereitstellung zu kommunizieren.
Grundsätzlich erlaubt diese Struktur dem Benutzer, neue Orte dynamisch einzuhängen und mit ihnen über Nautilus zu interagieren.
Nur als Referenz: FUSE ist ein Userspace-Dateisystem, auch bekannt als "mount", auch wenn dieser Benutzer kein Root-Benutzer ist.
Also, wo bleibt mir das? Nun, die LaCie-Festplatte wird mit dem Typ fuseblk gemountet. Dies ist nur ein Blockgerät mit Sicherung. Daher hat ein Daemon das Laufwerk automatisch erkannt, als es eingesteckt war, und dann die Sicherung ausgeführt, um mein Block-Gerät zu mounten. Also, welcher Daemon ist das und wie ist er konfiguriert (ich vermute, es ist eine interne Gnom-Sache), ist die wichtigste Frage. Eine zweite Frage ist, wie das System eine neu eingelegte USB-Festplatte automatisch erkannt hat, aber ich denke, das ist ein bisschen abseits und viel niedriger (sprich: udev?).
Links:
quelle
Antworten:
Ich habe versucht, dies auf meinem Computer zu tun und es ist Arbeit :)
Zuerst erhalte ich einen Namen für mein Gerät:
In meinem Fall ist es / proc / disk / by-id / usb-09a6_8001
Ich habe diese Zeile in / etc / fstab hinzugefügt:
Und es funktioniert, wenn ich meinen USB-Schlüssel einstecke, ist er auf Ro gemountet und gehört meinem Benutzer.
quelle
Heutzutage ist die Standardlösung meines Wissens
udisk
ein Daemon, der eine dbus-API sowie eine Befehlszeilenschnittstelle bietet . Es gibt auch mehrere udisks Wrapper und Automounter zur Verfügung.Normalerweise konfigurieren Sie sich nicht
udisk
selbst, da es nur das tut, was ihm gesagt wird, und Sie müssen sich Gnome ansehen. Vielleicht können Sie mit dem Gnome-Festplatten-Dienstprogramm die Mount-Flags selbst ändern.quelle
Wie Ulrich Dangel sagte, sollten heutzutage Udisken die Referenz sein. Ich habe noch nicht gesehen, wie es benachrichtigt wird (udev-> dbus-> udisks?), Aber manuell kann es verwendet werden, um ein Gerät mit den von Ihnen benötigten Optionen zu mounten.
Udisks spricht mit polkit, um zu sehen, was ein Benutzer mit Volumes machen darf. Ich vermute, hier, aber wenn wir einen Ort zum Festlegen von Eigenschaften für eine benannte Festplatte / ein benanntes Gerät finden könnten, sollte es funktionieren.
Mit udisksctl sollte Ihr Benutzer in der Lage sein, das Gerät mit den von Ihnen benötigten Optionen zu mounten.
udisksctl mount -b / dev / sdxy -o ro / mountpoint
Ich weiß jedoch nicht, wo ich die Optionen platzieren soll.
UPDATE: Nach Ulrichs Vorschlägen bin ich zum Gnome-Festplatten-Dienstprogramm gegangen und habe das erreicht, was Sie brauchen, bin mir aber nicht sicher, ob es die eleganteste Lösung ist oder nicht. Ich verwende Kororaa 17 (Fedora 17 basiert) mit Cinnamon + Gnome3, gehe zum Dienstprogramm "Disks" und ändere die Mount-Optionen für mein USB-Laufwerk, füge "ro" hinzu und speichere.
Es fügt einen Eintrag zu fstab hinzu (dort sehe ich es nicht als elegante Lösung, ich denke, es sollte eine Benutzerkonfiguration bleiben, die nicht systemweit ist). Ich schließe das Laufwerk an und es wird automatisch mit Optionen auf dem ausgewählten Mount-Punkt gemountet Ich habe bei Gnome Festplatten-Dienstprogramm gespeichert.
quelle
udev→dbus→udisk
aberudev/uevent→udisk→dbus
ro
Option.Zum Thema, wie der Kernel Hardware erkennt,
hier ein sehr schöner Artikel, was passiert.In Summe:
/sys/
./dev/
An diesem Punkt ist das Gerät bereit, vom Anwenderbereich verwendet zu werden. Gvfs und FUSE sind beide Userspace-Dateisysteme.
quelle
udev
normalerweise werden Anwendungen nicht benachrichtigt, dadbus
dies von Anwendungen von Drittanbietern durchgeführt wird. Wenn Sie verwendenqdbus --system
, werden keine udev-Namen angezeigt. Typischerweise Sie Anwendungen nur abonnierten themselfuevents
oder ihre eigenen Regeln versenden