increasing dd disk to disk transfer rate

Peter Jeremy PeterJeremy at
Thu Jan 12 13:13:05 PST 2006

On Thu, 2006-Jan-12 10:48:38 +0100, Christoph Kukulies wrote:
>dd if=/dev/ad2 of=/dev/ad3 conv=noerror
>The process is running now since yesterday evening and it is at 53 MB
>at a transfer rate of about 1.1 MB/s.
>In case the the result being unusable I would like to find a way to make this
>copying faster.

Note that whilst increasing the DD blocksize will speed up the
transfer, it will also increase the amount of collateral damage when a
hard error occurs.  If you rummage around the ports or tools tree,
you'll find a utility (its name escapes me but I believe it was
written by phk) that is designed to do disk-to-disk recovery - it
copys data in big slabs until it gets an error and then works around
the faulty area block by block.

You should also install /usr/ports/sysutils/smartmontools - this
handles S.M.A.R.T.

>Is there a way to tweak the driver (be it the FreeBSD promise driver
>or the normal ata driver) to use more retries on errors so that I
>have the chance to copy everything or nearly everything of the already
>degrading hard disk?

A quick look at the ata driver suggests that there are a number of
'retry' and 'retries' variables/fields.  I suspect you could increase
the number of retries if you wanted to patch the driver.

Peter Jeremy

More information about the freebsd-hackers mailing list