Nach Stromausfall - muss man danach was tun?

Hallo,
muss man etwas tun, wenn durch Stromausfall das System abgewürgt wurde? Ich starte erneut und alles scheint normal zu funktionieren, nur LibreOffice fragt, ob es die Datei reparieren / wieder herstellen soll.
Sonst fällt mir nichts auf.
Mein / ist auf Btrfs, /home auf ext4.

Ist mir schon hunderte Male passiert und hat noch nie ein System zerschossen.
Beim Neustart werden (wenn ‘quiet’ in Grub entfernt ist) die ‘clean ups’ von beschaedigten Systemdateien angezeigt und der erste Bootvorgang nach dem Crash dauert geringfuegig laenger, das sollte alles sein (ext4, zu Btrfs kann ich nichts sagen).
Und zur Not gibts ja noch Timeshift/Backups, right?

Das Problem sind, wie Du gemerkt hast, die geoeffneten Programme. Da kommt es darauf an ob es im Program eine Autosicherung gibt; je hoeher das Risiko eines Stromausfalls desto kuerzer sollten die Sicherungsintervalle gesetzt werden, ungesicherte Prozesse sind natuerlich weg.

2 Likes

btrfs kann sowas vertragen, ext4 nicht wirklich :wink:

Wenn du sichergehen willst dass deine Daten (Die die schon geschrieben waren als der Strom ausfiel) nicht beschädigt sind, kannst du in btrfs einen scrub laufen lassen. Der überprüft alle Daten im btrfs-Dateisystem anhand der Prüfsummen.

Für ext4 gibt es sowas nicht. Der Filesystem check bei ext4 bestätigt nur, dass die Struktur des Dateisystems unbeschädigt ist. Über die Daten macht er keine Aussage…

Manche Dateisysteme sind halt widerstandsfähiger als andere.
:footprints:

Noch besser wirds nur indem du btrfs RAID 1 aktivierst. Dann sind Fehler nicht nur erkennbar, sondern werden sogar automatisch repariert.

2 Likes

Ist dieser Befehlt korrekt, damit alles, was Btrfs ist gescrubt wird: sudo btrfs scrub start -Bd /
da muss ich mir nicht (für mich mühsam) die gemounteten Partitionen suchen und eintippen.

1 Like

Mein Notebook steigt unregelmäßig aus, dann muss ich einen Hard-Reset machen. Bisher hat er ihn auch mit ext4 klaglos hingenommen.

Viel kaputt geht aber nicht, da ich die Daten sowieso mit Syncthing kurz nach Erstellung/Änderung auf das NAS schreibe

1 Like

Nun die chance dass was kaputtgeht beim Stromausfall ist gering (aber eben nicht vernachlässigbar).
Wir haben ca. 30k Geräte im Einsatz, die von Kunden oft auch “hart” abgeschaltet werden. Die Generation davor hatte jffs2. Die aktuelle hat deswegen btrfs.

Wer bei btrfs 2 getrennte devices verwenden kann, kann sogar btrfs RAID verwenden. Beim Desktop kein problem. Mein Notebook hat leider nur 1 device :frowning:

Gut, bei der Menge an Geräten würde ich auch einen anderen Ansatz fahren. Aber beim privaten Notebook daheim habe ich weniger Probleme damit.

bin begeistert, dass Organisationen in dieser Größenordnung Linux verwenden und nicht MS. Machst Du die Administration?

Geräte mit grafischer Oberfläche (nicht PCs). Die brauchen keine Administration, die laufen einfach und machen ihre Arbeit bei den Kunden. Aber werden manchmal halt einfach ausgesteckt .

Solange Du ein sogenanntes Journaling-Dateisystem verwendest, bist Du normaler Weise auf der sicheren Seite, abgesehen von nicht angeschlossenen Schreibvorgängen von Anwenderprogrammen wie LibreOffice. Zumindest auf Dateisystem-Ebene reparieren sich derartige Systeme beim nächsten Boot von alleine. Und ja, auch ext4 und btrfs gehören in diese Gruppe (ebenso wie ntfs).

1 Like

Bei allen respekt für BTRFS, aber tust du hier die Sache nicht übertrieben darstellen?

Am ende des Tages würde nach einen Stromausfall in beiden Datei Systemen (EXT4/BTRFS) diese Datei (wenn sie denn wirklich unglücklicherweise beschädigt werden würde) eine beschädigung haben.

Der einzige unterschied wäre dann doch nur, das du mit BTRFS dann auch eine gewissheit hast, das es dort eine beschädigung gibt oder etwa nicht?

Im Grunde richtig erfasst. Mit BTRFS wüsste man exakt welche Datei unvollständig ist oder fehlerhaft ist, wobei es auf ext4 ein Ratespiel ist. Natürlich kann man herleiten, welche Daten möglicherweise geschrieben worden sind. Das einzige, was ext4 bei Daten bescheinigen kann, ist, dass die Struktur lesbar ist und die konsistent. Ob die Daten fehlerhaft oder unvollständig sind, kann es nicht prüfen. Das müsstest du selbst mit extra Werkzeugen tun, oder ein Backup haben.

ext4 sagt dir nur: „Das Dateisystem ist intakt – ich weiß aber nicht, ob das, was du geschrieben hast, sinnvoll ist.“

Btrfs sagt dir: „Ich habe diesen Block gelesen, seine Prüfsumme stimmt nicht. Die Datei foo/bar.txt ist beschädigt.“

So hatte ich auch schon Bilder/Videos, die abspielbar waren, aber eben Beschädigungen mitten im Video hatten oder im Bildmaterial bei ext4. Auch gerade wegen der schleichenden Korruption, die vor allem bei Festplatten mit hohen Kapazitäten immer wahrscheinlicher werden. Bei kleinen Platten war das noch nicht so das Thema, da das Risiko eher unwahrscheinlich war.

Jetzt wird es interessant. Kennst du da welche.

Naja btrfs mach etwas mehr als nur die Prüfsummen zu speichern, und die dann auf anfrage zu vergleichen.

Das verhindert natürlich nicht dass ein “dummes programm” seine Daten trotzdem kaputtschreibt.

Aber das Dateisystem selbst macht folgendes:

  • (A) Schreibbefehle für eine Datei werden im schreib-cache gesammelt (insbesondere wenn sie zusammenhängend erfolgen)
  • (B) Der Schreibcache wird nach 5 Sekunden oder so geschrieben.
  • (C) barriere
  • (D) Die dazugehörigen Metadaten, die im Dateisystem vermerken müssen, wo die neuen Daten liegen, landen auch im cache, aber sie werden erst nach der barriere (C) ins Dateisystem eingetragen

Beim booten wird der (zeitlich) letzte fehlerfreie Stand der Metadaten wiederhergestellt. btrfs macht das indem die Prüfsumme der Metadaten getestet wird. Dann werden diejenigen Metadaten als gültig erklärt, die die neuesten mit einer korrekten Prüfsumme sind. Beschädigte Metadaten werden einfach verworfen, was wegen CoW automatisch zu einem Rollback führt (Wie bei einem Snapshot)

Damit werden automatisch alle Schreibbefehle von Daten zurückgenommen, für die es keine gültigen Metadaten gibt. Das Deteisystem ist wieder in einem konsistenten Zustand. Es kann sein dass die Änderung an einer Datei nicht gespeichert wurde, Aber beschädigt ist sie nicht.

Man kann dadurch Programme so schreiben, dass sie aufgrund dieser Zusage des Dateisystems (dass es mit Schreibbarrieren arbeitet) keine Beschädigten Dateien hinterlässt, sondern nur entweder die vollständige alte Datei oder die vollständige neue Datei.
:footprints:

Ein Programm das zuerst die alte datei löscht, und dann langsam (!) die neue Datei schreibt, profitiert davon allerdings kaum :wink:
Man kann jedoch eine neue Datei mit temporärem Namen schreiben, und die dann atomar umbenennen (und damit die vorherige löschen).

Wenn man sich mit btrfs beschäftigt kann man eine Menge lernen

1 Like