Hello Mahesh,
we do something similar with ufsdump and ufsrestore. Since ufsdump and ufsrestore can not be used for veritas private and public regions, the disks are essentially decapsulated after the restore.
In order to work around this, we modify /etc/vfstab to boot from the solaris devices and remove the rootdev entry in /etc/system as well as a few things in /etc/vx/.
During the first boot, we reinitialize VXVM and re-encapsulate the rootdisk(s). After another boot, the system comes up from the veritas devices and everything is fine.
This procedure requires "outside" access to the boot disks to make these changes, however, the changes are quite trivial.
- remove everything vx-related but vxdmp/vxio/vxspec from /etc/system
- modify /etc/vfstab to mount filesystems from standard solaris devices
- create a start-script in /etc/rcS.d as
S84vxencap like this:
#######################
#!/bin/sh -x
prog=`basename $0`
# initialization of variables from config file
CONFIG=/etc/vxconfig
if ; then
/usr/bin/echo "*** CRITICAL ERROR: Important configuration file $CONFIG was not found ***"
/usr/bin/echo "Hint: create the file and reboot to correct the problem :-)"
/usr/bin/sleep 10
exit -1
fi
DISK_LIST=`/usr/bin/cat $CONFIG | /usr/bin/grep -v "#" | /usr/bin/grep "" | /usr/bin/cut -f1 -d: `
echo "${prog}: magical encapsulation for rootdg: $DISK_LIST."
/usr/bin/sleep 5
for vxdisk in $DISK_LIST
do
/etc/vx/bin/vxencap -c -g rootdg $vxdisk
/usr/bin/sleep 7
done
# must find the ROOTDISK, CONTROLLER and all disks to EXCLUDE
# thanks to Tyler Robinson in the Veritas forum
ROOTDISK="`/usr/bin/df / | cut -d\/ -f5 | cut -ds -f1`"
CONTROLLER="`/usr/bin/df / | cut -d\/ -f5 | cut -dt -f1`"
EXCLUDE="`ls /dev/dsk | grep -v ${ROOTDISK} | grep s2 | cut -ds -f1`"
echo "${prog}: configuring excluded devices: ${EXCLUDE}\n"
echo $EXCLUDE >/etc/vx/reconfig.d/$CONTROLLER
echo $CONTROLLER >/etc/vx/reconfig.d/cntrls
# trigger reconfiguration of veritas and dev-tree
/usr/bin/touch /etc/vx/reconfig.d/state.d/init-cap-part
/usr/bin/touch /etc/vx/reconfig.d/state.d/reconfig
/usr/bin/touch /reconfigure
#/usr/sbin/eeprom "local-mac-address?=true"
# do not execute this script in the future
/usr/bin/mv $0 /etc/init.d/$progname
echo "${prog}: DRCC scripts for first boot done."
exit 0
####################
the file /etc/vxconfig contains a simple list of disks like this:
rootdisk=c0t0d0:rootmirror=c0t2d0
disk01=c0t1d0:mirror01=c0t3d0
after S84vxencap, there are standard veritas scripts which will finish encapsulation and reboot automatically.
Hope this helps.
Rene