我已经拖曳了邮件列表,最后在Ubuntu的btrfs
页面上结束了,我感到btrfs
仍然没有完整的修复工具(如其主页所示)。即使几个月前,它仍被指定为Oracle Linux的默认版本,并且包含在许多发行版中。
因此,替代地,是否存在有关如何修复的故障排除指南btrfs
?
如果失败,将备份复制到FS上方是否可以解决问题?(是否需要删除快照以节省空间?还是删除损坏?)我是否应该尝试还原到以前的快照,然后从备份中还原丢失的文件?还是从@和@home快照还原丢失的文件?
注意:这是一个一般性问题。目前,我故意忽略了我的确切FS问题;我想找到常规/规范的工作流程和故障排除指南。
(好吧,好吧-这是更多细节;)):
在挂起的关机期间我关闭了电源,因此出现系统不稳定的情况。系统将启动并运行一段时间,直到写入足够的数据并冻结为止。上次我刚打开Thunderbird。这些需要更多的硬重置,并且可能需要更多的损坏。
sudo btrfsck /dev/sda1
在一些错误之间振荡-通常是第一次
root 338 inode 7861227 errors 1000
root 338 inode 7904568 errors 1000
root 338 inode 7955174 errors 400
found 46242054144 bytes used err is 1
total csum bytes: 43112400
total tree bytes: 2074640384
total fs tree bytes: 1889853440
btree space waste bytes: 547680627
file data blocks allocated: 110756974592
referenced 68393684992
Btrfs Btrfs v0.19
噢,现在盖蒂果味十足(我只希望在parent transid verify failed
这里看到...)
parent transid verify failed on 14266105856 wanted 464223 found 464221
parent transid verify failed on 14266105856 wanted 464223 found 464221
Extent back ref already exists for 14261530624 parent 0 root 256
leaf parent key incorrect 14261751808
bad block 14261751808
Extent back ref already exists for 66455355392 parent 0 root 2
Extent back ref already exists for 66455257088 parent 0 root 2
Extent back ref already exists for 14257274880 parent 0 root 2
block 14262571008 rec extent_item_refs 2, passed 2
block 14262575104 rec extent_item_refs 1, passed 1
block 14262579200 rec extent_item_refs 1, passed 1
Extent back ref already exists for 14262579200 parent 0 root 257
leaf 14263906304 items 50 free space 132 generation 464224 owner 2
fs uuid 7d049403-cf6e-4b52-a624-32051e1f5b2a
chunk uuid be6f8f93-320c-4465-85d6-f53907698c32
item 0 key (14263341056 EXTENT_ITEM 4096) itemoff 3944 itemsize 51
extent refs 1 gen 464168 flags 2
tree block key (8332576 1 0) level 0
tree block backref root 257
item 1 key (14263345152 EXTENT_ITEM 4096) itemoff 3893 itemsize 51
extent refs 1 gen 464168 flags 2
tree block key (8332586 c 8332543) level 0
tree block backref root 257
failed to find block number 14263525376
(当然,全部内容都进行了概括;我从来不想让这些细节让您不知所措:))
现在,我的最终执行权让我熟悉的:
parent transid verify failed on 14265458688 wanted 464230 found 464221
parent transid verify failed on 14265458688 wanted 464230 found 464221
parent transid verify failed on 14265458688 wanted 464230 found 464223
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
,最后包括可选的随机错误。哦,快乐的喜悦。请注意,这些verify failed
变化是随着数据写入驱动器而发生的。
另一个随机错误:
btrfsck: disk-io.c:412: find_and_setup_root: Assertion `!(!root->node)' failed.