Я перепробовал много идей из сети, но ни одна из них не сработала.
Выглядит правильно и в хорошем состоянии.
**sudo btrfs filesystem show /dev/sda2**
failed to read /dev/sr0
Label: none uuid: daeedc21-7449-4b4a-ae55-e58a5a28a504
Total devices 1 FS bytes used 4.02GB
devid 1 size 32.60GB used 22.54GB path /dev/sda2
Когда я выполняю сканирование, оно возвращает, на первый взгляд, разумный ответ:
**sudo btrfsck -s /dev/sda2**
found 4321669120 bytes used err is 0
total csum bytes: 4187576
total tree bytes: 23400448
total fs tree bytes: 12083200
btree space waste bytes: 6789166
file data blocks allocated: 4786331648
referenced 4126896128
Btrfs Btrfs v0.19
Однако даже при использовании опции деградированного монтирования я все равно получаю сообщение об ошибке в журналах, и создается впечатление, что хороший суперблок не может быть найден.
**sudo mount -o degraded -t btrfs /dev/sda2 /home**
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Ошибка, обнаруженная в журнале:
[ 647.710937] device fsid 4a4b497421dceeda-4a5285a8ae555ae devid 1 transid 20368 /dev/sda2
[ 647.712760] btrfs: allowing degraded mounts
[ 647.714378] parent transid verify failed on 7051943936 wanted 20368 found 20375
[ 647.714784] parent transid verify failed on 7051943936 wanted 20368 found 20375
[ 647.715182] parent transid verify failed on 7051943936 wanted 20368 found 20375
[ 647.760270] btrfs: open_ctree failed
[ 1081.410560] device fsid 4a4b497421dceeda-4a5285a8ae555ae devid 1 transid 20368 /dev/sda2
У этого ноутбука не было внезапных отключений питания, он просто выключался и перезапускался как обычно после ежедневных обновлений. Я использую SSD-накопитель Kingston, но уже несколько месяцев, так что не думаю, что это должно быть фактором, способствующим этому.
Буду рад любым советам, так как я бы предпочел продолжать использовать btrfs, чем возвращаться к ext4.
решение1
У меня была точно такая же проблема, и я решил ее запуском sudo btrfsctl -a
(судя по всему, запуск sudo btrfs device scan
тоже сработает, хотя я не пробовал).
К сожалению, вам нужно запускать его после каждой загрузки. Я нашел автоматическое решениездесь, хотя, насколько я понимаю, это своего рода хак.
решение2
попробуйте смонтировать его-o recovery
Вы также можете собрать инструмент fsck.btrfs здесь
https://btrfs.wiki.kernel.org/index.php/Btrfs_source_repositories#btrfs-progs_Git_Repository
что позволит вам./btrfsck --repair /dev/devicename
примечание: вам также понадобитсяapt-get install build-essential
У меня возникали «баги» ядра, которых у вас нет, но после довольно долгого использования btrfs я, наконец, вернулся к ext4 из-за слишком большого количества проблем.