Frage Warum können Sie eine gemountete Partition nicht finden?


Es ist bekannt, dass Sie eine gemountete Partition niemals durchsuchen sollten. Ich kann verstehen, wie dies leicht zu Korruption führen kann, wenn das Dateisystem ist geschrieben zu von fsck (z. B. wird die Option -a verwendet), aber warum können schreibgeschützte Überprüfungen nicht auf bereitgestellten Datenträgern ausgeführt werden?


38
2018-06-22 18:06


Ursprung




Antworten:


Von:

http://linux.die.net/man/8/fsck.ext3

"Beachten Sie, dass es im Allgemeinen nicht sicher ist, e2fsck auf gemounteten Dateisystemen auszuführen. Die einzige Ausnahme ist, wenn die Option -n angegeben ist und die Optionen -c, -l oder -L nicht angegeben sind. Aber selbst wenn es sicher ist Die von e2fsck gedruckten Ergebnisse sind nicht gültig, wenn das Dateisystem angehängt ist Wenn e2fsck fragt, ob Sie ein Dateisystem überprüfen sollten, das angehängt ist, ist die einzige richtige Antwort '' nein '' Nur Experten, die wirklich was wissen Sie sollten darüber nachdenken, diese Frage auf andere Weise zu beantworten. "


25
2018-06-22 18:20



Eine Ausnahme: Wenn das Dateisystem schreibgeschützt gemountet ist und fsck auch im schreibgeschützten Modus ist, dann sind die Dinge in Ordnung - Demi


Das grundlegende Problem ist, dass der Dateisystem-Checker (normalerweise) nicht Teil des Dateisystems ist. Stattdessen ist es ein separates Programm, das auf der gleichen Festplatte wie der Dateisystemcode im Kernel liest und schreibt. Wenn Sie also fsck auf einem aktiven Dateisystem ausführen, haben Sie zwei verschiedene Entitäten, die dieselben Daten (die Festplatte) lesen (und möglicherweise modifizieren), aber sie stimmen in keiner Weise miteinander überein. Das Ergebnis ist, wie andere darauf hingewiesen haben, dass die meisten Prüfer erwarten, dass niemand anderes die Dateisystem-Metadaten ändert, während sie ausgeführt werden. Sie werden verwirrt und / oder falsche Fehler melden, wenn das Dateisystem des Kernels etwas ändert, das der Prüfer nicht erwartet.

Es gibt einige Dateisysteme mit Prüfern, die explizit für die Ausführung "online" ausgelegt sind (d. H. Während das Dateisystem aktiv ist). Neuere Versionen von FFS / UFS führen dies durch Ausführen von fsck gegen einen aktuellen Snapshot des Dateisystems durch (ein schreibgeschütztes, zeitversetztes Kopie-auf-Schreib-Replikat). Wenn es Probleme wie Inkonsistenzen in den Zuordnungs-Bitmaps findet, korrigiert es sie über Systemaufruf und nicht durch Schreiben auf die Raw-Festplatte. Dadurch kann es mit dem aktiven Dateisystem koordiniert werden.

NetApp WAFL hat auch ein Online-Check-Tool. Es gibt wahrscheinlich andere.


28
2018-06-22 21:39





Das Ausführen von fsck auf einer Partition mit Lese- und Schreibzugriff wäre albern, sogar mit fsck im schreibgeschützten Modus. Das Dateisystem ändert sich unter fsck, und In-Memory-Daten, die fsck-Caches vom Dateisystem abspeichern, werden ungültig (und daher wird fsck Inkonsistenzen sehen). Sie können fsck auf einem schreibgeschützten eingehängten Dateisystem im schreibgeschützten Modus ausführen und gültige Ergebnisse erhalten. Wenn fsck im Read / Write-Modus auf einem Read-Only-Mounted-Dateisystem ausgeführt wird, sieht der Kernel, dass sich Dateisystemstrukturen unerwartet darunter ändern, und das wäre auch schlecht.


10
2018-06-22 18:19





Abgesehen von der Tatsache, dass es wahrscheinlich Ihren I / O-Durchsatz töten würde, wenn das Dateisystem während des Fsck-Vorgangs modifiziert wird, gibt es keine Möglichkeit, dass fsck die Änderungen verfolgen und Unbeständigkeiten melden kann.

Bei einigen Dateisystemen wie XFS können Sie die Konsistenzprüfung durchführen, während das Dateisystem im Read-Write-Modus eingehängt ist, mit dem Vorbehalt, dass fehlerhafte Fehler gemeldet werden. xfs_checkempfiehlt, das Dateisystem vor dem Ausführen der Überprüfung zu deaktivieren oder schreibgeschützt zu installieren.


8
2018-06-22 18:17





Nun, der Punkt von fsck besteht darin, Dateisystem-Inkonsistenzen zu melden, das sind verletzte Invarianten.

Viele dieser Prüfungen betreffen jedoch mehr als eine FS-Struktur. Wenn jemand den FS modifiziert (Daten schreibt), können diese Strukturen vorübergehend nicht mehr synchron sein. fsck würde dies als Inkonsistenz sehen, obwohl es eigentlich kein Problem ist. fsck hat keine Möglichkeit festzustellen, ob eine Inkonsistenz nur vorübergehend ist oder ein permanentes Problem, das behoben werden muss. Also kann das unmöglich funktionieren (Es sei denn, ein FS ist speziell für die Online-Überprüfung konzipiert. Einige tun, aber ext3 nicht).


5
2018-06-22 18:34





Ja, du kannst. fsck -n / dev / sda1 wird genau das tun, zumindest auf ext3. Ich habe es gerade getestet :)


2
2018-06-22 18:16





Sie können, genauso wie Sie Ihre Hand in einen beweglichen Mixer stecken und sich möglicherweise nicht verletzen, oder gerade wie Sie von einem hohen Gebäude springen können, während Sie auf den kleinen Stapel von Kissen zielen, die Sie auf dem Bürgersteig unten auslegten.

Aber warum würdest du, außer um deine eigene Sterblichkeit zu testen? Weil Ihr Chef es sicherlich erneut testen wird, wenn er herausfindet, WARUM der Mail-Server das Root-Laufwerk jetzt nicht erkennt.


-3
2018-06-22 22:35



Ich denke, eine bessere Analogie wäre, einen beweglichen Mixer zu betrachten oder über den Rand eines hohen Gebäudes zu blicken. Schreibgeschützt. - mike