我因突然断电而导致文件系统损坏。启动期间,报告以下错误。
error: unknown filesystem.
Entering rescue mode...
grub rescue> _"
该主板是使用 M.2 2242 SSD 作为存储的 Intel NUC。对于典型的 Ubuntu 安装,SSD 被分区为 sda1、sda2 和 sda5。我运行了 liveCD 并尝试 fsck ext4 文件系统,但tune2fs -l /dev/sda1
抱怨了。
Bad magic number in super-block ... couldn't find valid filesystem superblock.
我知道断电可能会导致文件系统问题。但超级块怎么会丢失呢?我已经采取了以下措施来减少腐败的机会,但这种情况仍然经常发生。
- 禁用磁盘写入缓存。 (
hdparm -W 0 /dev/sda
,每次启动时) - KVM 虚拟机磁盘映像缓存模式设置为“directsync”。
哈尔夫加尔和曹说在电压下降期间,DIMM 更加敏感并且内容是垃圾;而 SSD 的使用寿命更长,因此会从 DIMM 复制错误的数据。这张纸给出了 SSD 发生故障的 6 种方式,其中包括元数据 (FTL) 损坏。我想知道如何确定我的案例中发生了什么。
有人可以举出损坏超级块的示例场景吗?
答案1
如果您的主电源经常出现电压下降或噪音的情况获取在线或在线互动式 UPS。
看https://en.wikipedia.org/wiki/Uninterruptible_power_supply
没有软件解决方案可以解决这个问题。
至于你的问题,超级块只是数据。它可能像任何其他数据一样被损坏。当它被故意写入时,或者如果RAM包含损坏的数据(例如,由于电压下降)并且该数据被损坏,导致写入超级块扇区而不是预期扇区。
您可能无法准确确定您的情况发生了什么,因为瞬态垃圾是 a) 垃圾,最重要的是 b) 瞬态。