我有(曾经有)一个 RAID 1 阵列(2 个磁盘镜像),其中一个磁盘 sda 发生故障。因此,我用新磁盘替换了坏磁盘,但似乎不知道如何让第二个驱动器作为阵列的一部分重新启动并运行。
该系统运行的是Ubuntu Server 9.04,配置如下:
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
我可以跳过失败步骤吗?或者还有其他方法可以让不再存在的分区失败吗?或者如果我将分区表从旧的驱动器复制到新的驱动器,它会自动识别出它是替换的吗?
我是新手,不想把事情搞砸。:)
答案1
您不需要让它们发生故障。因为当您第一次注意到问题时它们应该已经发生故障,并且 RAID 成员现已被移除。只需几个步骤即可使其恢复运行。
在替换磁盘上设置分区。这些分区的大小应与发生故障且当前处于活动状态的磁盘的大小相同,并且应标记为分区类型“Linux RAID Autodetect”(0xFD)。您可以使用 复制分区表来简化此操作
sfdisk
。sfdisk -d /dev/sdb | sfdisk /dev/sda
如果该磁盘之前已经使用过,那么您可能需要确保在重新开始之前已删除所有现有的 softRAID 信息。
mdadm --zero-superblock /dev/sda
在新磁盘上安装 MBR,使其可启动。从
grub
shell 执行此操作。假设这/dev/sda
是第一个磁盘。root (hd0,0) setup (hd0) quit
将新分区添加回阵列。
mdadm --add /dev/md0 /dev/sda1 mdadm --add /dev/md1 /dev/sda3 mdadm --add /dev/md2 /dev/sda2
通过查看来监控重建状态
/proc/mdstat
。您可以使用以下方式自动执行此操作。watch -n10 cat /proc/mdstat
答案2
查看http://techblog.tgharold.com/2009/01/removing-failed-non-existent-drive-from.shtml。 使用
mdadm /dev/mdX -r 已分离