Servus!
Ich möchte gerne Daten meines USB-Sticks sowohl beim Einstecken, als auch beim "Abziehen" mit Daten auf der lokalen Platte synchronisieren. Abziehen bedeutet dabei aber nicht, dass ich das Ding einfach rausziehe, normalerweise gehe ich in Gnome über das Kontextmenü und "Remove device safely..." (oder so) und ziehe dann ab. Konkret handelt es sich um mein persönliches Desktop-Wiki.
Synchronisiert wird mittels Unison, beim Einstecken lässt sich das über ein Script, welches über udev ausgelöst wird, komfortabel machen.
Beim Abziehen funktioniert udev natürlich nicht, da damit nur hotplug-Ereignisse detektiert werden (dann ist der Stick also schon ab). Ähnliches gilt für eine Lösung, bei der bspw. Dateien unter /proc oder auch /etc/mtab mittels inotify (o.ä.) überwacht werden. Hier ist zwar nicht das Hotplug-Ereignis entscheidend, dafür aber das Aushängen aus dem Dateisystem: man müsste nochmal einhängen, synchronisieren und wieder aushängen (ohne dass das wieder von vorne losgeht!). Diese Varianten funktionieren also schonmal nicht (bzw. letztere mit hohem Aufwand).
Nun fallen mir 2 Lösungen ein: 1. Ein Skript mit Starter auf dem Desktop, was die Synchronisation auslöst und dann das Gerät aushängt.
Vorteil: einfach (Nachvollziehbarkeit, Robustheit, ...).
indifferent: man muss extra auf den Starter klicken - macht keinen Unterschied zum Kontextmenü, welches ich normalerweise nutze
Nachteile:
funktioniert ausschließlich über den Starter, d.h. es funktioniert nicht, wenn ich den Stick händisch über die Konsole aushänge
funktioniert nicht, wenn das System bei eingestecktem Stick herunterfährt (dafür ließe sich allerdings auch noch ein anderes Script nutzen)
2. umount mittels dpkg-divert umleiten und ein eigenes umount-Script hinterlegen, welches den USB-Stick gesondert behandelt.
Vorteil: man braucht sich keine Gedanken über das Mounten/Umounten mehr machen, geht alles immer automatisch - egal ob Kontextmenü, Konsole oder Systemstart/-halt
Nachteil:
eher komplizierte Lösung, d.h. das Skript erfordert ein bisschen Aufwand (USB-Stick oder nicht? Korrekte Parameterübergabe!)
Wie erreiche ich, dass alle Programme mein umount-Script nutzen (nicht das diversifizierte umount!), das umbenannte umount hingegen trotzdem immer aktualisiert wird?
recht tiefer Eingriff ins System, d.h. risikobehaftet
Momentan tendiere ich auf Grund der Selbsteinschätzung meiner Fähigkeiten zur 1. Lösung. Die 2. Lösung hat allerdings (wenn sie gut ausgearbeitet ist) objektiv definitiv die Nase vorn.
Wie würdet ihr das machen?
Ciao
Wolle
P.S.: Neulich fand ich beim Stöbern im manpage von mount den Hinweis, dass die Option "context=system_u:object_r:removable_t" in /etc/fstab das betreffende Gerät als Wechseldatenträger kennzeichnet. Ja, momentan machen ich das mit meinem USB-Stick auch wirklich so (fester Mountpunkt, nur 1 von 3 Partitionen wird gemountet) und nicht über udev (finde ich komplizierter). Gibt es denn vielleicht eine Möglichkeit, über diese "context"-Angabe dem mount/umount-Befehl direkt ein entsprechende Direktive für das Mounten/Umounte zu übergeben?