我正在使用 从硬盘恢复数据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
答案1
在 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 秒为例,输入 echo 3。)
sudo
作为具有权限的非root用户,sudo bash -c "echo 1 > /sys/block/<deviceName>/device/timeout"
将执行相同的操作。