我的情况和这个不一样 。
我有一个有3个硬盘的CentOS系统,以及下列软件RAIDarrays:
/boot on RAID 1 over 2 disks / on RAID 5 over 3 disks swap on RAID 0 over 2 disks (I believe)
我的第三个驱动器失败 一开始没什么大不了的,arrays还在工作。 但是在1天之后,当我准备好交换坏磁盘时,系统无法使用新磁盘启动:
md: md2: raid array is not clean -- starting background reconstruction raid5: cannot start dirty degraded array for md2 raid5: failed to run raid set md2 [...] Kernel panic
它停在那里。 我没有壳。 我试过但在救援磁盘上,但我不知道如何去从那里:我的数组没有看到,所以我不能重build它们。 完全相同的问题,如果我用2个磁盘启动,或作为我的第三个驱动器坏磁盘。
我现在如何修复arrays,我有一个新的驱动器?
不知何故,你已经设法停止在一个肮脏的状态arrays(这意味着RAID系统不能确定所有磁盘上的奇偶校验正常)。 如果机器突然关机,或者发生其他写入洞事件,则可能发生这种情况。
我怀疑使用–force选项从救援CD手动重新组装arrays可能会起作用,如下所示:
mdadm --assemble --force /dev/md2 /dev/sda2 /dev/sdb2 missing
(使用组成RAID-5arrays的现有设备replace/ dev / sd …)。 假设这个工作正常,/ proc / mdstat显示数组(处于降级状态),那么你可以添加新的分区,如下所示:
mdadm /dev/md2 --add /dev/sdc2
如果最初的强制集合不能达到目的,那么你就是在这条小溪上。 与Google几分钟后,发现http://www.linuxforums.org/forum/servers/77867-eeek-cant-assemble-degraded-dirty-raid6-array.html似乎处理类似的问题,所以它可能值得尝试在那里工作( echo "clean" > /sys/block/md0/md/array_state
),但这是一个稍微丑陋的做事方式。
不pipe你如何设置RAID,事实上,它是肮脏的和退化的意味着内容真的不能再信任。 该文件系统可能有元数据损坏(fsck 应该修复),或者一个或多个文件的内容可能被破坏(如果不validation分区上所有文件的内容,则不知道这些内容)。
系统救援光盘有mdadm工具,所以如果你知道如何使用它们,它应该对你有用。