我有一个由 4 个磁盘组成的软件 raid5 设置。sda、sdb、sdc、sdd 由于一切正常,我想测试一下阵列。为此,我拔掉了其中一个磁盘 (sdd) 的插头。一切正常,所以我尝试使用 重新添加磁盘mdadm --add /dev/md0 /dev/sdd
,mdadm 正在重建阵列,几个小时后我检查了一下,发现出了问题,sdc 失败了。
长话短说:sdc 有一些坏扇区,当 mdadm 从这些扇区读取时会失败。
在 /var/log/messages 中我可以看到:
读取错误无法纠正(sdc 上的扇区 753682864)。
我无法组装阵列,因为它认为 sdc 和 sdd 有故障。
但是我可以mdadm /dev/md0 --create --assume-clean -l5 -n4 /dev/sd[abc] missing
。此后我尝试添加 sdd,但没有成功。
当 mdadm 失败并在 /var/log/messages 中报告扇区时,我可以通过执行 来验证这一点hdparm --read-sector [sector] /dev/sdc
。当我使用 覆盖扇区时,hdparm --write-sector
它会被替换,然后再次运行。但这是一个非常耗时的过程。
有什么方法可以让我摆脱这种困境吗?将 sdc 镜像到 sdd(使用 dd)然后将 sdd 添加为丢失的驱动器有帮助吗?