Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm recovering data from an hdd using ddrescue. With "retry" disabled, it takes roughly 30 seconds for every unreadable sector. The hdd has tens of thousands of bad sectors and the process is taking forever.

Can I shorten the read error timeout to, say, 3 seconds? Perhaps with ATA commands? Kernel options? Firmware hacks?

smartctl info:

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
share|improve this question
Sorry to comment on such an ancient question. Did you ever find a solution to your problem? – Ryan Sorensen Jul 16 '14 at 0:54
Unfortuntely, no – netvope Sep 21 '14 at 2:00

On linux, /sys/block/<deviceName>/device/timeout (such as /sys/block/sda/device/timeout) is the timeout setting in seconds, which currently defaults to 30.

In the same directory, there is a eh_timeout value which is used for the SCSI commands TEST UNIT READY and REQUEST SENSE, so isn't what you're looking for.

As root, echo 1 > /sys/block/<deviceName>/device/timeout will change the timeout to 1 second. (Or, echo 3 for your 3 second example.)

As a non-root user, with sudo privileges, sudo bash -c "echo 1 > /sys/block/<deviceName>/device/timeout" will do the same.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.