linux降低磁盘的读,如何轻松修复Linux磁盘上的单个不可读块?

我曾经为WD写磁盘固件,而我曾经写过重新分配坏块的固件。

首先,大多数坏块是在读取而非写入时检测到的。写入是盲目的完成的,这意味着无需检查即可写入数据。因此,在写操作中,如果介质损坏,您将不会知道它,直到主机对该扇区进行读取为止。写入时会读取一小部分扇区(扇区头),以找到正确的扇区,因此,如果在读取扇区头时出错,驱动器将重新分配该扇区并将其与接收到的数据一起写入从写命令。但是,绝大多数坏块是在读取时检测到的,仅因为对某个扇区的写操作成功并不意味着介质良好或该扇区已被重新分配。

现在讨论坏块的重新分配(也称为重新分配)。是的,如果错误足够严重(例如,ECC故障足够严重),则驱动器通常将尝试重新分配扇区,但是驱动器在ECC校正后仍可以恢复数据。通常,这是自动完成的。唯一的例外是,主机以前可能已经告诉驱动器不要进行自动重新分配,但这很少完成。

那么,如果驱动器读取并且无法恢复数据,会发生什么呢?没有。该错误会报告给主机,但不会进行任何重新分配。问题在于驱动器可以重新分配该扇区,但是丝毫不知道要在新重新分配的扇区中写入什么数据。例如,如果它只写了一堆零,然后再次读取该扇区,它将返回所有零,而没有任何迹象表明数据无效。这本质上与数据损坏相同。由于各种原因,驱动器不能依靠主机跟踪错误(例如,如果将驱动器移至新主机怎么办?),因此最佳的操作方法是在数据可以传输时不执行任何操作。无法恢复。

但是,当无法重新分配坏扇区时,现代驱动器将保存坏扇区的位置。可以在SMART数据中找到等待重新分配的坏扇区数。如果对等待重新分配的坏扇区之一执行写操作,则会发生这种情况,因为重新分配驱动器现在有有效数据要写入,所以重新分配完成了。因此,当人们说写一个坏扇区会重新分配它时,这实际上只是故事的一半。必须先读取驱动器,以便驱动器可以发现所有无法自动重新分配的坏扇区。因此,您可以写入整个驱动器,并且SMART数据将显示没有等待重新分配的坏扇区,但是您不必清除所有坏扇区的驱动器。因此,如果您真的想清除所有坏道,

还有其他处理无法重新分配的坏块的方法。如果驱动器是冗余RAID配置的一部分(即RAID 0以外的任何内容),则RAID软件应自动从其他驱动器中恢复坏扇区的数据,并将其写入重新分配的扇区。SCSI磁盘具有显式的重新分配块命令,即使没有有效数据写入该块,主机也可以使用该命令来强制重新分配,但是其使用级别很低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值