increasing dd disk to disk transfer rate

Martin Cracauer cracauer at cons.org
Thu Jan 12 13:20:31 PST 2006


Moin moin, wie geht's :-)

Christoph Kukulies wrote on Thu, Jan 12, 2006 at 10:48:38AM +0100: 
> 
> My notebooks' hard disk, a Hitachi Travelstar 80 GB starts to develop read
> errors. I have FreeBSD and Win XP on that disk. Although FreeBSD ist still
> working , the errors in the Windows partition are causing Windows do ask for a 
> filesystem check nearly everytime I reboot the computer. One time the
> error was in the hibernate.sys file, which impedes powering up quickly after
> a hibernate.
> 
> Anyway, I decided to buy a second identical hard disk and tried to
> block by block copy the old disk to the new one using
> 
> 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.

/usr/ports/mis/cstream is a dd-like tool which allows you to specify
that it buffers up <n> megabyte of input before writing to the
output.  You need that because you are on the same bus with both
disks. 

Use the -B and -b options with some high values.  Experiment with the
-c option.

> 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?

Just retrying the same block probably doesn't do it.  You'll be more
successful by seeking to move the head around before retrying.

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer at cons.org>   http://www.cons.org/cracauer/
FreeBSD - where you want to go, today.      http://www.freebsd.org/


More information about the freebsd-hackers mailing list