On 2014-06-11, Peter Fraser <p...@thinkage.ca> wrote:

> To duplicate a disk I used the following:
>
> dd if=/dev/rsd2c of=/dev/rsd3c bs=32M seek=1 skip=1 conv=noerror

Why are you skipping the first 32M?

> Is there any method of coping a disk or partition, or even a file that uses
> non-blocking I/O?

You could use buffer(1) from ports/misc/buffer.  I used this to keep
tape drives streaming... It's been a while.

I only find myself copying disks/partitions/large file trees at the
filesystem level; dump|restore or tar|tar seem to keep source and
destination pretty busy, but then again, speed is usually not of
the essence.

> Also for dd the block size has always been a puzzle.

For accessing a raw device you want it to be a multiple of the
sector size of the device (512 bytes for most disks) and there is
usually no point in making it bigger than MAXPHYS (64k on OpenBSD),
i.e., the maximal size of a single I/O transfer the kernel handles;
larger reads or writes will be broken up into multiple transfers.

-- 
Christian "naddy" Weisgerber                          na...@mips.inka.de

Reply via email to