Исправить btrfs "btrfs родительская транзитная проверка завершилась неудачно..."

btrfs fi show отображает всю файловую систему btrfs, но также много ошибок, таких как:

не удалось выполнить родительскую проверку 109973766144 разыскивается 1823 найдено 1821

Файловая система все еще может быть размонтирована и перемонтирована.

5 ответов

Остерегайтесь btrfs-zero-log

В документации по btrfs-zero-log четко указано, что это не общий инструмент для использования:

btrfs-zero-log - это не универсальный инструмент для исправления всего, несмотря на то, что многие люди считают и заявляют в Интернете . Обычно вам не нужно его использовать.

У этих инструментов есть только случай использования: когда у вас есть BTRFS: failed to read log tree журналы.

Исправление ошибок родительской проверки transid с помощью

Ядро Linux 3.2, представленное в январе 2012 г. recoveryвариант. Затем, в мае 2016 года, версия 4.6 была заменена на usebackuproot. Вы также можете увидеть фиксацию, если вам интересно.

В документации четко объясняется, что он делает:

      usebackuproot
nousebackuproot

    (since: 4.6, default: off)

    Enable autorecovery attempts if a bad tree root is found at mount time.
    Currently this scans a backup list of several previous tree roots and
    tries to use the first readable. This can be used with read-only mounts as well.

    Note: This option has replaced recovery.

В примечании к официальному разделу часто задаваемых вопросов говорится, что это правильный способ исправить эту ошибку "родительского transid":

Как мне исправить ошибку «Ошибка проверки родительского транспортного средства»?

Например:

parent transid verify failed on 29360128 wanted 1486656 found 1486662

Если вторые два числа (требуется 1486656 и найдено 1486662) близки друг к другу (в пределах 20 друг от друга), то монтаж с помощью

-o ro,usebackuproot

может помочь. Если это удалось с монтированием только для чтения, попробуйте еще раз без ro вариант, для монтирования чтения-записи.

Если usebackuproot не работает, значит, FS в ее текущем состоянии невозможно восстановить с помощью текущих инструментов. Вы должны использовать btrfs restore для обновления резервных копий, а затем восстановления из них.

Команды для использования

Эти команды - всего лишь пример неисправного диска btrfs при установке Fedora. Заменять /dev/sda2 с вашим устройством и /sysroot с вашей точкой монтирования

Сначала попробуйте в режиме только для чтения:

      mount -t btrfs -o ro,usebackuproot /dev/sda2 /sysroot

Если это сработает, попробуйте еще раз без команды readonly:

      mount -t btrfs -o usebackuproot /dev/sda2 /sysroot

Если это сработает, вы сможете загрузить свой Linux.

Сначала запустите эту команду:

sudo btrfs rescue super-recover -v /dev/sda2

Если он сообщает вам: «Все надстройки действительны, восстановление не требуется» , вам необходимо выполнить следующую команду, чтобы очистить дерево журнала файловой системы:

sudo btrfs rescue zero-log /dev/sda2

Теперь вы сможете установить свой Btrfs файловая система.

В интернете я нашел много ответов, рекомендующих очистить btrfs внутренний журнал с помощью btrfs-zero-log, я думал btrfsck может помочь, но в конце концов я обнаружил официальную рекомендацию, которая заключается в том, чтобы сначала просто начать btrfs scrub прежде чем предпринимать другие действия!

Так что просто беги btrfs scrub /path/to/mountpoint если вы тоже можете смонтировать свою файловую систему. И, возможно, это работает как в моем случае.

Я столкнулся с похожей ситуацией:

  1. журналы были полны parent transid verify failed on 109973766144 wanted 1823 found 1821
  2. Dmesg был полон BTRFS info (device sda): no csum found for inode 16485445 start 73728 а также BTRFS warning (device sda): csum failed ino 16485465 off 36864 csum 2268363541 expected csum 0

конфигурация моей системы

  1. NAS с 3 акциями NFS
  2. Файловая система BTRFS
  3. Операционная система Rockstor

  4. Настройка RAID 10

Дополнительная информация

  1. крепление btrfs стало доступным только для чтения

  2. Сбой btrfs-scrub с ERROR: scrubbing /dev/md124p2 failed for device id 1: ret=-1, errno=5

Я решил это, удалив экспорт NFS т.е. из / etc / export / а потом перемонтируем тома и вуаля все стало ок

ОБНОВЛЕНИЕ 29 января 2018 года: после нескольких дней работы оно вернулось в прежнее состояние

Аналогичная / такая же проблема здесь:

parent transid verify failed on 29605888 wanted 50 found 46


Для меня btrfs больше не монтируется, поэтому btrfs scrubнет варианта. Также мой/etc/exports пусты.

Я попытался btrfsck --init-extent-tree /dev/sda4 но я все равно получаю ошибки.

    ...
    btrfs check(main+0x82)[0x411ba2]
    /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f8210fab555]
    btrfs check[0x411ca8]
    Aborted
    #

Ссылка на снимок экрана (обновление невозможно): снимок экрана

Кажется, единственное решение - восстановить данные на другой диск с помощью

btrfs restore /dev/sda4 /mnt/anotherdisk/folder

.

Другие вопросы по тегам