Nach gut 30 Jahren wird der ext2 Dateisystem-Treiber wegen des Jahr 2038-Problems (oder auch y2k38-Bug genannt) in der kommenden Linux Version 6.9 auf „deprecated“ gesetzt. Damit wird verdeutlicht, dass dieser Treiber nicht mehr verwendet werden sollte. Dies gilt auch für Linux Distributionen, die eigentlich schon y2k38-Ready sind.
ext2: Wichtigstes Linux-Dateisystem bis nach Jahrtausendwende
Das von R’emy Card, Theodore Ts’o und Stephen Tweedie geschriebe Dateisystem ext2 wurde im Januar 1993 veröffentlicht. Es ist eine umfassende Überarbeitung des Extended Filesystem. Bis nach der Jahrtausendwende war es das vorherrschende Dateisystem unter Linux, bevor es Distribution für Distribution von ext3 als „default“-Option abgelöst wurde. Es existieren auch Implementierungen für NetBSD, FreeBSD, GNU HURD, Windows 95/98/NT, OS/2 und RISC OS.
Der y2k38-Bug in ext2
Beim y2k38-Bug (Jahr 2038-Problem) handelt es sich um den Überlauf eines 32-bit Zählers der Unix-Zeit. Aber was hat das jetzt mit ext2 zu tun? Um den Zusammenhang zu verstehen, muss man wissen, dass ein Dateisystem nicht nur den Inhalt der Dateien abspeichert, sondern auch zusätzliche Informationen, sogenannte Metadaten. Im ext2-Filesystem werden diese Daten in einem Inode (Index Node) zusammengefasst. Ein Inode umfasst folgende Informationen:
- Art der Datei
- Dateizugriffsrechte
- Anzahl der links zu der Datei
- UID (user-ID)
- GID (group-ID)
- Dateigrösse
- Zeiger auf Datenblöcke der Datei
- Datum des letzten Zugriffs
- Datum der letzten Veränderung
- Erstellungsdatum
Die drei Datumsangaben (letzter Zugriff, letzte Veränderung und Erstellungsdatum) sind als Zeitstempel im 32-bit Unix-Zeit Format enthalten. Das heisst, am 19. Januar 2038 um 3:14 Uhr morgens (UTC) manifestiert sich der y2k38-Bug in einem Zählerüberlauf.
Ext2 ist Geschichte. Was muss ich jetzt beachten?
Das wichtigste zuerst: Ext2 sollte jetzt endgültig nicht mehr als Dateisystem eingesetzt werden! Es ist veraltet und wird im Jahr 2038 zu Systemausfällen führen.
Die gute Nachricht ist, dass dieser Teil des Jahr-2038-Problems ziemlich einfach zu lösen ist. Man verwendet für bestehende ext2-Partitionen den neueren ext4-Treiber. Dieser ist abwärtskompatibel und kann mit Zeitangaben jenseits der 2038-Grenze umgehen. Eine Anleitung, wie das geht und was zu beachten ist (z.B. die Inode-Grösse) findet ihr in diesem Blog-Eintrag von Bootlin.