SLES12 SP1 defektes BTRFS open_ctree fehlgeschlagen

831
Lukas Florea

Wir haben ein SLES12 SP1-System, das als VM in einer MS HyperV-Umgebung ausgeführt wird.

Nach einem Neustart startet das System nicht mehr, da vmlinux nicht mehr vorhanden ist. Grub sagt, "Sie müssen zuerst den Linux-Kernel laden" oder so (ich konnte die genaue Fehlermeldung nicht kopieren). Nachdem ich tiefer gegraben und versucht hatte, einen älteren Kernel zu laden, wurde mir klar, dass im btrfs-System noch Transaktionen hängen, zumindest dort Prüfsummen beschädigt haben.

Also habe ich die neueste OpenSUSE Rescue-CD heruntergeladen und versucht, die Geräte zu mounten. Ich kann die Home-Partition mounten, aber die Partition mit / boot usw. wird nicht gemountet:

linux@localhost:~> sudo mount -t btrfs -o ro,usebackuproot /dev/sda2 /mnt mount: /mnt: wrong fs type, bad option, bad superblock on /dev/sda2, missing codepage or helper program, or other error. 

Also bin ich diesen Schritten gefolgt: https://lists.opensuse.org/opensuse/2017-02/msg00930.html

Das Mounten funktionierte überhaupt nicht, ich habe verschiedene Optionen ausprobiert, wie zum Beispiel Cache deaktivieren usw., das Scrubben funktionierte auch nicht.

btrfs check sagt:

linux@localhost:~> sudo btrfs check /dev/sda2 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found E4E3BDB6 wanted 00000000 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 bytenr mismatch, want=75659116544, have=5432601639048425051 ERROR: cannot open file system 

Das Wiederherstellen funktioniert auch nicht:

linux@localhost:~> sudo btrfs restore /dev/sda2 /run/media/linux/c03ad26a-a896-468d-bf9d-9953f87b2661/Administrator/Backup_sda2/ checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found E4E3BDB6 wanted 00000000 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 bytenr mismatch, want=75659116544, have=5432601639048425051 Could not open root, trying backup super checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found E4E3BDB6 wanted 00000000 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 bytenr mismatch, want=75659116544, have=5432601639048425051 Could not open root, trying backup super ERROR: superblock bytenr 274877906944 is larger than device size 42952818688 Could not open root, trying backup super 

Also habe ich das Image mit dd gesichert.

super erholen:

linux@localhost:~> sudo btrfs rescue super-recover /dev/sda2  All supers are valid, no need to recover 

btrfs rescue zero-log:

linux@localhost:~> sudo btrfs rescue zero-log /dev/sda2 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found E4E3BDB6 wanted 00000000 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 bytenr mismatch, want=75659116544, have=5432601639048425051 ERROR: could not open ctree 

Die Chunk-Recover funktionierte auch nicht, aber ich versuchte trotzdem nachzusteigen:

linux@localhost:~> sudo btrfs rescue chunk-recover /dev/sda2 Scanning: DONE in dev0  checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found E4E3BDB6 wanted 00000000 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 bytenr mismatch, want=75659116544, have=5432601639048425051 open with broken chunk error Chunk tree recovery failed linux@localhost:~> sudo mount -t btrfs -o ro,usebackuproot /dev/sda2 /mnt mount: /mnt: wrong fs type, bad option, bad superblock on /dev/sda2, missing codepage or helper program, or other error. 

Reparatur überprüfen:

linux@localhost:~> sudo btrfs check --repair /dev/sda2 enabling repair mode checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found E4E3BDB6 wanted 00000000 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 bytenr mismatch, want=75659116544, have=5432601639048425051 ERROR: cannot open file system 

Ich bekomme den gleichen Fehler mit init-extend-tree:

linux@localhost:~> sudo btrfs check --repair --init-extent-tree /dev/sda2 enabling repair mode Checking filesystem on /dev/sda2 UUID: b70dc1a4-4c19-446c-98c9-eeee88c4fd47 Creating a new extent tree checksum verify failed on 75638358016 found 9B64BB37 wanted 6156F702 checksum verify failed on 75638358016 found 9B64BB37 wanted 6156F702 checksum verify failed on 75638358016 found E4E3BDB6 wanted 00000000 checksum verify failed on 75638358016 found 9B64BB37 wanted 6156F702 bytenr mismatch, want=75638358016, have=267958633426704061 Error reading tree block error pinning down used bytes ERROR: attempt to start transaction over already running one extent buffer leak: start 89771360256 len 16384 

auch init-csum-tree:

linux@localhost:~> sudo btrfs check --repair --init-csum-tree /dev/sda2 enabling repair mode Creating a new CRC tree checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 checksum verify failed on 75659116544 found E4E3BDB6 wanted 00000000 checksum verify failed on 75659116544 found 61415E80 wanted 96E73A64 bytenr mismatch, want=75659116544, have=5432601639048425051 ERROR: cannot open file system 

Ich habe keine weiteren Informationen zu diesem Fehler gefunden, also versuche ich, Hilfe zum Stack-Austausch zu erhalten, da ich weiß, dass es zu diesem Thema bereits Fragen und Antworten gibt. Wir haben nur eine Sicherungskopie des Host-Servers, also möchten wir diese unbedingt ausführen. Es muss einen besseren Weg geben, um die Btrfs-Partition wiederherzustellen :(

Danke im Voraus!

1

0 Antworten auf die Frage