5

Я восстанавливаю данные с жесткого диска, используя 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 ответ1

4

В 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 секунду. (Или echo 3 для вашего 3 второго примера.)

В качестве некорневой пользователь, с привилегиями sudo sudo bash -c "echo 1 > /sys/block/<deviceName>/device/timeout" - аут" будет делать то же самое.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .