Home / Linux / XFS Filesystem Error – mount: Structure needs cleaning – Fehlerbehebung im Dateisystem

XFS Filesystem Error – mount: Structure needs cleaning – Fehlerbehebung im Dateisystem

Problembehebung mit dem XFS Filesystem Error „mount: Structure needs cleaning“

Ich habe nach einem kleinen RAID Problem meinen Debian Squeeze Backupserver rebootet und stellte fest dass auf einmal meine /backup Disk fehlte bzw. der Ordner leer war. Ich ging dem Problem sofort auf den Grund und beschreibe hier ausführlich und Step-by-Step meine durchgeführten Schritte

Gemountete Linux Partitionen anzeigen lassen

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 324M 129M 179M 42% /
tmpfs 5.9G 0 5.9G 0% /lib/init/rw
udev 10M 816K 9.3M 8% /dev
tmpfs 5.9G 0 5.9G 0% /dev/shm
/dev/sda6 4.6G 138M 4.3G 4% /home
/dev/sda5 3.7G 72M 3.5G 3% /tmp
/dev/sda2 4.6G 1.8G 2.6G 42% /usr
/dev/sda3 2.8G 2.4G 276M 90% /var

Hier kann natürlich auch der Befehl mount verwendet werden aber df stellt die Übersicht schöner dar 😉
Erste Erkenntnis: Die Partition /backup ist nicht verfügbar bzw. wurde nicht korrekt gemountet.

Verfügbare Linux Partitionen anzeigen lassen:

cat /proc/partitions
major minor #blocks name
8 0 4882759680 sda
8 1 341797 sda1
8 2 4882813 sda2
8 3 2929688 sda3
8 4 3906250 sda4
8 5 3906250 sda5
8 6 4882813 sda6
8 7 4861910034 sda7

Meine fehlende Partition existiert also noch. sda7 ist dabei die richtige welche mir als /backup fehlt. Also versuche ich mein Glück einfach die fehlende sda7 Partition wieder als /backup zu mounten:

Linux Partition mounten:

mount /dev/sda7 /backup
mount: Structure needs cleaning

Ohne Erfolg: Der Fehler „Structure needs cleaning“ weisst auf einen Dateisystem Fehler hin. Somit gilt es nun herauszufinden welches FS verwendet wird,  sodass ich dieses bereinigen kann:

Dateisystem einer Linux Partition anzeigen lassen:

file -s /dev/sda7
/dev/sda7: SGI XFS filesystem data (blksz 4096, inosz 256, v2 dirs)

Das verwendete Filesystem ist also XFS. Ich versuche nun mit dem Tool xfs_repair meine Partition zu reparieren.

XFS Filesystem reparieren:

xfs_repair /dev/sda7
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed. Mount the filesystem to replay the log, and unmount it before
re-running xfs_repair. If you are unable to mount the filesystem, then use
the -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.

Tolle Fehlermeldung nicht wahr? Das Filesystem mounten? Funktioniert doch nicht! Ich dachte mir na toll wenn ich nun wirklich die ganze Log löschen und neu aufbauen muss wird wahrscheinlich nichts mehr funktionieren.

Allerdings habe ich ein weiteres Backup der gesamten Daten, somit kann mir nicht recht viel passieren, ausser dass ich die Partition dann komplett neu formatieren müsste und die Daten zurückspielen muss. Wer LVM verwendet kann vorher einen Snapshot machen. Und wenn es eine Virtuelle Maschine ist, dann sollte ein Snapshot sowieso kein Problem darstellen. Ich versuche somit den waghalsigen Repair mit der Option -L:

[sam id=’2′ codes=’true‘]

xfs_repair /dev/sda7 -L
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
ALERT: The filesystem has valuable metadata changes in a log which is being
destroyed because the -L option was used.
- scan filesystem freespace and inode maps...
block (0,16993863) already used, state 2

Ich hatte das Glück dass bei mir wieder alles läuft (auch ohne Backup). Allerdings kann man hier wirklich nie wissen ob der Vorgang echt nicht die ganze Partition schrottet.

3.9/5 - (20 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

6 Kommentare

  1. Hallo, vielen Dank für diesen informativen Artikel. Hatte selber schonmal ein ähnliches Problem. Hast Deinen Lösungsweg echt gut dargestellt. Allerdings hattest Du beim letzten Schritt wirklich Glück, wie Du selber schon sagtest. Bei mir liefs leider nicht ganz so einbfach ab..

  2. Sehr schön beschriebene Anleitung zur Wiederherstellung von XFS Filesystemen. Wie mein Vorredner allerdings auch schon bemerkt hat, hilft selbst xfs_repair mit der zusätzlichen Option L oft nicht weiter… So war auch bei mir eine meiner Partitionen auf einmal nicht mehr gemountet, obwohl diese an sich noch verfügbar war. Offensichtlich hatte xfs_repair auch Probleme mit einer LOG Datei, sodass ich das Tool mit dem Befehl -L erneut starten musste. Leider wurde mir dabei jedoch stets die Meldung „bad superblock“ ausgegeben. Nach einigen Versuchen habe ich nun ein Image der virtuellen Maschine von vor ein paar Tagen zurückgesichert. Jetzt läuft wieder alles… 😉

  3. Auch von mir gibt’s ein Lob für den Artikel. Wir setzen in der Firma auf über 1800 Servern xfs ein und hatten eigentlich nie ein Problem – und dann trifft mich so etwas zu Hause! Hatte aber das Glück, dass mein FS danach wieder problemlos funktioniert!
    Manchmal liegen Freud und Leid eben sehr nah beieinander. 🙂

  4. Hatte genau das gleiche Problem und es hat bei mir ohne Datenverlust funktioniert.

    Vielen Dank nochmal

  5. Hallo,

    hatte bei meinem Openmediavault-NAS auch das Problem, dass nach dem „sicheren Entfernen“ einer HDD aus einem RAID5-Array nicht mehr gemountet werden konnte: „XFS-Bibliothek kann nicht initialisiert werden“ und „Structure needs cleaning“.

    8x 4TB Daten ins Nirvana geschossen? Dank dieser Seite nicht. Alles wieder da 🙂

    Danke!!!

  6. Hallo,

    danke viel mal für diese sehr schöne ausführlichen Blog, ohne diesen wäre ich vermutlich sehr aufgeschmissen gewesen 🙂

    Hat alles wunderbar geklappt, aber blöde frage wie kommt es denn dazu, das dess Log gelöscht bzw kaputt gegangen ist ?

    Danke nochmals dafür 🙂