I know that doing a dd if=/dev/hda of=/dev/hdb does a deep hard drive copy. I've heard that people have been able to speed up the process by increasing the number of bytes that are read and written at a time (512) with the "bs" option. People have suggested that the optimal byte size is due to sector size. I personally think it would have something to do with the amount of cache that the hard drive has.
My question is:
What determines the ideal byte size for copying from a hard drive?
and
Why does that determine the ideal byte size?
Edit:
ok, so I read the man page for dd again and it says
"bs=BYTES Block size, both read and write BYTES bytes at a time. This overrides ibs and obs."
So the dd command is asking for the block size in bytes that is used on the hard drive? Is this the same as the "Allocation unit size" under the windows format options? Indeed these are a power of 2 and the smallest option happens to be 512. So in order to optimize the speed... you can either remember what block size you used when you formatted the drive or find a tool that tells you. I still don't fully understand what formatting a drive with different block sizes does and why dd is able to copy faster if it knows the block size.
Thanks to Chris S for mentioning that block size is 2 to the power of some number. That is what reminded me of the "Allocation unit size" thing.
