Как изменить время ожидания ошибки чтения жесткого диска?
Я восстанавливаю данные с жесткого диска, используя 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
так что не то, что вы ищете.
Как корень, echo 1 > /sys/block/<deviceName>/device/timeout
изменит время ожидания до 1 секунды. (Или echo 3 для вашего 3 второго примера.)
Как пользователь без полномочий root, с sudo
привилегии, sudo bash -c "echo 1 > /sys/block/<deviceName>/device/timeout"
будет делать то же самое.