以下是我来到这里的一些简要经历:
- 4x 磁盘 Ubuntu 12.04 软件 RAID10,带 5x 分区(md0 - md4)
- 1x 磁盘损坏
mdadm --fail
>>mdadm --remove
物理移除驱动器并更换mdadm --add
> 所有分区的磁盘已完美重新同步- 决定更换所有磁盘,使它们完全相同
- 对剩下的 3 个磁盘重复步骤 3-4。第 2 个和第 3 个磁盘运行正常。
- 更换最后一个磁盘后,我将其添加回阵列,但收到通知称文件系统处于只读模式。
cat /proc/mdstat
显示一些分区已经掉线,但是非常不一致。- 我重启了机器(这可能不是最明智的想法)
- 机器无法启动(我认为新磁盘上没有 MBR)。
- 更换了我取出的最后一个驱动器。机器启动时提示
intitramfs
成功,但键盘无响应。 - 移除最后一个驱动器,现在只剩下 3 个好磁盘。
- 从 Ubuntu Live USB 启动。
- Ubuntu 磁盘实用程序列出了 4x RAID 设备,表明它们处于非活动状态且部分组装。
ubuntu@ubuntu:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : inactive sdd8[6](S) sdc8[5](S) sdb8[4](S) 1464837120 blocks super 1.2 md4 : inactive sdd9[6](S) sdc9[5](S) sdb9[4](S) 718365696 blocks super 1.2 md1 : inactive sdd6[6](S) sdc6[5](S) sdb6[4](S) 146479104 blocks super 1.2 md2 : inactive sdd7[6](S) sdc7[5](S) sdb7[4](S) 585931776 blocks super 1.2 md0 : inactive sdd5[6](S) sdc5[5](S) sdb5[4](S) 14641152 blocks super 1.2 unused devices: <none>
ubuntu@ubuntu:~$ sudo mdadm --assemble --verbose /dev/md0 -f /dev/sdb5 /dev/sdc5 /dev/sdd5
mdadm:正在寻找 /dev/md0 的设备 mdadm:无法打开设备 /dev/sdb5:设备或资源繁忙 mdadm:/dev/sdb5 没有超级块 - 组装中止
所以现在我有点卡住了!当第 4 个磁盘被替换时,其中的 3 个磁盘都是一致的。SMART 检查结果正常(没有坏扇区等)。
我只需要一种方法来恢复具有 3 个磁盘的阵列,以便我可以重新添加第 4 个磁盘。有什么想法吗?
非常感谢!
答案1
检查每个 RAID 成员驱动器分区上的 mdadm --examine 输出。它将显示状态信息,并有望显示问题可能出在哪里。
还要检查驱动器的 SMART 状态以查看它们是否健康。
答案2
我从 Ubuntu Live USB 按照如下方式解决了这个问题(必须安装 mdadm):
mdadm --stop /dev/md[01234]
mdadm --assemble /dev/md0 --verbose /dev/sd[abc]5
(请注意,我只使用了 3 个好的驱动器)。- 重复每个
/dev/mdx
- 如果我收到“设备或资源繁忙”错误,我会
--stop
再次/dev/mdx
重复此操作--assemble
。不知道为什么这样做有效,但确实有效。 mdadm --manage /dev/mdx --add /dev/sddx
对于每个/dev/mdx
相应的/dev/sddx
分区- 所有磁盘均已在其阵列中同步,mdadm 很满意。
- 按照此处的说明进行操作https://help.ubuntu.com/community/Grub2/Installing(挂载操作系统文件系统 > chroot > 在每个驱动器上安装 grub > 更新 grub > 重新启动)
- ???
- 收益。机器启动后,检测到 OS 分区上的文件系统错误,但已修复它们(磁盘可能在略微不同的时间掉线)。修复并重新启动后,一切恢复正常,没有数据丢失。