再次因为内核崩溃导致 BtrFS 文件系统出问题

前几天升级到 openSUSE Tumbleweed 20201130 快照之后就频繁遇到内核崩溃的问题。也就是说 Linux Kernel 5.9.11 带来了这个情况。我没开启内存转储,反正也看不懂。于是紧接着升级到 Linux Kernel 5.9.12,Kernal Panic 没那么频繁了,但是一天里总会遇到那么一两次。这一波的内核崩溃也同样引发了 BtrFS 文件系统故障,跟上一次还是有点不一样。

正在使用电脑的时候突然就会停止响应,绝大多数时候还能看到键盘上的大写字母锁定指示灯缓慢闪烁。大约一分钟后自动关机并重启。系统启动时会卡死在

sd 0:0:0:0: [sda] Attached SCSI removable disk

还有时候重启也只是闪一下就立即再重启(1秒钟,能看到灯亮了一瞬间)。这时候就需要长按电源键来强制彻底关机了。之后多半能够再开机进入启动程序。

因为系统启动不起来,所以还是同样的需要用安装 DVD 镜像来制作一个 U 盘安装来进入 Rescue 模式。进入 Rescue 模式后使用空密码登录 root 帐户开始检查和尝试修复。有了之前的经验,先检查是不是根分区所在的 BtrFS 文件系统的问题。

# btrfs check /dev/nvme0n1p6

检查显示没问题。然后尝试挂载到 /mnt,

# mount -o recovery /dev/nvme0n1p6 /mnt
mount.bin: /mnt: can't read superblock on /dev/nvme0n1p6

所以虽然 btrfs 检查没问题,但是无法挂载。看来这个 BtrFS 系统的确还不够成熟。

下面尝试修复,

# btrfs rescue super-recover -v /dev/nvme0n1p6

结果它说 “All supers are valid, no need to recover”。

找了找论坛,说是下面这个指令多半有用,

# btrfs rescue zero-log /dev/nvme0n1p6

接着再挂载试试看,

# mount -o recovery /dev/nvme0n1p6 /mnt

成功了。还真有用。

不过也不能说是 Kernel Panic 造成的 BtrFS 损坏。它可能只是间接原因,而直接原因可能是直接断电关机吧。

果然 Tumbleweed 还是会偶尔出点儿让人崩溃的问题。可是貌似直接换软件源来切换到 Leap 15.2 并不是很保险,决定还是等等看。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/root-partition-btrfs-superblock-problem/>。转载请保留此信息及相应链接。

雁过留声,人过留名

您的邮箱地址不会被公开。 必填项已用 * 标注

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