This short step-by-step example is based on an IDE system. The running system uses ad0- the new system shall run on ad1.

1. connect the new drive and do a minal installation of FreeBSD
2. boot the freshly installed system to verify full functionality
3. reconnect the "old" harddisk as boot device and the "new" one as secondary
4. boot the system to single user mode
 press SPACE at countdown 
 type "boot -s" at prompt
 press ENTER for default shell
At the command prompt type: fsck -p
mount -u / (mount root-system with default settings)
mount -a (mount all filesystems contained in fstab)
swapon -a (activate swap)

5. create devices (use settings from "old" installation!!!)  E.g.:    /dev/ad0s1a to /  /dev/ad0s1f to /tmp  /dev/ad0s1g to /usr

cd /dev ./MAKEDEV ad1s1a ./MAKEDEV ad1s1f ./MAKEDEV ad1s1g

  6. create mountpoints for new system

mkdir /backup mkdir /backup/root mkdir /backup/usr mkdir /backup/var  

7. create filesystems on new devices

newfs /dev/ad1s1a newfs /dev/ad1s1f newfs /dev/ad1s1g

8. mount new devices
mount /dev/ad1s1a /backup/root mount /dev/ad1s1f /backup/usr mount /dev/ad1s1g /backup/tmp

9. copy filesystems
( dump -0f - / ) | ( cd /backup/root ; restore -rf - ) ( dump -0f - /usr ) | ( cd /backup/usr ; restore -rf - ) ( dump -0f - /tmp ) | ( cd /backup/tmp ; restore -rf - )

10. unmount filesystems
umount /backup/root umount /backup/usr umount /backup/var

11. replace "old" harddisk with "new" harddisk and boot
You're done!

The same can be done over SSH of course:

ssh 192.168.1.11 'dump -0 -f - /dev/da0s1g' | restore -r -f - /dev/da0s1f

ssh REMOTE_MACHINE 'dump LEVEL_0 TO_FILE_STANDARD_OUT DEVICE' | restore -r FROM_FILE_STANDARD_IN DEVICE