it-swarm.com.de

Stellen Sie eine ausgelastete Festplatte erneut in den schreibgeschützten Modus

Ich möchte eine Festplattenpartition in den Nur-Lese-Modus zwingen und sie länger als 30 Minuten schreibgeschützt lassen.

Was ich versucht habe :

  1. mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)

    Problem : Dies führte zu einem Fehler beim Besetzen des Geräts, da einige Prozesse die Partition verwendeten. Ich möchte die Prozesse nicht mit der Festplatte beenden. Ich möchte simulieren, dass die Festplatte plötzlich schreibgeschützt wird, wenn die Prozesse sie noch verwenden.

  2. Benutzter magischer Sysrq-Schlüssel, wie unten

    echo u > /proc/sysrq-trigger
    

    Problem : Dadurch werden alle Festplattenpartitionen schreibgeschützt (obwohl das Gerät ausgelastet ist). Nach 20 bis 30 Minuten startet sich die Maschine neu. Einige Computer werden sofort neu gestartet, sobald dieser Befehl ausgeführt wird. Ich bin mir noch nicht sicher, was diesen Neustart verursacht. Ich möchte nicht, dass sich der Computer selbst neu startet und die Festplatte mehr als 30 Minuten lang im schreibgeschützten Modus bleibt.

Frage: Gibt es eine bessere Möglichkeit, eine einzelne Festplattenpartition zum Nur-Lese-Modus zu zwingen und sie eine halbe Stunde lang in diesem Zustand zu halten und sie wieder in den Lese-/Schreibmodus zu versetzen, ohne einen Neustart im zu verursachen? Prozess?

20
AdithyaCS

Normalerweise können Sie ein Dateisystem nicht als schreibgeschützt erneut bereitstellen, wenn auf Prozessen eine Datei zum Schreiben geöffnet ist oder wenn sie eine Datei enthält, die gelöscht, aber noch geöffnet ist. Ebenso können Sie ein Dateisystem nicht aushängen, in dem eine Datei geöffnet ist (oder ähnliche Verwendungen von Dateien, z. B. ein Prozess, in dem sich das aktuelle Verzeichnis befindet, eine laufende ausführbare Datei usw.).

Sie können umount -l Verwenden, um den Mount-Punkt freizugeben und das Öffnen weiterer Dateien zu verhindern. Lassen Sie jedoch das Dateisystem gemountet und lassen Sie Prozesse, bei denen bereits Dateien geöffnet sind, normal laufen.

Ich kann mir keine generische Methode vorstellen, um zu erzwingen, dass ein Dateisystem schreibgeschützt erneut bereitgestellt wird, wenn dies nicht der Fall sein sollte. Wenn das Dateisystem jedoch von einem Blockgerät unterstützt wird, können Sie das Blockgerät schreibgeschützt machen, z.

echo 1 >/sys/block/dm-4/ro
echo 1 >/sys/block/sda/sda2/ro

echo u > /proc/sysrq-trigger Ist eine ziemlich extreme Methode, um das erneute Bereitstellen als schreibgeschützt zu erzwingen, da es alle Dateisysteme betrifft. Es ist als letzte Methode gedacht, das Dateisystem kurz vor dem Neustart in einem sauberen Zustand zu belassen.

Das erneute Bereitstellen eines Dateisystems als schreibgeschützt führt nicht zu einem Neustart. Was auch immer den Neustart verursacht, hängt nicht direkt mit dem erneuten Bereitstellen der Partition als schreibgeschützt zusammen. Vielleicht hat es nichts damit zu tun, oder vielleicht löst dies einen Fehler in der Anwendung aus, der dazu führt, dass sich der Prozessor dreht und überhitzt und Ihr Prozessor defekt oder übertaktet ist und schließlich neu startet. Sie müssen die Ursache des Neustarts ermitteln.

Verwenden Sie die Force-Option von mount (vorausgesetzt, Ihr Mount hat eine; GNU mount nicht, aber BSD und macOS zum Beispiel):

mount -f -o remount,ro /mount/point

Natürlich kann Ihr Kilometerstand je nach tatsächlichem Dateisystem, Kernelversion und Situation variieren. Dies ist also nur eine Option auf höherer Ebene, die andere Tricks auf niedrigerer Ebene ausprobiert, wie z. erwähnt von @ Gilles.

3
Piotr Findeisen