@Dropsrolle: Deswegen sage ich dir FREETZMOUNT! Schau es dir bitte dringends an! Dort mache ich nämlich nicht ein reines "umount", sondern deutlich etwas mehr, nämlich greife in die üblichen AVM-hotplug-Routinen rein. Bzw. besser gesagt: FREETZMOUNT integriert sich in die Funktionen fest ein. Aus diesem Grund kannst du wenigstens AVM-Prozesse, die auf den Stick zugreife (z.B. Anrufbeantworter, Fax usw.) SAUBER beenden, wie AVM es macht. Du kannst es dir bei den mounted.cgi z.B. abschauen. Meine berühmten "unmount"-Knöpfe machen es genau nach der Methode.
Darüber hinaus hat sich cuma mit seinem external auch an den passenden Stellen an FREETZMOUNT "angehängt", sodass im Normalfall ALLE external-Dienste zunächst beendet werden, wenn man Laufwerke über FREETZMOUNT aushängt. "Normalfall" heißt hier, dass dem external zunächst mal bekannt werden muss, welche Dienste das denn sind. Im WebIF habe ich eine Eingabemaske gesehen, wo man diese Dienste eintragen könnte. Und wenn ich mich nicht irre, geht es sogar so weit, dass die Pakete/Dienste, die auf dem Standardwege externalisiert werden, automatisch in diese (oder eine andere) Liste eingetragen werden. Somit werden sie immer automatisch beendet, wenn man die Partition über FREETZMOUNT aushängt. cuma möge mich berichtigen, wenn ich da falsch liege.
D.h. für dich, Dropsrolle, dass du lediglich diese Liste vom cuma's external vernünftig bedienen muss, wenn du dafür sorgen willst, dass die Dienste sich beenden.
Was FREETZMOUNT bis jetzt noch nicht kann, was allerdings in den hotplug-Skripten von AVM vorgesehen ist und theoretisch möglich wäre, ist das Wieder-Mounten der zuvor ausgehängten Partition. Um dies zu können, brauchst du einige Informationen über major und minor vom Device. Dann hättest du die AVM-Skripte (do_mount() und do_unmount()) direkt ansprechen können. Bei einem uStor01 ist z.B. major=0, minor=1. Schau einfach in die hotplug-Skripte rein, dann wirst du hoffentlich verstehen, was ich meine.
Ferner gibt es da ein weiteres Problem. Die normale unmount-Prozedur, an die wir uns mit FREETZMOUNT "anhängen", hängt normalerweise die Mountpoints nicht nach dem Device aus, sondern nach dem Ziel. Für die Fälle, die uns und AVM betreffen, ist es ok, für die check-Routinen ist es aber nicht ausreichend. Denn es kann ja sein, dass sda1 auch zwei Mal gemounted ist, einmal als Verzeichnis /mnt/MydirA und einmal als /mnt/MyDirB. Ich weiß jetzt nicht mehr, wie sich die hotplug-Skripte in einem solchen Fall verhalten. Denn du kannst beim umount als Parameter sowohl /dev/sda1 angeben (was für dein Fall sinnvoll wäre) oder eben /mnt/MyDirA. Im ersten Fall werden beide Mounts ausgehängt, im zweiten nur mit dem /mnt/MyDirA. Deswegen muss man da genau die hotplug-Skripte reviewen, wie die AVMs es da verbrochen haben. Und zum reviewen sag ich dir gleich: AVM hat alles andere als guten Programmierstil. Deswegen wirst du dich da wundern, wie stark da alles verquickt ist. Mit FREETZMOUNT hatte ich mich lediglich an die bestehende Struktur "abgehängt", ohne sie großartig zu verändern. Die beiden entscheidenen Funktionen von AVM do_mount() und do_unmount() haben inzwischen bis zu 5 Eingangsparameter, die nach Lust und Laune bestückt werden können. Ich hatte hier irgendwo in IPPF meine Untersuchungen dazu gepostet gehabt. Da steht es auch in etwa, wie man sie ansprechen kann. Ansonsten muss man sich durch die Quellen quelen.
Es wäre vielleicht sogar sinnvoll in FREETZMOUNT 2-3 neue Funktionen einzuführen, die man separat und ohne diese 5 Parameter zu kennen aufrufen könnte. Z.B. irgendwas in der Art:
Code:
do_extended_unmount /dev/sda1 # nach Device
do_extended_unmount "MyLabel" # nach Label
do_extended_unmount /dev/sda # nach Medium
do_automatic_mount /dev/sda1 # /dev/sda1 wieder mounten
do_automatic_mount /dev/sda # alles auf dem Medium /dev/sda wieder mounten, was ausgehängt wurde
do_automatic_mount "MyLabel" # Partition mit dem Label "MyLabel" mounten
Solche Funktionen würden uns auch an anderen Stellen sicherlich helfen. Die Parameter und die Namen sind natürlich nur als Beispiel angedacht.
MfG