我的情况与
this one不同.
我有一个带有3个硬盘的CentOS系统,以及以下软件RAID阵列:
/boot on RAID 1 over 2 disks / on RAID 5 over 3 disks swap on RAID 0 over 2 disks (I believe)
我的第3次开车失败了一开始没什么大不了的,阵列还在运转.但是在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
它停在那里.我没有壳.我试过但是在Rescue磁盘上,但我不知道怎么去那里:我的阵列没有看到,所以我无法重建它们.如果我使用2个磁盘启动,或者使用坏磁盘作为我的第3个驱动器,则完全相同的问题.
现在我有一个新驱动器,如何修复阵列?
解决方法
不知怎的,你已经设法将阵列停止在脏状态(这意味着RAID系统无法确定所有磁盘上的奇偶校验是否正常).如果机器突然断电或其他一些写入空穴引发事件,就会发生这种情况.
我怀疑使用–force选项从救援CD手动重新组装阵列可能会起作用,如下所示:
mdadm --assemble --force /dev/md2 /dev/sda2 /dev/sdb2 missing
(用构成RAID-5阵列的现有设备替换/ dev / sd …).假设这有效并且/ proc / mdstat显示已组装的数组(处于降级状态),那么您可以添加新分区,如下所示:
mdadm /dev/md2 --add /dev/sdc2
如果最初的强迫组装不能解决问题,那么你就是在小溪的深处.几分钟与谷歌发现http://www.linuxforums.org/forum/servers/77867-eeek-cant-assemble-degraded-dirty-raid6-array.html似乎处理类似的问题,所以它可能值得尝试在那里工作(echo“clean”> / sys / block / md0 / md / array_state)但是这是一种稍微丑陋的做事方式.
无论您如何设置将RAID设置重新组合在一起,它是脏的和降级的事实意味着内容实际上不再受信任.文件系统可能有元数据损坏(fsck应修复),或者一个或多个文件的内容可能已损坏(如果不验证分区上所有文件的内容,您将无法知道).