记一次莫名修复的BtrFS文件系统问题

最近一段时间经常遭遇 kernel panic(Linux 内核崩溃)。电脑用着用着就没反应了。有时候键盘上的大小写锁定键等指示灯还是不停闪烁,然后过几分钟就自动重启;有时候这些症状也没有,而只是 CPU 风扇开始加马力,直到按电源键硬关机。这种非正常关机(unclean shutdown)还是会造成其它问题的。最常见的就是文件系统被迫坏。然后今天就碰到了我的根分区的 BtrFS 系统在重启过程中报告说 “Csum didn’t match”。根分区无法挂载。接着就只能进入应急模式了。

但是这个应急模式似乎很简陋,很多指令都没有。尝试了网上的几种修复手段都不管用。然后在 openSUSE 社区的 Carlos 建议下用安装光盘上的恢复模式看了看。可是他跟很多人一样,都说自从用 BtrFS 以来就没有遇到过问题。(果然还是我人品太差 :P)

然后又在手机上搜到了 BtrFS 的维基,其 Problem_FAQ 的第一条就是说遇到无法挂载的情况怎么办。然后我就在使用USB安装盘启动进入恢复模式的情况下试了试 mountrecovery 选项,

# mount -o recovery /dev/nvme0n1p6 /mnt

居然可以列表 /mnt 下面挂载的根分区的内容。看来文件系统还没问题,仅仅是 BtrFS 出了点故障。然后就 umount。打算在这个环境下使用 btrfscheck 指令来看看怎么样。结果,

# btrfs check /dev/nvme0n1p6

直接报告没有任何问题。

完全莫名其妙,我只能猜测是之前使用 recovery 选项的挂载操作让 BtrFS 系统执行了自我修复。总不能是因为这个里面的 btrfs check 比系统无法启动显示的那个要强大吧?©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/a-csum-didnot-match-incident-of-btrfs/>。转载请保留此信息及相应链接。

雁过留声,人过留名

电子邮件地址不会被公开。 必填项已用*标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据