I have been happily been using the following script to duplicate my file systems on c0t0d0 to a spare disk c0t2d0. This is how I orginally set-up c0t0d0.
I have set the partition map is exactly the same for c0t0d0 and c0t2d0. Previously I tried to restore s0 to a larger partition, and ever since then I get broken pipe errors, even when ufsdumping to disk and ufsrestoring in seperate operations.
# newfs /dev/rdsk/c0t2d0s0
# newfs /dev/rdsk/c0t2d0s7
# mount /dev/dsk/c0t2d0s0 /mnt
# df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t0d0s0 2248183 1671442 531778 76% /
/proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
fd 0 0 0 0% /dev/fd
swap 2093032 16 2093016 1% /var/run
swap 2093016 0 2093016 0% /tmp
/dev/dsk/c0t0d0s7 35403765 2387358 32662370 7% /export/home
/dev/dsk/c0t2d0s0 2248183 9 2203211 1% /mnt
bash-2.05# /usr/sbin/ufsdump 0cf - / | (cd /mnt; ufsrestore rf -)
DUMP: Date of this level 0 dump: Tue May 10 09:26:04 2005
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t0d0s0 (mars8:/) to standard output.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 63 Kilobyte records
DUMP: Estimated 3438648 blocks (1679.03MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Broken pipe
DUMP: The ENTIRE dump is aborted.