![恢复 RAID:出了什么问题?](https://linux22.com/image/98329/%E6%81%A2%E5%A4%8D%20RAID%EF%BC%9A%E5%87%BA%E4%BA%86%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%EF%BC%9F.png)
我必须使用 Linux 恢复我的 md0 RAID 软件。
今天我买了 4 个磁盘,都是新的,类型和大小都相同。
我已经使用以下方法删除了旧磁盘:
mdadm /dev/md0 --fail /dev/sdd2
mdadm /dev/md0 --remove /dev/sdd2
与新的改变:
mdadm /dev/md0 --add /dev/sdd2
等待重建,它可以工作
磁盘 n°3 (sdc2) 也是如此
在 sdb2 更改上,RAID 开始出现很多错误,“扇区读取失败等”,但不是在 sdb2 上,而是在 sdb2 重建时在 sdc2 上!然后系统将我的 ext4 raid 置于 R/O 模式。
所以我以单用户模式重新启动(slackware可以从initrd)并尝试重建,当然是在删除sdc2(故障磁盘)和sdb2(不完整重新同步)之前。
我放入旧的sdb2盘并尝试启动;阵列失败。尝试将 sdb2 添加到阵列中;它失败了,并告诉我停下来重新集合。
我做到了
mdadm --stop /dev/md0
mdadm /dev/md0 --assemble /dev/sda2 /dev/sdb2 /dev/sdd2
我想从 3 个磁盘开始,然后添加 sdc2 并完成阵列。但考虑到 sda2 和 sdd 没问题,它失败了,但将 sdb2 标记为..已删除。如何读取 sdb2 并重建我的阵列?
答案1
找到解决方案,旧的 sdb2 被标记为有故障,所以唯一的解决方案是:
从 livecd 或 initrd 启动,然后执行以下操作:
mdadm /dev/md0 --stop
mdadm /dev/md0 --assemble --force /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
这将添加除“故障”驱动器之外的所有磁盘,但将启动 md0
然后我们将添加缺少的驱动器:
mdadm /dev/md0 --add /dev/sdb2
此时阵列正在重建,系统现在已经可以工作了。
警告:在这个“程序”之后,我丢失了我的lvm,因为lvm不再识别md0,pvscan给出错误(id更改或其他),所以最好的解决方案是..备份。