每月或有时每周都会出现一次 Ext2-fs 错误

每月或有时每周都会出现一次 Ext2-fs 错误

我收到一条非常奇怪的错误消息,导致整个系统崩溃,并将文件系统重新挂载为只读。这一切都是很久以前的事情了,当时我安装了一个有问题的 2 美元 ebay PCI 调制解调器,每个月都会出现内核恐慌,输出内容非常大。后来换了一块新硬盘并进行了 dist-upgrade,我发现错误非常零散,而且实际打印的内容要小得多。(对我来说,它仍然是垃圾 - 即使在彻底谷歌搜索之后)

这个系统在启动 Debian 时就被‘诅咒’了,我本来想把这台电脑扔掉,再买一台新的...但是因为这只是一个 Linux 问题,所以一定是软件问题!!

基本上就是这样(我现在发布是因为我今天和昨天都崩溃了):

EXT2-fs error (device hda1): ext2_check_page: bad entry in directory #5898285: rec_len is smaller than minimal - offset=0, inode=5898285, rec_len=8, name_len=1 Remounting filesystem read-only

发生了什么事?然后我必须拔掉电源,重新启动,fsck -y,重新启动,然后通常可以暂时解决问题。

如果能解决这个问题我会非常高兴。

在此先感谢你们对此事提供的帮助。

- 编辑:

现在运行 updatedb 每次都会导致此错误(两次),这意味着它是可重现和可跟踪的!(现在只需修复它......)

是不是该买一台新电脑了?

- 编辑:

resize2fs /dev/hda1说它已经是正确的块长,并且 badblocks 没有返回任何东西(它不是这样的吗?)

- 编辑:

是否有东西损坏了我所有的新磁盘?硬件问题 - 有人说可能是磁盘控制器或 BIOS 选项 - 有没有什么办法可以检查这一点?

谢谢。

答案1

这听起来确实像是文件系统对分区大小的想法与实际分区大小不同。您说您安装了新硬盘;如果您使用 dd(或其他不涉及新磁盘上的 mkfs 的方法)将文件系统转移到新硬盘,则可能会发生这种情况。

尝试resize2fs /dev/hda1在救援环境中运行(在 之后fsck -f等),看看文件系统大小是否发生变化。我猜它可能会改变,你的问题会神秘地消失。

答案2

我确信您的磁盘包含坏扇区。您可以使用以下命令进行验证坏块http://en.wikipedia.org/wiki/Badblocks

男人坏块:

badblocks  is  used  to  search  for bad blocks on a device
(usually a disk partition).  device is the special file corresponding
to the device (e.g /dev/hdc1).  last-block is the last block to be checked; 
if it is not specified, the last block on the device is used as a default. 
start-block is an optional parameter specifying the starting block number
for the test, which allows the  testing to start in the middle of the disk.
If it is not specified the first block on the disk is used as a default.

如果你真的要通过,你应该选择-w选项(读写测试)进行 2-3 次,但一定要备份数据,因为读/写测试会破坏物理介质上的数据。

注意:您可能想将 ext* 设置为忽略坏块,但我强烈建议您更换驱动器。驱动器通常默认包含一些坏块,但如果操作系统想要在已知坏块上写入数据,内部逻辑会动态重新定位数据。此重新定位的区域是固定的,因此如果已满,驱动器将停止重新定位扇区。这就是您现在所处的阶段,因此您可以预期扇区会越来越快地出现故障。如果您的磁盘有任何保证,您应该更换磁盘,如果没有,请购买新磁盘。

您还可以考虑设置 RAID1(从新磁盘)并定期创建备份(对于磁盘介质不是存储在主题中的实际服务器/工作站上或附近)

注2:尽管内存问题并不总是严格地表现为相同的错误,但您也可以运行内存测试以确保您的服务器没有患上“老年痴呆症”:)

相关内容