From: Kevin Counts (counts@digicat.org)
Date: Mon Mar 01 2004 - 16:30:31 EST
SUMMARY: Help troubleshooting bare-metal restore procedure.
Thank you:
Anand Chouthai
Roy Erickson
With help from contributors I identified two things wrong
w/ the procedure I was implementing:
1. I needed to update /dev,/devices, and /etc/path_to_inst
so that the replacement FC drive w/ a new WWN
was correctly recognized as the root disk (this was on a Sun 280R).
2. After fixing that it helped me uncover the "lockup". It was because
I didn't add the "-H" option to bprestore which indicates that
to rename the hardlink targets as well as the normal
source files (I thought bprestore had an AI module that figured
all that out ;-).
After making these two changes I was able to get the system
back to a sane state.
Below are the updated scripts.
The first one is the revised script I am using to do the actual
bare metal restore.
The second is a script I use to build a recovery image. Certain
packages and tarballs are needed which aren't included but
the general idea is there.
--
The only quirk I have observed is that /var/run doesn't get
mounted as swap (the system creates a normal directory).
mount: mount-point /var/run does not exist.
Not sure about this one but for now I will live w/ it.
Thanks again Sun Managers!
Kevin Counts
--
Script #1:
#!/bin/sh
#------------------------------------------------------------------------
# $Id: recover-egate2.sh,v 1.7 2004/03/01 19:36:06 countskm Exp $
#------------------------------------------------------------------------
# Custom script to restore egate2 (run from jumpstart recovery image).
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# Create pre-defined vtoc for 36GB FC Drive
#-------------------------------------------------------------------------
/usr/sbin/fmthard -s - /dev/rdsk/c1t0d0s2 <<EOF
0 2 00 0 8389656 8389655
1 3 01 8389656 8389656 16779311
2 5 00 0 71127180 71127179
3 7 00 16779312 16779312 33558623
4 0 00 33558624 37516554 71075177
6 0 00 71075178 26001 71101178
7 0 00 71101179 26001 71127179
EOF
echo "y" | /usr/sbin/newfs /dev/rdsk/c1t0d0s0
echo "y" | /usr/sbin/newfs /dev/rdsk/c1t0d0s3
echo "y" | /usr/sbin/newfs /dev/rdsk/c1t0d0s4
/usr/sbin/fsck /dev/rdsk/c1t0d0s0
/usr/sbin/fsck /dev/rdsk/c1t0d0s3
/usr/sbin/fsck /dev/rdsk/c1t0d0s4
mount /dev/dsk/c1t0d0s0 /a
mkdir -p /a/var
mkdir -p /a/opt
mount /dev/dsk/c1t0d0s3 /a/var
mount /dev/dsk/c1t0d0s4 /a/opt
#------------------------------------------------------------------------
server=veritas
log=/var/tmp/bprestore.log
rename=/var/tmp/bprestore.rename
filelist=/var/tmp/bprestore.filelist
# extra_opt="-e 2/01/2004 -C egate2"
extra_opt="-C egate2"
cat <<EOF > ${filelist}
/
!/egate
EOF
cat <<EOF > ${rename}
change / to /a
EOF
cat /dev/null > ${log}
cat <<EOF
--------------------------------------------------------------------
Running bprestore in foreground.
View logfile: $log in another login session for status.
(A message will appear in this window when the restore is complete)
--------------------------------------------------------------------
EOF
echo \
/usr/openv/netbackup/bin/bprestore -w \
-H \
-S ${server} \
-L ${log} \
-R ${rename} \
${extra_opt} \
-f ${filelist}
/usr/openv/netbackup/bin/bprestore -w \
-H \
-S ${server} \
-L ${log} \
-R ${rename} \
${extra_opt} \
-f ${filelist}
#-------------------------------------------------------------------------
# Make excluded /egate mountpoint
#-------------------------------------------------------------------------
mkdir -p /a/egate
#-------------------------------------------------------------------------
# Unconfigure disksuite mirror
#-------------------------------------------------------------------------
mv /a/etc/lvm/mddb.cf /a/etc/lvm/mddb.cf.bak
sed -e 's!md/!!g' \
-e 's!d10!c1t0d0s0!g' \
-e 's!d20!c1t0d0s1!g' \
-e 's!d30!c1t0d0s3!g' \
-e 's!d40!c1t0d0s4!g' \
/a/etc/vfstab > /a/etc/vfstab.tmp
cp /a/etc/vfstab /a/etc/vfstab.bak
cp /a/etc/vfstab.tmp /a/etc/vfstab
sed -e '/^rootdev/ s/^/*/' \
-e '/^set md/ s/^/*/' \
/a/etc/system > /a/etc/system.tmp
cp /a/etc/system /a/etc/system.bak
cp /a/etc/system.tmp /a/etc/system
#-------------------------------------------------------------------------
# Rebuild /dev and /devices and /etc/path_to_inst
# Typically we don't backup /dev so check if its even there.
#-------------------------------------------------------------------------
[ -d /a/dev ] && mv /a/dev /a/dev.bak
mv /a/devices /a/devices.bak
mkdir /a/dev
mkdir /a/devices
cd /dev ; find . -depth -print | cpio -pdm /a/dev
cd /devices ; find . -depth -print | cpio -pdm /a/devices
cd
mv /a/etc/path_to_inst \
/a/etc/path_to_inst.bak
cp /tmp/root/etc/path_to_inst \
/a/etc/path_to_inst
#-------------------------------------------------------------------------
# Make mount points excluded from backup
#-------------------------------------------------------------------------
mkdir /a/tmp
chmod 1777 /a/tmp
chown root:sys /a/tmp
#-------------------------------------------------------------------------
# Umount the slices and install the ufs boot block
#-------------------------------------------------------------------------
umount /a/var
umount /a/opt
umount /a
/usr/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t0d0s0
echo "--------------------------------------------------------------------"
echo " Restore complete - type \"reboot -- -r\" to reboot the system."
echo "--------------------------------------------------------------------"
#-------------------------------------------------------------------------
# End.
#-------------------------------------------------------------------------
Script #2:
#!/bin/sh
#-------------------------------------------------------------------------
# Configuring Solaris 8 Boot Image
#-------------------------------------------------------------------------
root=/export/install/SOL8-RECOVER-TEST/Solaris_8/Tools/Boot/
noask=/export/depot/fileset/isconf/plat/sunos/5.8/etc/noask_pkgadd
depot=/export/depot/pkg/sunos/5.8
#-------------------------------------------------------------------------
perl -pi -e '/^root/ && s/NP/<your own hash>/' $root/etc/shadow
exit 0
pkgadd -d ${depot}/SMC/SMCncurs-5.3 -R $root \
-n -a ${noask} all
pkgadd -d ${depot}/MCC/MCCssh2-3.2.3 -R $root \
-n -a ${noask} all
pkgadd -d ${depot}/SMC/SMCbash-2.05 -R $root \
-n -a ${noask} all
#-------------------------------------------------------------------------
perl -pi -e ' /^\s*install\)/ and print <<EOF
recover)
cat < /dev/null > /tmp/._recover_startup
shift
;;
EOF
' $root/sbin/rcS
#-------------------------------------------------------------------------
perl -pi -e ' m!#/usr/sbin/inetd -s! and print <<EOF
if [ -f /tmp/._recover_startup ] ; then
/usr/sbin/inetd -s
fi
EOF
' $root/sbin/sysconfig
#-------------------------------------------------------------------------
perl -pi -e ' m!exec /sbin/suninstall! and print <<EOF
if [ -f /tmp/._recover_startup ] ; then
exec /bin/ksh -o vi
fi
EOF
' $root/sbin/sysconfig
#-------------------------------------------------------------------------
cp -rp tmp_proto/openv $root/.tmp_proto/
ln -s /tmp/openv $root/usr/openv
#-------------------------------------------------------------------------
cat <<EOF >> $root/etc/services
#
# NetBackup services
#
bprd 13720/tcp bprd
bpcd 13782/tcp bpcd
vopied 13783/tcp vopied
bpjava-msvc 13722/tcp bpjava-msvc
EOF
#-------------------------------------------------------------------------
cat <<EOF >> $root/etc/inetd.conf
#
# netbackup services
#
bpcd stream tcp nowait root /usr/openv/netbackup/bin/bpcd bpcd
vopied stream tcp nowait root /usr/openv/bin/vopied vopied
bpjava-msvc stream tcp nowait root /usr/openv/netbackup/bin/bpjava-msvc bpjava-msvc -transient
EOF
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:28:09 EDT