Our company has created a procedure for creating a backup root disk called BROOT. All new boxes are put into production with this functionality.
It was meant for an add'l recovery disk for VG00, but it can be used to copy from one disk to another, when you might ever upgrade a Disk to a larger one.
Here is the script. We have a script that creates this script, but this can be edited and reused. This should give you something to work with.
I didn't write this, but it is very good for this type of work
root:/usr/localcw/opt/broot
# cat vgbroot.script
#!/usr/bin/ksh
exec >/usr/localcw/opt/broot/vgbroot.output 2>&1
mkdir /broot
mkdir /dev/vgbroot
mknod /dev/vgbroot/group c 64 0x030000
pvcreate -fB /dev/rdsk/c0t2d0
mkboot /dev/rdsk/c0t2d0
mkboot -a "hpux -lq" /dev/rdsk/c0t2d0
lifcp /dev/dsk/c0t2d0:AUTO -
vgcreate /dev/vgbroot /dev/dsk/c0t2d0
lvcreate -s y -C y -r n -n bstand vgbroot
lvextend -L 1 /dev/vgbroot/bstand /dev/dsk/c0t2d0
lvextend -L 300 /dev/vgbroot/bstand
lvlnboot -r /dev/vgbroot/bstand /dev/vgbroot
lvlnboot -v
umount /broot/bstand
lvcreate -s y -C y -r n -n bswap vgbroot
lvextend -L 1 /dev/vgbroot/bswap /dev/dsk/c0t2d0
lvextend -L 1000 /dev/vgbroot/bswap
lvlnboot -s /dev/vgbroot/bswap /dev/vgbroot
lvlnboot -v
grep -q "/dev/vgbroot/bswap swap swap pri=0 0 0 0" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bswap swap swap pri=0 0 0 0" >> /etc/fstab
fi
umount /broot/bswap
lvcreate -s y -C y -r n -n broot vgbroot
lvextend -L 1 /dev/vgbroot/broot /dev/dsk/c0t2d0
lvextend -L 252 /dev/vgbroot/broot
lvlnboot -r /dev/vgbroot/broot /dev/vgbroot
lvlnboot -v
umount /broot/broot
lvcreate -s y -C y -n bopt vgbroot
lvextend -L 1 /dev/vgbroot/bopt /dev/dsk/c0t2d0
lvextend -L 1200 /dev/vgbroot/bopt
mkdir /broot/bopt
newfs /dev/vgbroot/rbopt
mount /dev/vgbroot/bopt /broot/bopt
grep -q "/dev/vgbroot/bopt /broot/bopt vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bopt /broot/bopt vxfs delaylog 0 2" >> /etc/fstab
fi
umount /broot/bopt
lvcreate -s y -C y -n busr vgbroot
lvextend -L 1 /dev/vgbroot/busr /dev/dsk/c0t2d0
lvextend -L 1200 /dev/vgbroot/busr
mkdir /broot/busr
newfs /dev/vgbroot/rbusr
mount /dev/vgbroot/busr /broot/busr
grep -q "/dev/vgbroot/busr /broot/busr vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/busr /broot/busr vxfs delaylog 0 2" >> /etc/fstab
fi
umount /broot/busr
lvcreate -s y -C y -n bvar vgbroot
lvextend -L 1 /dev/vgbroot/bvar /dev/dsk/c0t2d0
lvextend -L 1600 /dev/vgbroot/bvar
mkdir /broot/bvar
newfs /dev/vgbroot/rbvar
mount /dev/vgbroot/bvar /broot/bvar
grep -q "/dev/vgbroot/bvar /broot/bvar vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bvar /broot/bvar vxfs delaylog 0 2" >> /etc/fstab
fi
umount /broot/bvar
lvcreate -s y -C y -n bopenv vgbroot
lvextend -L 1 /dev/vgbroot/bopenv /dev/dsk/c0t2d0
lvextend -L 2000 /dev/vgbroot/bopenv
mkdir /broot/bopenv
newfs /dev/vgbroot/rbopenv
mount /dev/vgbroot/bopenv /broot/bopenv
grep -q "/dev/vgbroot/bopenv /broot/bopenv vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bopenv /broot/bopenv vxfs delaylog 0 2" >> /etc/fstab
fi
umount /broot/bopenv
# The following sequence of coding was modified by Peter Gunawan
# on 5/19/2001
lvlnboot -b /dev/vgbroot/bstand
lvlnboot -r /dev/vgbroot/broot
lvlnboot -s /dev/vgbroot/bswap
lvlnboot -v /dev/vgbroot
vgcfgbackup vgbroot
cp /etc/fstab /etc/fstab.19042002
grep -v ^/dev/vgbroot /etc/fstab >/tmp/fstab
cp /tmp/fstab /etc/fstab
echo "-------- dd copy completed - psg"