2

Я получил поврежденный раздел BTRFS и

mount -o usebackuproot ...

не работает:

[ 9252.141767] BTRFS info (device dm-1): trying to use backup root at mount time
[ 9252.141779] BTRFS info (device dm-1): disabling disk space caching
[ 9252.141784] BTRFS info (device dm-1): has skinny extents
[ 9252.184586] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.186302] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.186306] BTRFS warning (device dm-1): failed to read tree root
[ 9252.186729] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.187091] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.187094] BTRFS warning (device dm-1): failed to read tree root
[ 9252.187372] BTRFS error (device dm-1): parent transid verify failed on 7777213923328 wanted 100335 found 89750
[ 9252.187589] BTRFS error (device dm-1): parent transid verify failed on 7777213923328 wanted 100335 found 89750
[ 9252.187592] BTRFS warning (device dm-1): failed to read tree root
[ 9252.187948] BTRFS error (device dm-1): parent transid verify failed on 7777188921344 wanted 100334 found 100336
[ 9252.188281] BTRFS error (device dm-1): parent transid verify failed on 7777188921344 wanted 100334 found 100336
[ 9252.188284] BTRFS warning (device dm-1): failed to read tree root
[ 9252.188661] BTRFS error (device dm-1): parent transid verify failed on 7260661022720 wanted 100333 found 96460
[ 9252.189025] BTRFS error (device dm-1): parent transid verify failed on 7260661022720 wanted 100333 found 96460
[ 9252.189029] BTRFS warning (device dm-1): failed to read tree root
[ 9252.236361] BTRFS: open_ctree failed

Проверка btrfs тоже не работает:

btrfs check /dev/mapper/media
parent transid verify failed on 7777276116992 wanted 100336 found 89751
parent transid verify failed on 7777276116992 wanted 100336 found 89751
parent transid verify failed on 7777276116992 wanted 100336 found 89751
parent transid verify failed on 7777276116992 wanted 100336 found 89751
Ignoring transid failure
Couldn't setup extent tree
Couldn't open file system

Я нашел несколько блоков корней деревьев, которые я мог бы использовать с " btrfs restore ":

btrfs restore -t 8889016483840 -D -i -v /dev/mapper/media /dev/null | wc -l
2264442

Но у меня проблема здесь. Мое хранилище btrfs очень большое, его объем превышает 20 ТБ, и у меня нет резервных дисков такого размера для резервного копирования и восстановления. Можно ли восстановить такую файловую систему или переключиться на заданный корневой блок дерева "на месте", не переформатируя его?

1 ответ1

1

Во-первых, убедитесь, что у вас есть действительные суперблоки:

btrfs rescue super-recover -v <device>

Использование:

btrfs find-root <device>

найти лучший корень дерева для ремонта:

  1. Корневой узел должен иметь самый высокий уровень
  2. Чем выше поколение, тем выше вероятность того, что фс можно будет восстановить с помощью этого корня.

Примечание: в вашем сообщении об ошибке wanted является генерация в журнале, а found является генерация на основе корня дерева.

Найдите самый чистый вывод из следующих команд:

btrfs check --tree-root <block> --super <sup>

Куда:

  • <sup> равно 0 , 1 или 2 .
  • <block> задается btrfs find-root (примечание: не умножайте на размер блока, даже если в руководстве написано <bytenr>)

Затем восстановите файловую систему следующим образом:

btrfs check --repair --tree-root <block> --super <sup>

Обратите внимание на добавление --repair для фактического изменения файловой системы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .