我有一个在IBM X3850 X5 type 7143
盒子上运行的 Linux 设备。CentOS 5。
它采用 RAID 5 配置,包含 6 个驱动器。其中 2 个驱动器出现故障。一个驱动器损坏,需要更换。另一个驱动器刚离线,然后又恢复在线。
离线驱动器恢复后,阵列恢复在线状态,此时我们更换了另一个驱动器以便重建。此时,所有驱动器都显示为在线,并且 RAID 阵列在 MegaRAID BIOS 中显示健康状态。
尽管如此,当我尝试启动 CentOS 时,我仍然会遇到错误。具体来说,我看到:
Loading dm-message.ko module
Loading dm-raid45.ko module
device-mapper: dm-raid45: initialized v0.25941
Waiting for driver initialization.
Scanning and configuring dmraid supported devices
Creating root device.
Mounting root filesystem.
kjournald starting. Commit interval 5 seconds.
EXT3-fs: mounted filesystem with ordered data mod.
Setting up other filesystems.
Setting up new root fs
setuproot: moving /dev failed: No such file or directory
no fstab.sys, mounting internal defaults
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
ERROR opening /dev/console: No such file or directory
Trying to use fd 0 instead
WARNING: can't access (null)
exec of init ((null)) failed!!!: Bad address
Kernel panic - not syncing: Attempting to kill init!
对这里可能发生的事情以及如何排除故障有什么想法吗?我不确定如果成功重建 RAID 阵列,为什么 CentOS 会出现问题。
答案1
您的初始 ramdisk 无法进行根枢转,因为您的根设备上存在文件系统错误。
您的阵列存在一致性问题,因为它已损坏,而不仅仅是在某一时刻降级。现在您已通过重新同步将这些文件系统不一致传播到整个阵列(实际上您对此无能为力),您需要在文件系统级别修复它们。
对根文件系统以及驻留在此阵列上的任何其他文件系统执行离线 fsck。您可能必须依靠备份来恢复您的机器。这是 RAID 10 胜过 RAID 5 或 6 的众多原因之一,也是 5 和 6 的采用率远低于过去的原因。话虽如此,RAID 永远不是备份,无论 RAID 级别如何,损坏的阵列上都会有损坏的文件系统。
答案2
因此,需要检查并修复 /etc/fstab 中对交换分区及其引用(如有必要)。至少从这个例子中可以明显看出这一点。因此,您不仅需要修复交换空间、检查 /etc/fstab 并修复任何引用(如有必要),还需要重新创建 initrd。
此链接上有示例 Centos5 修复