The dump and restore commands are powerful tools that allow you to backup a live file system or to move data including permissions to another disk.
Sometimes it is necessary to migrate data to a new hard drive. This can happen when one buys a bigger drive or a drive is failing. Here is a simple procedure to migrate data from /dev/ad0 to /dev/ad1. This assumes ad1 has already been partitioned (and labeled)
mount /dev/ad1s1a /mnt
dump -0 -f - /dev/ad0s1a | restore -r -f -
mount /dev/ad1s1e /mnt/tmp
dump -0 -f - /dev/ad0s1e | restore -r -f -
mount /dev/ad1s1f /mnt/var
dump -0 -f - /dev/ad0s1f | restore -r -f -
mount /dev/ad1s1g /mnt/usr
dump -0 -f - /dev/ad0s1g | restore -r -f -
It's assumed one one move the disk to the other controller here. Otherwise, /etc/fstab must be edited.