我有一个RAID 1arrays(2个磁盘镜像),其中一个磁盘sda失败。 所以我用一个新磁盘replace了坏磁盘,但似乎停滞在如何让第二个磁盘备份并作为arrays的一部分运行。
系统运行Ubuntu Server 9.04,configuration如下:
MD0 => sda1,sdb1
MD1 => sda3,sdb3
MD2 => sda2,sdb2
mdadm --detail /dev/md0
显示两个驱动器:
0 /dev/sdb1 "Active Sync" 1 [nothing] "Removed"
MD1和MD2看起来一样。
我发现的教程说,使用该命令将每个分区标记为失败:
mdadm --manage /dev/md0 --fail /dev/sda1
但是,由于驱动器不在那里,我得到:
mdadm: cannot find /dev/sda1: No such file or directory
我可以跳过失败的步骤吗? 还是有其他的方式来失败一个不再存在的分区? 或者,如果我从旧的驱动器复制分区表到新的,它会自动拿起它是替代?
我是新来的,不想把它搞砸。 🙂
你不应该让他们失败。 因为当你第一次注意到这个问题时,它们应该已经失败了,RAID成员现在被移除了。 只需几个步骤即可恢复运行。
在replace磁盘上设置分区。 这些分区的大小应该与失败和当前活动磁盘的大小相同,并且应该标记为分区types“Linux RAID Autodetect”(0xFD)。 您可以通过使用sfdisk复制分区表来简化此操作。
sfdisk -d /dev/sdb | sfdisk /dev/sda
如果以前使用过磁盘,则可能需要确保在再次开始之前删除现有的任何软RAID信息。
mdadm --zero-superblock /dev/sda
将MBR安装到新磁盘上,以便可启动。 从grubshell做到这一点。 假定/dev/sda是第一个磁盘。
root (hd0,0) setup (hd0) quit
将新分区添加回arrays。
mdadm --add /dev/md0 /dev/sda1 mdadm --add /dev/md1 /dev/sda3 mdadm --add /dev/md2 /dev/sda2
通过查看/proc/mdstat监视重build状态。 你可以用这个自动化。
watch -n10 cat /proc/mdstat
检查http://techblog.tgharold.com/2009/01/removing-failed-non-existent-drive-from.shtml 。 使用
mdadm / dev / mdX -r分离