linux – 从一个新硬盘重新刷新SW RAID1和一个坏块的旧硬盘

前端之家收集整理的这篇文章主要介绍了linux – 从一个新硬盘重新刷新SW RAID1和一个坏块的旧硬盘前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个SW RAID1,我刚用新硬盘取代了/ dev / sda,因为旧硬盘失败了.
现在,在尝试重新创建RAID阵列时,我发现“好”的HDD(/ dev / sdb)有坏块,阻止mdadm重新同步阵列.

虽然我可以进行备份,但也要替换/ dev / sdb并完全重新安装服务器我想知道是否有任何方法可以“欺骗”mdadm重新同步RAID阵列然后用新硬盘替换/ dev / sdb .
据我所知,坏块位于/ dev / sdb的未使用区域,仅在尝试重新创建RAID阵列时使用.

解决方法

您能否验证磁盘上受影响的块和底层坏扇区是否重新分配到“备用扇区”区域?写操作失败时,应重新分配坏扇区.使用smartctl验证它:
smartctl -a /dev/sdb | grep -i reallocated

最后一列应包含若干总重新分配的扇区.如果没有尝试读取坏扇区:

hdparm –-read-sector XXXXXXXX /dev/sdb

它应该返回一个I / O错误,否则我建议跳过下一节.

错误意味着该部门尚未重新分配.因此,您可以尝试通过编写来强制重新分配它.请记住,在此步骤之后存储在此扇区中的任何数据都将丢失!!!

hdparm –-write-sector XXXXXXXX --yes-i-know-what-i-am-doing /dev/sdb

顺便说一下,扇区号XXXXXXXX应该可以从内核消息(dmesg命令或/ var / log / messages)获得.由于在重新同步期间存在坏块,因此应该有一些类似于以下内容的相关消息:

... end_request: I/O error,dev sdb,sector 1261071601

然后,尝试再次使用smartctl验证它.柜台增加了吗?如果是这样,尝试用hdparm读取它.现在,它应该没有任何错误地读取它,因为它应该被重新分配.完成.

最后,您可以继续使用mdadm并将磁盘添加到降级镜像中.

猜你在找的Linux相关文章