increasing dd disk to disk transfer rate

Bakul Shah bakul at BitBlocks.com
Thu Jan 12 09:38:47 PST 2006


> In the last episode (Jan 12), Christoph Kukulies said:
> > 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.
> 
> Everybody has mentioned the first obvious fix: raise your blocksize
> from the default 512 bytes.  The second fix addresses the problem that
> with a single dd, you are either reading or writing.  If you pipe the
> first dd into a second one, it'll let you run at the max speed of the
> slowest device.
> 
> dd if=/dev/ad2 conv=noerror,sync bs=64k | dd of=/dev/ad3 bs=64k

So now on the new disk he has files with random blocks of
zeroes and *no* error indication of which files are so
trashed.  This is asking for trouble.  Silent erros are
worse.

He ought to do a file level copy, not disk level copy on
unix.  That way he knows *which* files are trashed and can do
a better job of recovering.  Assuming he has backups.
Windows is pickier about things but I am sure there are
windows tools that will handle all that and allow more
retries.

dd is the *wrong* tool for what he wants to do.

If it were upto me first I'd backup all the data I may need;
using multiple retries and all that and then install freebsd
from scratch on the new *bigger* disk.  Perfect time for
house cleaning and removing all those ports you don't use any
more! 

As for windows....  I'd use the recovery disk and in effect
reinstall windows from scrach and then reinstall all apps and
move over my data files.  [What I actually do is to run win2k
under qemu on my laptop.  Good enough for what I need it for]


More information about the freebsd-hackers mailing list