Weiter mit Automounting von angeschlossenen Geräten unter Linux , was die Dinge ein wenig grundlegend machte. Unter Gentoo stelle ich eine Kombination aus lokalen und Netzwerkgeräten auf meinem Laptop mit autofs-5.0.4-r5 automatisch bereit. Wenn ich alleine Autofs mache, habe ich ein paar Probleme:
- Ich muss Namen für Mountpunkte pro Gerät vordefinieren, aber gelegentlich wechselt mein MMC-Kartenleser nach dem Neustart die Position mit meinem bootfähigen USB-Stick
- Ich möchte, dass automatische LABEL-basierte Mountpunkte angezeigt werden. Autofs allein AFAIK kann das nicht
Welches ist, was udev und udisks sicherlich können. Aber:
- Ich möchte nicht, dass das Dateisystem beim Anschließen des Geräts automatisch gemountet wird. Geben Sie mir einfach den Ghost-Mount-Punkt mit dem Namen LABEL
Das tatsächliche Mounten des Dateisystems sollte nur beim ersten Zugriff auf den Mountpoint erfolgen, genau wie das automatische Ghosting funktioniert. Dies sollte das Risiko verringern, dass Dateisysteme durch versehentliches Herausziehen von Geräten verschmutzt werden, und gleichzeitig eine gute Zugänglichkeit bieten.
Darüber hinaus könnte ich in meiner DE jederzeit wissen, was los ist.
- Gibt es eine Taskleisten-App, die den Status aller Automounts anzeigen kann, dh grün = nichts ist gemountet, rot = etwas ist gemountet?
- Gibt es eine verteilungsunabhängige Möglichkeit, Benachrichtigungen über Dateisystemoperationen (nicht) bereitzustellen, z. B. mithilfe von notify-send? Was ist mit Gentoo-spezifisch, das funktioniert auch bei mir. Scripting udev hilft nicht bei NFS und CIFS, oder?
Diese Kombination sollte das ultimative Automount-Setup sein, oder fehlt mir etwas?
quelle
Antworten:
Das ist alles machbar mit
udev
. Werfen Sie einen Blick auf UAM , die die meisten Probleme zu lösen scheint , die Sie erwähnt haben, aber eigentlich nicht automatisch montieren. Wenn Sie möchten, können Sie die hervorragenden Funktionen nutzen, diese jedoch so ändern, dass die Medien nicht automatisch bereitgestellt werden. Sie können sich auch an den Autor wenden und Ihren nicht automatischen Montageansatz als neue Funktion vorschlagen. In der Zwischenzeit werfen Sie einen kurzen Blick auf seine Fähigkeiten:udev
und ist DE-unabhängig und ereignisbasiert. (Es wird auch eine Problemumgehung für optische Medien vorgeschlagen, die möglicherweise nicht erkannt werdenudev
.)MOUNTPOINT_TEMPLATES
dass das von Ihnen erwähnte Namensproblem auf verschiedene benutzerdefinierte Arten gelöst werden kann (siehe uam.conf ), möglicherweise auch mithilfeLABEL
(wie gewünscht).quelle
Hier ist, wie ich es kürzlich gemacht habe, und ich bin jetzt ziemlich zufrieden mit diesem Ansatz. Dies ist für Ubuntu 12.04 + Gentoo, aber ich denke, jede Distribution, die die Installation von udev und autofs ermöglicht, sollte funktionieren.
Voraussetzungen: Sie müssen udev + autofs installiert haben.
Schritt 1)
Erstellen Sie die folgende Datei "/etc/udev/rules.d/90-usbsd-auto.rules" (natürlich können Sie einen beliebigen Namen verwenden, solange dieser mit ".rules" endet). ::
Was dies bewirkt: Es werden zwei Symlinks erstellt, einer für die USB-Speichergerätepartition unter "/ dev / usbdisks / <...>". Es wird entweder die Bezeichnung der USB-Speicherpartition oder der Kernelname verwendet, wenn keine Bezeichnung vorhanden ist. Der zweite Symlink wird von "/ media / usb / <...>" zu "/ media / autousb / <...>" verlinkt. Dies erfolgt zur Unterstützung von Automountern (siehe Schritt 2).
Hinweis: Ich habe die Regeln ursprünglich nicht mit den Variablen ID_FS_LABEL_ENC verwendet, da dies meiner Meinung nach gefährlich ist. Was passiert, wenn Sie zwei USB-Sticks mit demselben Etikett anschließen?
Da das Poster jedoch speziell das Etikett des USB-Laufwerks verwenden wollte, habe ich die Regeln entsprechend geändert.
Um sicherzustellen, dass udev diese Regeln liest, verwenden Sie
Mit dieser udev-Regeldatei wird alles so eingerichtet, dass die USB-Speichergerätepartition automatisch bereitgestellt wird. Beachten Sie jedoch, dass das Gerät derzeit NICHT (absichtlich) automatisch bereitgestellt wird. Es wird automatisch bereitgestellt, sobald Sie es mit verwenden
Schritt 2)
Richten Sie autofs auf automount / media / autousb / <...> ein: Ich habe meiner Datei "/etc/auto.master" (für Ubuntu 12.04) die folgende Zeile hinzugefügt:
Dies bedeutet, dass AutoFS das Gerät nach 60 Sekunden Inaktivität deaktiviert. Je nach Geschmack möchten Sie möglicherweise weniger oder mehr verwenden.
Für Gentoo müssen Sie "/etc/autofs/auto.master" ändern, damit die Verwendung sinnvoll ist
Jetzt habe ich "auto.usb" mit folgendem Inhalt erstellt:
Diese auto.usb muss ausführbar sein, damit autofs dies als (Bash-) Skript verwendet. So zum Beispiel
Was bewirkt das: Dieses Skript teilt AutoFS (/ usr / sbin / automount) mit, wie die USB-Speichergerätepartition gemountet werden soll.
Das Skript verwendet zuerst "/ sbin / blkid", um herauszufinden, welche Art von Dateisystem sich auf der Partition befindet.
Das Skript bietet dann abhängig von der Gerätepartition die richtigen Mount-Optionen.
Hinweis: Ich habe Beispielcode für die Dateisysteme "vfat" (wahrscheinlich am häufigsten für USB-Sticks), "ntfs" und "xfs" eingefügt. Natürlich ist es ziemlich einfach, dies zu erweitern, um mehr Dateisysteme zu unterstützen.
Schritt 3) Optional ... Um Ihre USB-Sticks (oder Partitionen auf Ihrem USB-Stick) "auszuwerfen" == zu entfernen, erstellen Sie ein Skript unter / sbin / usbeject:
Mit diesem Skript können Sie "sudo usbeject" verwenden, um die Bereitstellung aller gemounteten USB-Gerätepartitionen aufzuheben (indem Sie automount anweisen, die Bereitstellung aufzuheben).
Natürlich können Sie einfach sicherstellen, dass die Partition nirgendwo verwendet wird. Der Automounter hebt dann die Partition nach dem 60-Sekunden-Timeout auf ...
Der eigentliche Trick besteht darin, Symlinks von "/ media / usb" zu "/ media / autousb" zu verwenden:
quelle