Michael B. Brutman wrote:
My first
experiment was with linux where I created a PC linux
boot CD and hooked my two drives up planning to just dd from
one drive's raw device to the other. To my amazement, I discovered
that linux does not have a raw disk I/O capability by default.
I tried using the block devices, but the resulting copy was
not intact. After doing a bit of searching, I discovered that
there is some sort of rawio extension which allows a raw device
to be associated with a block device, but it also said that dd
would not work with this raw device due to buffer alignment
issues vs. DMA. Go figure...
I missed something here .. why didn't dd work for you?
That was my initial thought, that I must be missing something - but I
guess the original poster is trying to copy across non-identical drives,
with filesystems containing data which addresses the disk by something
other than linear blocks. I'm betting then that a raw copy wouldn't work
because the target drive's geometry is totally different.
To identical drives, *or* when the copied data is a filesystem that
addresses by linear block from the start of the filesystem, I can't see
any reason why dd won't work.
Simply put, Linux (well, all the common Linux filesystems) wants a
partition to end on a cylinder boundary. Two drives of different
geometries, even if they're the same size, will have differing block
counts per cylinder.
That means that if I do a block-level dd to a disk with different
geometry from the source disk, the data will be valid, but the
partitions will probably not end on cylinder boundaries and the
filesystems will forever be inconsistent as far as the kernel and fsck
are concerned.
Doc