Ich habe in einer früheren Antwort einige Informationen über die Verwendung von udev als Automounter geschrieben . es (oder die Ressourcen, mit denen es verknüpft ist) kann etwas Licht für Sie bringen.
Mir ist nicht klar, was genau Ihre Frage ist
Separate Regeln zum Hinzufügen und Entfernen: Sie können diese möglicherweise konsolidieren, wenn Sie die ACTION- Übereinstimmung löschen. Dies kann jedoch dazu führen, dass die Regel zu oft ausgelöst wird. Ich denke, es ist besser, jede Regel explizit zu treffen. Oder noch besser (aus Gründen, die im Unmount- Abschnitt unten beschrieben werden), löschen Sie die Regel zum Entfernen ganz.
In Bezug auf RUN Aktionen in den udev - Regeln: Die RUN Aktion in Ihrer udev - Regel ausführen muss schnell . Schauen Sie sich das Beispiel an, mit dem ich verlinkt habe. Sie werden sehen, dass es zwei Skripte gibt - uDev ruft eines auf, das das andere ausdreht, um den eigentlichen Mount auszuführen, sodass der erste die Verarbeitungssteuerung zeitnah an uDev zurückgeben kann. Wenn du das schon machst, großartig; Andernfalls sollten Sie Ihre Skripte auf ähnliche Weise anpassen.
In Bezug auf Aushänge: ich hatte eine Menge Ärger mit dem auf dem Gerät automatisch die Entfernung Aushang, und ich beschloss schließlich nicht eine verwenden „entfernen“ Regel überhaupt nicht . Stattdessen habe ich ein separates Unmounter-Skript geschrieben, das die Regel "Entfernen" ersetzt .
Dies liegt daran, dass Sie dem Betriebssystem wirklich so viel Zeit geben sollten, wie es erforderlich ist, um das Gerät zu schließen, bevor Sie es physisch entfernen. Es ist eine Sache, ein Laufwerk mitzunehmen, wenn Sie das Dateisystem schreibgeschützt gemountet haben. Ein vollständiges Schreib-Lese-Dateisystem sollte jedoch nach Möglichkeit sauber entfernt werden. (Dies ist, was die Option "Laufwerk sicher entfernen" in Windows ausführt - dies ist ein Mechanismus, um das Laufwerk abzuhängen, bevor das Gerät physisch vom System entfernt wird.)
Mit einem regulären Dateisystem konnte ich einige Unmounts mit dersync
Option zum Zeitpunkt des Einhängens "richtig" zum Laufen bringen, undumount -l
(Lazy Unmounts) beim Unmounten. Die faulen Unmounts geben dem Kernel an, das Dateisystem sofort zu trennen, bereinigen Sie jedoch später Verweise auf das Dateisystem, wenn sie nicht mehr ausgelastet sind. Dies funktioniert zwar, aber die Daten sind nicht so sicher wie das vollständige Deinstallieren, bevor das Gerät entfernt wird.
Aus den gleichen Gründen kann es schwierig sein, Lazy-Unmounts mit einem verschlüsselten Dateisystem auszuführen. Der Device-Mapper fügt den Standard-Dateisystemproblemen eine weitere Komplexitätsebene hinzu. Mir scheint, dies würde ein verschlüsseltes Dateisystem noch empfindlicher für unreine Abbrüche machen. (Ich bin jedoch nicht besonders mit verschlüsselten FSs vertraut, daher können sie dies möglicherweise tolerieren.)
Hoffentlich gibt dir das ein paar Hinweise. Ehrlich gesagt ist uDev für Automounting-Zwecke praktikabel, aber nicht ideal. Der HalEvt-Daemon oder das neuere DeviceKit wäre wahrscheinlich geeigneter.