copyblock is a very simple command line tool which can work in 2 ways:
1) reads from a regular file or a block device and writes to stdout,
it can detect zeroed areas and write sparse files,
maximum read size can be specified
(useful when reading block devices containing iso filesystem)
2) reads from stdin and write to a block device or regular file,
sync write can be forced
(useful when writing slow devices and wanting to have good
progress and ETA)
In both modes "copyblock" writes to stderr info about progress
and estimated time to complete.
Files and block/char devices larger then 4GB are supported.
I have tested it on:
GNU/Linux : i686, x86_64, powerpc32
FreeBSD : i386, x86_64
Cygwin : i686
These details are provided for information only. No information here is legal advice and should not be used as such.