Hallo in die Runde,
ich wende mich an euch in der Hoffnung, dass vllt. jemand Zeit und Muße hat und mir einen Tipp geben kann, doch noch etwas von meinen Daten zu retten. Vorab: es ist vollkommen meine Schuld, RAID ist kein Backup, ich habe kein Backup, weil ich es einfach immer wieder aufgeschoben habe ... das war einfach komplett dumm. Kann man nicht anders beschreiben.
Aber von vorn, in Stichpunkten, damit es nicht ewig lang wird: - ich betreibe ein RAID5 mit einem Debian-Rechner als Software-RAID, ext4 Dateisystem - Speicher war komplett voll (0 Byte frei), daher habe ich eine neue Platte eingebunden (dazu die Partitionierung von bestehender Platte sdg auf neue Platte sdd geklont, per sgdisk, am Ende auch neue UUID generiert per "sgdisk -G /dev/sdd") - nach dem Rebuild sah ich, das eine Platte als "removed" markiert war, der Zustand des RAIDs war "clean, degraded" - die SMART-Werte der Platte sahen allerdings ganz okay aus, also habe ich die Platte wieder hinzugefügt ("mdadm /dev/md0 --re-add /dev/sdg1") - danach sah alles erstmal soweit gut aus (hier habe ich aber auch nicht versucht auf meine Daten zuzugreifen, kann also nichts genaues sagen) - vor dem resizen der ext4-Partition wollte ich einen fsck ausführen, wie es im Netz empfohlen wird, also "fsck.ext4 -f /dev/md0" ausgeführt - dabei bekam ich einen erkannten Fehler angezeigt, der sich wie folgt las (Beispiel aus einem Forum): Inode 96108844 has an invalid extent node (blk 1537738982, lblk 0) Clear<y> - das habe ich bejaht, dann passierte in dem Prozess gefühlt 3-5 Minuten nichts, dann brach dieser durch einen OOM Fehler ab - an der Stelle wurde es mir zu heiß und ich wollte erstmal auf die bereits bestellte Backup-Platte warten, da ich mir das Thema jetzt eh mal vornehmen wollte - ca. 15-20 Minuten später wollte ich per SMB auf Daten auf dem RAID zugereifen und bemerkte dass viele Directories komplett leer sind und viele Dateien korrupt, Bilder nur noch zu einem Drittel oder gar nicht mehr gelesen werden können etc. - im dmesg gab es daraufhin immer mal wieder drei verschiedene Arten von Fehlern zu lesen: [Sun Aug 4 15:15:18 2024] EXT4-fs error (device md0): htree_dirblock_to_tree:915: inode #158122016: block 1425161073: comm smbd: bad entry in directory: rec_len % 4 != 0 - offset=0, inode=2347148723, rec_len=23058, name_len=57, size=4096 [Sun Aug 4 15:15:20 2024] EXT4-fs error (device md0): ext4_ext_find_extent:889: inode #159777629: comm smbd: pblk 1278268966 bad header/extent: invalid magic - magic 31d1, entries 10605, max 17309(0), depth 59656(0) [Sun Aug 4 15:25:09 2024] EXT4-fs error (device md0): htree_dirblock_to_tree:915: inode #23117843: block 290551738: comm smbd: bad entry in directory: directory entry overrun - offset=0, inode=2642206138, rec_len=62956, name_len=71, size=4096
Ich habe /dev/md0 erstmal geunmounted und den Samba-Dienst gestoppt, mittlerweile den Rechner heruntergefahren. Ich warte jetzt auf die bestellten Backup-Platten. Um in der Zwischenzeit nicht ganz verrückt zu werden, versuche ich mir gerade alle Möglichkeiten zusammenzusuchen.
Erster Schritt sollte ein kompletter dd Dump auf eine Backupplatte sein. Den Dump wollte ich dann als Loopback mounten und schauen, was testdisk und photorec sagen, ob da überhaupt noch irgendwas zu holen ist. Falls ja, auf die zweite neue Platte die Wiederherstellung von Dateien als Ziel laufen lassen. Auf dem Dump hätte ich dann auch einen erneuten fsck (diesmal mit e2fsck) versucht, diesmal dann mit einem Verzeichnis als Zwischenspeicher für die gefundenen Konflikte (siehe: https://serverfault.com/a/9233 ).
Ein Bekannter gab mir nun aber den Hinweis, selbst das Ziehen eines Images erstmal sein zu lassen, da der RAID-Algorithmus auch beim lesenden Zugriff versuchen könnte, Daten zu verändern. Das wäre natürlich der absolute GAU.
Seht ihr hier Chancen, dass man das ext4 System wieder hinbekommt und auf die Daten wieder korrekt zugreifen kann? Oder ist mit so einem abgebrochenen Check vermutlich schon zu viel zerstört? Habt ihr noch andere Ideen für Tools oder Möglichkeiten, was man tun könnte?
Ich bedanke mich herzlich im Voraus bei euch!
Beste Grüße Max