上周上班时,我们的 Linux 服务器 (CentOS 5.5) 对登录尝试没有响应,所以我不得不硬关闭它。拔出几个磁盘后,启动时它报告 RAID 阵列降级,并且 fsck -p 失败,提示进行手动 fsck。该服务器在硬件 RAID 5 阵列中有 5 个 2TB 磁盘。软件方面,我相信这只是安排成一个大的逻辑卷,其中包括 /boot / 和 /home,以及用于交换的第二个逻辑卷。
我重新导入了已移除磁盘上的 RAID 配置,此时 RAID 阵列仍显示降级状态,并且机器在启动时仍返回 fsck 错误。第五个磁盘开始自动重建,但失败了,可能是由于文件系统损坏。幸运的是,我能够使用救援模式从服务器恢复 2+ TB 的数据(唷!)。然后我在逻辑卷上运行 fsck -yf,这做了一些更改。现在 fsck 在启动时返回干净,但是当我进入 Cent OS 登录屏幕时,我看到的是替换所有字体的框。弹出某种错误阻止我登录,但我无法读取错误,因为它也是所有框。我也无法通过文本终端登录(不断重新提示登录:,没有机会输入密码)或 SSH(服务器响应,但报告密码错误)。
此时,我尝试运行 fsck,但它告诉我文件系统是干净的。我仍然能够从安装 DVD 进入救援模式的文件系统,而且我查看过的所有文件似乎都没有问题。我真的宁愿避免完全重新安装,因为这需要大量重新安装和复制数据,而且从救援模式文件看起来是完整的。我是否通过在逻辑卷上运行 fsck 或让 RAID 自动重建而完全搞砸了它?您对如何继续有什么建议?
答案1
RAID 系统 (MD) 对文件系统一无所知,因此如果重建失败,则不是因为文件系统损坏,而更可能是由于硬件错误。可能是您的某个磁盘出现故障。使用 smartmontools 检查 SMART 错误并运行自检。
当您运行 fsck -yf 时,它将尽力修复文件系统,在此过程中它可能会删除有问题的 inode(文件)(某些文件可能会移动到 lost+found 文件夹)。也许您在图形登录中看到的框是由于 fsck 删除了所需文件。无法通过控制台或 SSH 登录也可能指向丢失的文件。如果您启动到恢复模式,您是否能够获得 shell 访问权限?您可以尝试通过从备份中恢复 OS 文件或强制重新安装软件包来修复问题。
但是,此时,也许更换磁盘并进行全新重新安装会更好。