DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦054a9e366⟧ TextFile

    Length: 9900 (0x26ac)
    Types: TextFile
    Notes: UNIX file
    Names: »INSTALL«

Derivation

└─⟦08d12fb7c⟧ Bits:30004153 SW95705I.2 386/ix Multi-User Rel 2.2 boot
└─⟦08d12fb7c⟧ UNIX Filesystem
    └─ ⟦this⟧ »INSTALL« 

TextFile

#	@(#)INSTALL	2.35 - 89/04/28
echo "
	Copyright (C) 1984, 1986, 1987, 1988 AT&T
	(c) Copyright INTERACTIVE Systems Corporation, 1987, 1988, 1989
		All Rights Reserved.
"
trap 'trap "" 1 2 3 9 15;
	echo "\nYou have aborted the 386/ix Operating System installation.
If you wish to re-run it, type INSTALL at the prompt.
Please consult your \"Operations/System Administration Guide\"
for further information.";
	umount /dev/dsk/0s3 > /dev/null 2>&1; sync; sync;
	umount /dev/dsk/0s1 > /dev/null 2>&1; sync; sync;
exit 2' 1 2 3 15

stty erase '^h'
#	Make SURE the user wants to do this.
confirm() {
echo "Press ENTER to $1 the 386/ix System on your hard disk.\n(DEL to abort)\c"
read a
while [ "$a" != "" ]
do
	echo "Please press either ENTER to $1 the 386/ix System\n or DEL to abort. \c"
	read a
	echo ""
done
}
#	get an answer from 2 choices, usage getyn "question" [ ans1 [ans2]]
getyn() {
	ANS=
	yes=${2:-y}
	no=${3:-n}
	echo $1
	while [ "$ANS" != $yes -a "$ANS" != $no ]
	do
		echo "Please answer \"$yes\" or \"$no\". \c"
		read ANS
	done
}
#	mklost, make a lost+found directory in $1
mklost() {
	(
	cd ${1:-/mnt}	
	[ -d lost+found ] || mkdir lost+found
	cd lost+found
	for ii in 1 2 3 4 5 6 7 8 9
	do
		for xx in 1 2 3 4 5 6 7 8 9
		do
			> tmp.$ii.$xx
		done
	done
	sync
	rm -f tmp.?.?
	)
}
#	START HERE
newinstall=1
intlv=nono
ques="What interleave factor was the disk originally formatted with?\nIf you do not know, answer \"0\"."

/etc/whatkb first

confirm "upgrade or install"

echo "\nChecking for an existing 386/ix system on hard disk.\n"
/bin/dd if=/dev/rdsk/0s1 count=1 > /dev/null 2>&1
if [ $? -eq 0 ]
then	# upgrade possible
	fsck -y /dev/dsk/0s1 >/dev/null 2>&1
	echo "Mounting root filesystem .. \c"
	mount /dev/dsk/0s1 /mnt >/dev/null 2>&1 
	if [ $? -eq 0 ]
	then	# upgrade possible
		echo "OK"
#	ask the user what they want
		getyn "Please enter \"n\" for a new installation, or \"u\" for an upgrade installation." n u
		case "$ANS" in
		u)	newinstall=0;;
		n)	umount /dev/dsk/0s1 ;; 
		esac	
	fi
fi
#	if upgrade fsck and mount, if that fails, complain and ask again
if [ $newinstall -eq 0 ]
then # see if /usr should be mounted.
	if [ -f /mnt/etc/fstab ]
	then
		while read fsdev mountpoint junk
		do
			if [ "$mountpoint" = "/usr" -o "$mountpoint" = "/tmp" ]
		    then
			fsck -y $fsdev >/dev/null 2>&1
			mount $fsdev /mnt/$mountpoint >/dev/null 2>&1
			if [ $? -ne 0 ]
			then
				echo "Cannot mount $mountpoint. You may install a new system, or"
				echo "you may continue the upgrade without using the $mountpoint filesystem."
				confirm "continue the upgrade of"
			fi
			break
		    fi
		done </mnt/etc/fstab
	else # no fstab?  what's going on?
		echo "No additional filesystems found."
		confirm "continue the upgrade of" 
	fi

	echo "\nThe 386/ix System will now be upgraded on your hard disk."

	cp /mnt/etc/partitions /mnt/etc/UGpartitions

	ed /mnt/etc/inittab > /dev/null 2>&1 <<!
1,$ s/\/etc\/keyboard/\/usr\/lib\/keyboard/
w
q
!
	cp /mnt/etc/inittab /mnt/etc/UGinittab
	cp /etc/inittab2 /mnt/etc/inittab
	cp /mnt/etc/passwd /mnt/etc/UGpasswd
	cp /mnt/etc/shadow /mnt/etc/UGshadow
	cp /mnt/etc/group /mnt/etc/UGgroup
	cp /mnt/etc/fstab /mnt/etc/UGfstab
	cp /mnt/etc/TIMEZONE /mnt/etc/UGTIMEZONE
	if [ -d /mnt/etc/conf/cf.d ] 
	then
		ed /mnt/etc/conf/cf.d/init.base > /dev/null 2>&1 <<!
1,$ s/\/etc\/keyboard/\/usr\/lib\/keyboard/
w
q
!
		cp /mnt/etc/conf/cf.d/init.base /mnt/etc/conf/cf.d/UGinit.base
	fi

	if [ ! -d /mnt/etc/conf/kconfig.d ] # no kconfig? give 'em a new kernel.
	then
		echo Installing new kernel.
		mv /mnt/unix /mnt/OLD.unix
		cp /unix /mnt
	fi
#	get just the binaries and necessary device nodes off this disk
	find  bin dev/tape dev/rdsk/f0 dev/rdsk/f0t etc/mkfs etc/fsck \
			/etc/rc.d etc/init etc/whatkb etc/check_tape shlib \
			/usr/lib/keyboard -print |\
		 cpio -pdmau /mnt > /dev/null 2>&1
	mv /mnt/bin/-sh /mnt/tmp/-sh
	find dev/console -print | cpio -pdmau /mnt/tmp >/dev/null 2>&1

	[ -f /mnt/.profile ] && cp /mnt/.profile /mnt/UG.profile
	cp .profile /mnt
	cp INSTALL2 /mnt/tmp/INSTALL
	cp readfloppy LABEL /mnt/tmp > /dev/null 2>&1
#	unmount stuff
	while read fsdev mountpoint junk
	do
	    if [ "$mountpoint" = "/usr" -o "$mountpoint" = "/tmp" ]
#	    if [ "$mountpoint" = "/tmp" ]
	    then
		umount $fsdev
	    fi
	done </mnt/etc/fstab
#	now jump to the last few lines in the script.

else #	New installation. do everything.
#	check disk configuration
	diskconfig 00
# ask if the want to format the disk. ask if they know the interleave
	getyn "Do you want to format the primary drive?" y n
	doformat=$ANS
	low="0"
	if [ "$ANS" = "y" ]
	then
		ques="What interleave factor (1 - 9) do you want to use?"
		low="1"
	fi
	while [ "$intlv"  = "nono" ]
	do
		echo "$ques \c"
		read ans
		case "$ans" in
			0)	if [ "$doformat" = "y" ]
				then 
					echo "invalid response, please enter a single digit from 1 to 9."
				else intlv=$ans
				fi ;;
			[1-9]) intlv=$ans ;;
			*) echo "invalid response, please enter a single digit from $low to 9." ;;
		esac
	done
#		Run mkpart -i [-F if formatting]
	rm -f /tmp/part
	echo "disk0:\n\tdevice=\"/dev/rdsk/0p0\", vtocsec=29, altsec=30, boot=\"/etc/boot\"" >/tmp/part
	if [ "$doformat" = y ]
	then
		mkpart -F $intlv -f /tmp/part disk0
		if [ $? != 0 ]
		then
			echo "\nFormat Failed.  To try again, type INSTALL at the # prompt."
			exit	2
		fi
		echo "You must now repartition your disk."
		ANS=y
	else
		getyn "Do you want to repartition your hard disk?" y n
	fi
	if [ "$ANS" = "y" ]
	then
		/etc/fdisk /dev/rdsk/0p0
		if [ $? -ne 0 ]
		then
			echo "Cannot partition hard disk. You may have an unformmated disk."
			echo "If your disk has never been used, you must format it.\n"
			exit 6
		fi
		echo "\nHard disk partitioning complete."
	fi
#	install correct interleave
	mkpart -I $intlv -f /tmp/part disk0 >/dev/null
	if [ $? != 0 ]
	then
		echo 'Cannot initialize the disk.  To try again, type INSTALL at the # prompt.'
		exit	3
	fi
#		run disksetup 
	echo
	getyn "\tDo you wish to do a surface analysis?" y n
	if [ "$ANS" = "y" ]
	then
		getyn "\tDo you wish to do a complete surface analysis?\nAnswer 'y' to
	write and read every sector, 'n' to just read every sector.\n
	NOTE: writing the whole disk takes a while." y n
		if [ "$ANS" = "y" ]
		then    verf="V"
		else    verf="v"
		fi
		diskverify -e$verf -I $intlv 00
		if [ $? != 0 ]
		then
			echo "Cannot verify the disk.  To try again, type INSTALL at the # prompt.\nBe sure you create a UNIX partition on the disk."
			exit 4
		fi
	else # if this file hangs aroung from some old installation, it's bad.
		rm -f /tmp/badsectors 
	fi
#	get filesystem partitioning info
	disksetup 00
	if [ $? != 0 ]
	then
		echo "Cannot setup the disk.  To try again, type INSTALL at the # prompt.\nBe sure you create a UNIX partition on the disk."
		exit 4
	fi
	echo "\nCreating 386/ix partitions.\n"
	while read pnam
	do
		/etc/mkpart -P $pnam disk0 >/dev/null 2>&1
	done <addparts
#		mkfs with mkfs.data
	> /tmp/newfstab
	while read devnm devsiz gap cylsiz fsnam 
	do
		echo "\nCreating file system for" $fsnam
		/etc/mkfs $devnm $devsiz 1 $cylsiz >/dev/null 2>&1
		echo "Labeling" $fsnam
		/etc/labelit $devnm $fsnam disk0 >/dev/null 2>&1
		sync
		# special case, if $devnm = /dev/dsk/0s1, it's the root
		if [ "$devnm" = /dev/dsk/0s1 ]
		then
			fsnam=/
		else
			echo $devnm /$fsnam >>/tmp/newfstab
		fi
		[ -d /mnt/$fsnam ] || mkdir /mnt/$fsnam
		/etc/mount $devnm /mnt/$fsnam 
		if [ $? -ne 0 ]
		then
			echo Mount of $fsnam failed.
			exit 3
		fi
		echo "Creating lost+found directory in" $fsnam
		mklost /mnt/$fsnam
		chmod 777 /mnt/$fsnam/lost+found
	done <mkfs.data
#	root & usr (and any other mountable partitions) are now all mounted

	echo "\nThe 386/ix System will now be installed on your hard disk."
	echo "Please be patient...\c"
	cd /

	cp unix /mnt
	# install kernel
	echo ".\c"
	chmod 775 /mnt
	chmod 744 /mnt/unix
	chown root /mnt /mnt/unix
	chgrp sys /mnt
	chgrp other /mnt/unix
	echo ".\c"

	[ -d /mnt/etc ] || mkdir /mnt/etc
	[ -d /mnt/tmp ] || mkdir /mnt/tmp > /dev/null 2>&1
	[ -d /mnt/mnt ] || mkdir /mnt/mnt > /dev/null 2>&1
	[ -d /mnt/usr ] || mkdir /mnt/usr > /dev/null 2>&1
	chmod 777 /mnt/tmp /mnt/mnt /mnt/usr
	echo ".\c"

	# cpio stuff into it.
	find dev bin etc shlib usr -print | cpio -pdmau /mnt > /dev/null 2>&1
	rm -f /mnt/dev/root
	mknod /mnt/dev/root b 0 1
	echo ".\c"
	# and install new configuration files.
	cp /mkfs.data /mnt
	/etc/mkpart -b -B /etc/boot -f /mnt/etc/partitions disk0
	echo ".\c"
	mv /mnt/etc/inittab2 /mnt/etc/inittab
	cp /tmp/newfstab /mnt/etc/fstab
	sync
	echo ".\c"
	> /mnt/etc/mnttab
	echo ".\c"

#	put appropriate version of boot defaults into /etc 
#	see sys/machenv.h for definition values.
	/etc/machine_type > /dev/null 2>&1
	m=$?
	case $m in
		1) SUF=cpq ;;
		2) SUF=ps2 ;;
		3) SUF=at386 ;;
	    [4-5]) getyn "This machine appears to be an AT&T WS-6386, is this correct?" y n
			if [ "$ANS" = "y" ]
			then
				if [ "$m" = "4" ]
				then
					SUF=att
				else
					SUF=att5
				fi
			else 
				SUF=at386
			fi ;;
		6) SUF=m380 ;;
		*) SUF=at386 ;;
	esac
	cp /mnt/etc/default/default.$SUF /mnt/etc/default/boot

	[ -d /mnt/tmp ] || mkdir /mnt/tmp > /dev/null 2>&1
	[ -d /mnt/mnt ] || mkdir /mnt/mnt > /dev/null 2>&1
	[ -d /mnt/usr ] || mkdir /mnt/usr > /dev/null 2>&1
	echo ".\c"
	cp .profile /mnt
	cp INSTALL2 /mnt/tmp/INSTALL
	cp readfloppy LABEL /mnt/tmp > /dev/null 2>&1
	sync
	echo ".\c"
	mv /mnt/bin/-sh /mnt/tmp/-sh
	find dev/console -print | cpio -pdmau /mnt/tmp > /dev/null 2>&1
	echo ".\c"
	sync
#	unmount everything, 
	while read devnm fsnam
	do
		umount $devnm >/dev/null 2>&1
	done < /tmp/newfstab

fi 


echo "Unmounting root filesystem\c"
/etc/umount /dev/dsk/0s1
echo ""

sync; sync
echo "\n\tWhen you are prompted to reboot your system,\n\
	remove the floppy disk from the diskette drive,\n\
	and strike any key.  Wait for the prompt.\n"
uadmin 2 0