93 lines
1.8 KiB
Bash
93 lines
1.8 KiB
Bash
#! /bin/sh
|
|
#
|
|
# verify_tapevol_arch arch tapen tapedev tapeserver
|
|
#
|
|
# @(#)verify_tapevol_arch 1.1 88/06/08 4.0NFSSRC; from 1.8 88/03/07 D/NFS
|
|
# @(#) from verify_tapevol_arch 1.13 88/02/08
|
|
#
|
|
# Copyright (c) 1987 by Sun Microsystems, Inc.
|
|
#
|
|
|
|
HOME=/; export HOME
|
|
PATH=/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/etc/netdisk
|
|
CMDNAME=$0
|
|
case $# in
|
|
3 | 4)
|
|
;;
|
|
*)
|
|
echo Usage: $CMDNAME arch tapen tapedev tapeserver
|
|
exit 1 ;;
|
|
esac
|
|
|
|
ARCH=$1
|
|
TAPEN=$2
|
|
TAPEDEV=$3
|
|
TAPESERVER=$4
|
|
ARCH_TAPE=""
|
|
TAPE_NUM=""
|
|
INSTALLPATH="/tmp"
|
|
|
|
case "${TAPESERVER}" in
|
|
"")
|
|
REMOTE=""
|
|
MT_F="mt -t"
|
|
;;
|
|
*)
|
|
REMOTE="rsh ${TAPESERVER} -n"
|
|
MT_F="mt -f"
|
|
;;
|
|
esac
|
|
|
|
while :; do
|
|
while :; do
|
|
STRING=`${REMOTE} ${MT_F} ${TAPEDEV} rew 2>&1`
|
|
case "${STRING}" in
|
|
"")
|
|
${REMOTE} ${MT_F} ${TAPEDEV} fsf 1
|
|
break ;;
|
|
*)
|
|
echo "${STRING}"
|
|
echo "Tape drive ${TAPEDEV} not ready."
|
|
echo "
|
|
Load release tape #${TAPEN} for architecture ${ARCH} and hit <RETURN>: \c"
|
|
read x
|
|
;;
|
|
esac
|
|
done
|
|
#
|
|
# get TOC from release tape (dd format)
|
|
#
|
|
rm -rf ${INSTALLPATH}/TOC
|
|
case "${REMOTE}" in
|
|
"")
|
|
dd if=${TAPEDEV} bs=200k 2>/dev/null \
|
|
| xdrtoc > ${INSTALLPATH}/TOC
|
|
;;
|
|
*)
|
|
${REMOTE} dd if=${TAPEDEV} bs=200k 2>/dev/null \
|
|
| xdrtoc > ${INSTALLPATH}/TOC
|
|
;;
|
|
esac
|
|
ARCH_TAPE=`awk '/^ARCH/ { print $2 }' < ${INSTALLPATH}/TOC`
|
|
TAPE_NUM=`awk '/^VOLUME/ { print $2 }' < ${INSTALLPATH}/TOC`
|
|
case "${ARCH_TAPE}" in
|
|
"${ARCH}" )
|
|
case "${TAPE_NUM}" in
|
|
"${TAPEN}" )
|
|
break
|
|
;;
|
|
*)
|
|
echo "Tape loaded is #${TAPE_NUM}"
|
|
;;
|
|
esac ;;
|
|
*)
|
|
echo "Tape is wrong architecture (${ARCH_TAPE})"
|
|
;;
|
|
esac
|
|
echo "
|
|
Load release tape #${TAPEN} for architecture ${ARCH} and hit <RETURN>: \c"
|
|
read x
|
|
done
|
|
${REMOTE} ${MT_F} ${TAPEDEV} rew 2>&1
|
|
sync; sync
|