Исправить 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
если вы тоже можете смонтировать свою файловую систему. И, возможно, это работает как в моем случае.
Я столкнулся с похожей ситуацией:
- журналы были полны
parent transid verify failed on 109973766144 wanted 1823 found 1821
- 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
конфигурация моей системы
- NAS с 3 акциями NFS
- Файловая система BTRFS
Операционная система Rockstor
Настройка RAID 10
Дополнительная информация
крепление btrfs стало доступным только для чтения
Сбой 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
.