可用的ext3分区被fsck破坏了

我有几个系统的ext3 lv /工作得很好,直到fsck'd – 然后他们是不可恢复的损坏。

我有什么希望修复这些系统,并且单独出了什么问题呢?

这些都是以2.6个centos-ish盒子开头的旧系统,有几个单独的ext3逻辑卷: //var/unused 。 通过在/unused分区上安装,然后启动到新的安装,它们被迁移到现代Linux运行内核3.4。 一旦运行,旧的//varlvremove'd ,并且新的根被重新命名和lvextend'ed吸收空间。 从我已经收集到的信息来看,这个新的根源是在lvextend之后的resize2fs的生活。 (这可能是问题的根源。)

他们都运行良好,直到fsck被迫,在这一点fsck抱怨强烈,并呈现系统无法启动(恐慌)。 很多错误,如:

 Inode 12345 has INDEX_FL flag set but is not a directory Inode 67890, i_blocks is 1307617, should be 0. Inode 34567, i_size is 5616670468207675, should be 0. ... and on and on, followed by lots of multiply claimed inodes, sometimes with ... Error storing directory block information (inode=76543, block=0, num=98765432): Memory allocation failed 

在上下文中,原先的分区是在CentOS的e2fsprogs-1.39-20, resize2fs在1.42.9-4下创build的,而目前的系统是在CentOS的较旧的(不问)1.41.12-12。

要明确回答你的问题:

 Q: What hope do I have of repairing these systems? A: Quite good since the fs is readable, but I'd plan on abandoning the current hard drive(s). Q: Separately, what went wrong? A: Unless you can definitively diagnose a hardware error (likely), you'll probably never know. You don't mention if you've looked for low-level I/O errors in the system log. 

由于文件系统在fsck之前工作,所以我会用一个新的物理卷(一个实际的新的可靠的硬盘)来扩展VG,在新的PV上定义一个新的LV,复制旧的硬盘,或至less运行制造商的诊断,擦拭和重新格式化。