Ext4-Bug gefährdet Daten
Ein Bug im Code des Dateisystems Ext4 im aktuellen stabilen Linux-Kernel 3.6 kann unter bestimmten Bedingungen zu einem Datenverlust fĂĽhren.
Ein Bug im Code des Dateisystems Ext4 im aktuellen stabilen Linux-Kernel 3.6.3 kann unter bestimmten Bedingungen zu einem Datenverlust fĂĽhren. Grund dafĂĽr ist eine Ă„nderung in der Kernelversion 3.6.2, schreibt Ext4-Entwickler Ted Ts'o, der bereits einen Patch fĂĽr den Fehler bereitgestellt hat.
[Update 25.10., 8:00]
Die urprüngliche Diagnose von Ted Ts'o hat sich inzwischen als falsch oder zumindest unvollständig herausgestellt, wie der Ext4-Entwickler schreibt. Offenbar zeigt sich das Problem nur, wenn das System nicht sauber heruntergefahren wird, sodass das Dateisystem nicht sauber ausgehängt wird; es tritt aber auch dann nicht immer auf. Möglicherweise sind auch exotische Mount-Optionen mit im Spiel. Ted Ts'o weist darauf hin, dass viele Fedora-User bereits den Kernel 3.6.2 verwenden, ohne dass es dort zu Problemen gekommen sei.
Der Ext4-Entwickler hat mittlerweile eine neue Theorie zu der Ursache des Bugs und auch gleich einen neuen Patch bereitgestellt. Da aber, wie Ts'o schreibt, noch nicht völlig klar ist, unter welchen genauen Umständen der Fehler auftritt, ist nicht sicher, dass dieser Patch das Problem endgültig löst.
[/Update]
Der Fehler tritt lediglich auf, wenn das Journal auf Block 0 des Dateisystems die Liste der Transaktionen auf Block 0 des Journals beginnt, was bereits spezielle Optionen beim Anlegen des Dateisystems erfordert. Wenn in diesem Fall das Dateisystem zweimal kurz hintereinander gemountet und gelöst wird, kann es passieren, dass die im Journal gespeicherten Transaktionen durcheinander geraten, sodass sie beim Mounten nicht in der korrekten Reihenfolge zurückgespielt werden. Das kann schlimmstenfalls zu fehlerhaften Metadaten und damit zu Datenverlust führen.
Ted Ts'o bezeichnet den Fehler als "Lance Armstrong bug", bei dem der Code niemals in einem Test auffällt, sich aber trotzdem nicht so verhält, wie er sollte. In seinem Posting auf der Linux Kernel Mailinglist mit dem nur wenige Zeilen langen Patch entschuldigt er sich, dass ihm der Fehler nicht schon beim Sichten des Codes für den Kernel 3.6.2 aufgefallen sei. Betroffen von dem Bug ist auch die Kernelserie 3.5, in die der Bug zurückportiert wurde. (odi)