记一次莫名修复的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/>。转载请保留此信息及相应链接。

1 条关于 “记一次莫名修复的BtrFS文件系统问题” 的评论

  1. 引用通告: 再次因为内核崩溃导致 BtrFS 文件系统出问题 | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)