Wie kann man ein Dateisystem unter Linux aushängen, ohne zu untersuchen, warum es ausgelastet ist?
Ich möchte es mit einem Befehl tun. Es sollte Anwendungen handhaben, die dieses Dateisystem, Submounts, Container ( lxc-execute -n qqq <command>
) und alle anderen Dinge verwenden.
Einfach "aussteigen. Keine Einwände!". Spezielle Kernel-Patches oder -Konfigurationen sind zulässig.
Dateisystem sollte wirklich nicht gemountet sein, umount -l
ist also sicher keine Option. Zum Beispiel für cryptsetup remove
(Übrigens, wie erzwungen wird cryptsetup remove
? Update:, cryptsetup luksSuspend
aber Sie werden nicht in der Lage sein, cryptsetup luksResume
wenn es nicht LUKS ist).
Wie mache ich alle Dateihandles auf diesem Dateisystem ungültig?
Die einzige verlässliche Methode, die ich kenne, ist das Mounten des Dateisystems über FUSE (normalerweise ist das Mounten des FUSE-Objekts kein Problem, da ich nur den Prozess beenden kann).
PS bereits wissen montieren fuser
, lsof | grep
, cat /proc/*/mounts | grep
und veraltet nicht funktionierenden „badfs Patch“.
umount --force
oderumount -f
(gleichwertig)Wenn dies fehlschlägt, verwenden Sie:
umount --lazy
oderumount --l
(gleichwertig)Die " Lazy " -Option "trennt das Dateisystem jetzt von der Dateisystemhierarchie und bereinigt alle Verweise auf das Dateisystem, sobald es nicht mehr ausgelastet ist. (Erfordert Kernel 2.4.11 oder neuer.)" Dies kann zu Instabilität führen, aber es kann sein werde das ding demontieren lassen. Alle Programme, die das Laufwerk verwenden, können abstürzen.
quelle
--force
nicht Und--lazy
ist nicht wirklich unmount - es gibt keine LVM-, Loopback- oder Cryptsetup-Dinge frei.kann verwendet werden, um das Aufheben der Bereitstellung zu erzwingen, wenn das Dateisystem ausgelastet ist.
quelle
umount2: Device or resource busy
geklappt : Der einzige Teilerfolg war, als ich mit badfs patch experimentiert habe.Ich fürchte, es gibt keine Möglichkeit, dies mit einem Befehl zu tun.
umount -f
funktioniert wirklich nicht so reibungslos wie man hoffen würde. Wenn sich unter einem anderen Mount Submounts befinden, können Sie diese Mounts nicht einfach in zufälliger Reihenfolge entfernen und hoffen, dass sie sinken.Aber keine Sorge, es gibt eine Möglichkeit, all dies zu einem einzigen Befehl zu machen: Erstellen Sie ein Shell- / Perl-Skript, das die gewünschten Prozesse beendet, die Bereitstellung von Containern aufhebt, die Bereitstellung aufhebt und schließlich eine andere Bereitstellung aufhebt. Dann können Sie Ihr Skript einfach bei Bedarf aufrufen. Anfangs ist das mehr Arbeit für Sie, aber nachdem Sie das Skript zum Laufen gebracht haben, ist alles ein Kinderspiel. :)
quelle