/etc/daily uses the following code

sync
echo ""
echo "Backing up root filesystem:"
echo "copying /dev/r$rootdev to /dev/r$rootbak"
dd if=/dev/r$rootdev of=/dev/r$rootbak bs=16b seek=1 skip=1 \
        conv=noerror
fsck -y /dev/r$rootbak

where as http://www.openbsd.org/faq/faq10.html#DupFS
says to use either 

cd /SRC; dump 0f - . | (cd /DST; restore -rf - )

or

cd /SRC; tar cf -  . | (cd /DST; tar xpf - )

I figured out that tar does not work for pipes or dev files
so it is not any good for copying the root file system.

But I don't know why you should pick "dd" over "dump".
For example using

newfs /dev/$rootbak
mount /dev/$rootbak /altroot
cd /; dump 0f - . | (cd /altroot; restore -rf - )
umount /altroot

is dramatically faster the using "dd". But
I assume that there must be some reason for using "dd"
for copying "/".  The faster the copying takes place
the less likely there is any inconsistency. So what am
I missing.

PS I also don't understand why the first 16*512 bytes are
skipped when using "dd"?

If I want to copy a whole physical disk, should I also skip the
first 16*512 bytes?

Reply via email to