如何更改硬盘读取错误超时?

net*_*ope 8 hard-drive data-recovery kernel bad-sectors ddrescue

我正在使用ddrescue. 禁用“重试”后,每个不可读扇区大约需要 30 秒。硬盘有数以万计的坏道,而且这个过程需要很长时间。

我可以将读取错误超时缩短到 3 秒吗?也许使用 ATA 命令?内核选项?固件破解?

smartctl 信息:

Device Model:     Hitachi HTS542525K9A300
Firmware Version: BBFOC3EP
User Capacity:    250,059,350,016 bytes
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 3f
Run Code Online (Sandbox Code Playgroud)

小智 7

在 linux 上,/sys/block/<deviceName>/device/timeout(如/sys/block/sda/device/timeout)是以秒为单位的超时设置,当前默认为 30。

在同一个目录中,有一个eh_timeout用于 SCSI 命令TEST UNIT READY和的值REQUEST SENSE,所以这不是您要查找的。

作为 root,echo 1 > /sys/block/<deviceName>/device/timeout将超时更改为 1 秒。(或者,为您的 3 秒示例回显 3。)

作为具有sudo特权的非 root 用户,sudo bash -c "echo 1 > /sys/block/<deviceName>/device/timeout"将执行相同的操作。

  • 谢谢!我只是成功地使用它来减少在带有多个坏块的 USB 连接的 SD 卡上使用 ddrescue 的等待时间。 (2认同)