wiki:xfs_error_kernel
XFS Fehler nach Kernel-Update
Fehlerbeschreibung
Nach einem Update auf folgenden Kernel:
- Linux 4.18.0-553.58.1.el8_10.x86_64
trat beim Booten bzw. Mounten des XFS-Dateisystems folgender Fehler auf:
- `kernel: XFS (dm-0): Corruption detected. Unmount and run xfs_repair`
- `kernel: XFS (dm-0): Internal error i != 1 at line 481 of file fs/xfs/libxfs/xfs_alloc.c. Caller xfs_alloc_fixup_trees+0x198/0x3b0 [xfs]`
Änderungen an Kernel-Konfiguration
In der Datei `config-4.18.0-553.58.1.el8_10.x86_64` wurden folgende Optionen aktiviert:
- CONFIG_XFS_FS=y
- CONFIG_XFS_QUOTA=y
- CONFIG_XFS_POSIX_ACL=y
- CONFIG_XFS_RT=y
- CONFIG_XFS_ONLINE_SCRUB=y
Analyse & Hintergrundwissen
- Fehlerursache: Der Fehler `i != 1` in `xfs_alloc.c` deutet auf eine Inkonsistenz in den freien Speicherbaumstrukturen des Dateisystems hin. Dies kann durch eine beschädigte Metastruktur oder durch eine fehlerhafte Kernel-Implementierung ausgelöst werden.
- xfs_repair: Das Tool `xfs_repair` sollte verwendet werden, um die Dateisystemstruktur zu prüfen und zu reparieren. Wichtig: Das Dateisystem muss vorher ausgehängt werden.
- CONFIG_XFS_RT: Aktiviert Unterstützung für „Real-Time Subvolumes“, eine selten genutzte Funktion. Falls nicht benötigt, kann sie deaktiviert werden, um Komplexität zu reduzieren.
- CONFIG_XFS_ONLINE_SCRUB: Ermöglicht die Online-Prüfung von Dateisystemstrukturen. Diese Funktion ist experimentell und kann bei bestimmten Kernel-Versionen instabil sein.
- Kernel-Kompatibilität: Änderungen an XFS-bezogenen Optionen können zu Inkompatibilitäten mit bestehenden Dateisystemen führen, insbesondere wenn das Dateisystem mit einem älteren Kernel erstellt wurde.
Empfehlung
- System im Rescue-Modus starten.
- betroffene Partition aushängen (`umount /dev/dm-0`)
- `xfs_repair /dev/dm-0` ausführen.
- Bei wiederholtem Auftreten: Kernel-Konfiguration prüfen, insbesondere experimentelle Optionen wie `CONFIG_XFS_RT` und `CONFIG_XFS_ONLINE_SCRUB`.
- Backup wichtiger Daten vor weiteren Tests!
In meinem konkreten Fall war das root Filesystem betroffen und ich bin das Risiko, ohne xfs_repair auf ausgegangenem Device, mit geänderter Konfiguration neu zu starten, eingegangen.
Quellen & Tools
- `man xfs_repair`
- Kernel-Quellcode: `fs/xfs/libxfs/xfs_alloc.c`
wiki/xfs_error_kernel.txt · Zuletzt geändert: von Thomas Schilling
