SLES12 SP1 сломан BTRFS open_ctree не удалось

717
Lukas Florea

У нас есть система SLES12 SP1, работающая в качестве виртуальной машины в среде MS HyperV.

После перезагрузки система больше не загружается, потому что vmlinux больше не существует. Grub говорит: «Сначала нужно загрузить ядро ​​Linux» или около того (я не смог скопировать точное сообщение об ошибке). После того, как я копнул глубже и попытался загрузить старое ядро, я понял, что в системе btrfs все еще остаются транзакции, по крайней мере, искажающие контрольные суммы.

Поэтому я скачал последнюю версию OpenSUSE Rescue CD и попытался смонтировать устройства. Я могу смонтировать домашний раздел, но раздел с / boot и т. Д. Не будет монтироваться:

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. 

Поэтому я выполнил следующие действия: https://lists.opensuse.org/opensuse/2017-02/msg00930.html

Монтирование не работает вообще, я пробовал разные варианты, такие как отключение кэша и т. Д., Поэтому очистка тоже не работала.

Проверка btrfs говорит:

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 

Восстановление тоже не работает:

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 

Поэтому я сделал резервную копию образа с помощью дд.

супер-восстановления:

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

btrfs спасение нулевого журнала:

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 

Восстановление чанка тоже не сработало, но я все равно попытался смонтировать:

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. 

проверить ремонт:

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 

Я получаю почти ту же ошибку с init-exten-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 

также 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 

Я не нашел больше информации об этой ошибке, поэтому я пытаюсь получить некоторую помощь по обмену стека, зная, что уже есть некоторые вопросы и ответы по этой теме. У нас есть только резервная копия хост-сервера, поэтому мы действительно хотим, чтобы это работало. Должен быть лучший способ восстановить раздел btrfs :(

Заранее спасибо!

1

0 ответов на вопрос

Похожие вопросы