我尝试过网上的许多想法,但都没有用。
这看起来正确且井然有序
**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 驱动器,但已经用了几个月了,所以不认为这应该是一个促成因素。
非常感谢任何指点,因为我宁愿继续使用 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
我遇到了内核“BUG”,而你没有遇到,但是在使用 btrfs 一段时间后,我最终在解决太多问题后回到了 ext4。