我为挂载在/mnt/data上的数据分区configuration了一个RAID-5arrays。 我的系统没有启动( /和/boot在专用驱动器上, 而不是任何RAIDarrays的一部分)。
我通过mdadm(软件RAID)在Ubuntu 12.04上添加了第四个驱动器到我的3个磁盘RAID-5软件arrays。 我的RAIDarrays包含/dev/sdb1 , dev/sdc1和/dev/sdd1.
我用那个命令来添加第四个驱动器:
mdadm --add /dev/md0 /dev/sde
然后,我升级了arrays,将其转换成RAID-6 RAID:
mdadm --grow /dev/md0 --raid-devices 4 --level 6 --backup-file=backup/raid-backup-file
它工作很好。 服务器工作,并没有启动问题。 唯一的问题是,我看到我添加了第四个驱动器作为整个驱动器。 我应该添加/dev/sde1而不是sde!
为了清理这个,我删除驱动器,并重新添加它,但这次与分区:
mdadm /dev/md0 --fail /dev/sde --remove --/dev/sde mdadm --add /dev/md0 /dev/sde1
迁移之后,它工作(arrays是可访问的),除了在下次启动时,由于/ dev / sde丢失(我所有的驱动器都标记为备用),我收到一条消息,说RAIDarrays已经降级,并进入initramfs提示符。 退出该shell之后,服务器将继续启动,而不从我的RAIDarrays挂载数据分区。
login后,我可以停止RAIDarrays,并通过以下方式对其进行重新configuration:
mdadm --stop /dev/md0 mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
然后挂载文件系统。 所有数据都在那里,RAIDarrays是干净的。
但是,系统无法正常启动了。 我最后的尝试是删除最后一个驱动器,并通过以下方式将RAID-6arrays重新更改为RAID-5:
mdadm /dev/md0 --remove /dev/sde1 mdadm --grow /dev/md0 --raid-devices 3 --level 5 --backup-file=backup/raid-backup-file
但是这并没有解决问题。 在启动时,系统表示arrays已降级,但仍然缺less驱动器sde。
退出initramfs shell之后,像以前一样login并重新组装数组,请参阅数组
cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdb1[0] sdd1[2] sdc1[1] 3907026816 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
我还发现,在我的内核消息,驱动器发现(sda,sdb,sdc,sde)和网卡发现后,奇怪的行 :
md: bind<sde>
从哪里来,我怎么能改变这个?
我的RAIDarrays根本不应该包含/ dev / sde的任何参考。
我没有更新initramfs第一次在我的数组更改,我试过后,但没有任何改变。
顺便说一句,这是我的/etc/mdadm.conf:
DEVICE partitions CREATE owner=root group=disk mode=0660 auto=yes HOMEHOST <system> MAILADDR root ARRAY /dev/md0 metadata=0.90 UUID=4d84e24c:e40f825f:3ba42e3c:267295e2
sde设备上必须保留一些md元数据。
完全擦除sde md元数据(使用dd并取决于元数据的版本及其在磁盘上的位置),如下所示:
dd if = / dev / zero of = / dev / sde bs = 4096 count = 1 seek = 1
甚至更好:
mdadm –misc –zero-superblock / dev / sde
重新创build您的sde1并将其添加到md0设备,并更新您的mdadm.conf,如果您仍然希望它包含UUID(您也可以恢复以前的元数据,如果您第一次备份)
你更新你的md设备后,是否尝试重新生成initrd? 尝试更新initramfs或匹配您的分配的工具。 也可能是更新你的盗版者(grub-pc的update-grub2)
还尝试在mdadm.conf中为md0指定分区uuids。