Debian服务器在软件RAID-1arrays降级后不能引导

所以我有一台带有3个硬盘的Debian 7服务器。 它的RAID-1基本上是这样configuration的:

md0:sda1,sdb1 – > /(root)md1:sda5,sdc1 + sdb5(备用) – > / data(sdc1在SSD上,sda5标记为“writemostly”)。

sda和sdb都在其上安装了grub。

当安装额外的网卡时,我搞砸了,拔掉了sdc的数据线(注意sdc没有GRUB或/,而且应该和启动无关)。

所以系统启动后,罚款。 我注意到我的错误,closures了机器,并插回sdc(而mdad​​m正在重buildmd1的备用)。

现在,系统给了我一个可怕的GRUB shell,或者只是一个带有闪烁光标的黑屏。 取决于我拔掉哪个硬盘。 但没有硬盘组合给了我一个成功的启动。 我也尝试了所有3个驱动器连接,并告诉BIOS从任何启动驱动器手动启动。

我最终做的是在救援模式下启动Debian安装程序,组装RAID设备,并让它们重build。

这并没有导致启动成功。

于是我再次启动救援模式,并在sda和sdb上手动重新安装GRUB。 这解决了我的问题。

我的问题是:这里发生了什么? a)sdc不应该以任何方式影响启动,AFAIK? b)即使我中断的RAID重build过程会影响启动,为什么在救援模式下重buildRAIDarrays后系统无法启动? 为什么我必须手动在sda和sdb上重新安装GRUB,如果据我了解,GRUB驱动器上的扇区与RAIDarrays没有任何关系?

首先:别再做了。 通过中断一个重build和testing各种组合,数据可能已被损坏,破坏或丢失。 在尝试下一步之前,通常最好让一个操作完全完成 – 中断会带来不确定性和混乱,而且失去的时间通常比丢失的数据要好得多。

我会build议的机智:

一次在一个驱动器上工作。 在写入任何更改之前将完全驱动器备份(如果可用)。

对于每个驱动器,尝试在没有RAID的情况下自行安装每个分区。 我相信你需要mdadm --stop /dev/mdX从RAID分离,然后你可以挂载它正常。

find每个分区的干净的(或最less搞砸的)副本,并将它们传输到非RAID驱动器。 一旦你恢复了可启动的非RAID系统,你应该能够重build你的RAID设备。 由于你有三个驱动器,只有两个分区,你应该能够做到这一点,没有额外的磁盘(除了备份 – 这不是必需的,但很好,以防止深挖)。