Looking inside device files

Andre Majorel aym-cnysr at teaser.fr
Wed Aug 22 09:18:40 GMT 2007


On 2007-08-21 05:55 -0400, Matt McCutchen wrote:
> On 8/20/07, Andre Majorel <aym-cnysr at teaser.fr> wrote:
> > Is there a way to make rsync look inside device files ? The goal
> > is to copy the contents of a block device to a regular file
> > incrementally.
> >
> > Short of that, even just getting it to dump the block checksums of
> > the content a block device would help (if I know which blocks are
> > out of sync, I can fix them with dd).
> 
> Are the block device and the target regular file on the same machine?

They could be. Or not. Doesn't matter.

> Your remark about dd suggests that they are.

Not necessarily.

  dd if=myfile skip=100 | ssh user at host "dd of=myfile seek=100 conv=notrunc"

> If so, why do you want an incremental copy?  It does at least as
> much disk I/O as an ordinary copy (since it reads the entire
> basis file), and the reduction in data passed from the sender
> process to the receiver process is irrelevant.

Sometimes, you need to copy a whole block device and you can't
just cat it to wherever you want, go out to lunch and expect it to
work.

The destination could be unreliable. The network could be
unreliable. The source could trigger DMA timeouts and lock up the
bus, forcing you to reboot. Many things can and do go wrong.

In those situations, you need to be able to verify that the copy
is identical to the original and where's it's not, fix it (NOT
start over, because if it failed the first time, it may fail the
second time).

rsync already has most of the mechanisms to do that easily and
efficiently. It would be even better if it could complete the copy
*first* and check the beginning *second* but that's probably more
involved.

> Anyway, the attached patch for the current CVS rsync adds an option
> --copy-devices that makes rsync copy the contents of source device
> files as if they were regular files.  I tested the option on my
> computer to copy a block device to a regular file locally, and it
> seemed to work.  Wayne, you might like to include this patch in the
> patches/ dir of the source distribution.

Thanks for the patch. I hope something like that goes in. I
understand rsync was not meant as a block-device-level copy tool,
but since it already has most of what it takes, it's tempting.

-- 
André Majorel <URL:http://www.teaser.fr/~amajorel/>
Do not use this account for regular correspondence.
See the URL above for contact information.


More information about the rsync mailing list