从损坏的驱动器中恢复Raid1arrays

我被要求看看有一个RAID 1arrays的计算机,直到一个驱动器失败了12个月前没有被拿起,现在已经被replace,但另一个驱动器也是一个坏的方式,有一堆损坏部门。

理想情况下,我想将新驱动器集成到arrays中,然后停用已损坏的驱动器并将其更换。 但是,当这样做mdadm到目前为止,然后抛出像这样的东西:

May 29 12:55:46 jackbarberlimited xinetd[21512]: START: smtps pid=28049 from=::ffff:2.102.62.201 May 29 12:55:46 kernel: ata2.00: status: { DRDY ERR } May 29 12:55:46 kernel: ata2.00: error: { UNC } May 29 12:55:46 kernel: ata2.00: configured for UDMA/133 May 29 12:55:46 kernel: sd 1:0:0:0: SCSI error: return code = 0x08000002 May 29 12:55:46 kernel: sdb: Current [descriptor]: sense key: Medium Error May 29 12:55:46 kernel: Add. Sense: Unrecovered read error - auto reallocate failed May 29 12:55:46 kernel: May 29 12:55:46 kernel: Descriptor sense data with sense descriptors (in hex): May 29 12:55:46 kernel: 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 May 29 12:55:46 kernel: 3a d9 d5 58 May 29 12:55:46 kernel: end_request: I/O error, dev sdb, sector 987354456 May 29 12:55:46 kernel: raid1: sdb: unrecoverable I/O read error for block 982615168 May 29 12:55:46 kernel: ata2: EH complete May 29 12:55:46 kernel: SCSI device sdb: 1465149168 512-byte hdwr sectors (750156 MB) May 29 12:55:46 kernel: sdb: Write Protect is off May 29 12:55:46 kernel: SCSI device sdb: drive cache: write back May 29 12:55:46 kernel: md: md2: sync done. 

显然它有点不高兴复制一个破碎的驱动器到一个新的驱动器,有没有办法强制这个,或者我必须复制东西在恢复磁盘或东西?

我会build议closuresarrays,并使用dd克隆驱动器到一个新的。 然后做一个完整的fsck,以确保一切正常,然后尝试再次用另一个新的驱动器重build您的RAID。

你应该使用dd选项“conv = noerror,sync”来忽略坏扇区。

MD不会复制一个驱动器,如此返回错误。 你应该改为:

  • 开始进入救援环境
  • 使用类似dd或ddrescue的东西,将坏的驱动器复制到您的新驱动器
  • 把坏车带出去
  • 启动新驱动器
  • 安装另一个空的驱动器,并让md镜像到它的数据