*BSD News Article 27802


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!news.uoknor.edu!ns1.nodak.edu!netnews.nwnet.net!pnl-oracle!osi-east2.es.net!fastrac.llnl.gov!lll-winken.llnl.gov!ames!agate!howland.reston.ans.net!EU.net!ieunet!news.ieunet.ie!jkh
From: jkh@whisker.hubbard.ie (Jordan K. Hubbard)
Newsgroups: comp.os.386bsd.questions
Subject: Re: How to upgrade to FreeBSD-1.1
Date: 23 Feb 1994 21:56:19 GMT
Organization: Jordan Hubbard
Lines: 101
Distribution: world
Message-ID: <JKH.94Feb23215619@whisker.hubbard.ie>
References: <CLMJ28.Gtw@informatik.uni-rostock.de> <Ja6q+fU.dysonj@delphi.com>
NNTP-Posting-Host: whisker.hubbard.ie
In-reply-to: John Dyson's message of Tue, 22 Feb 94 20:03:08 -0500

   >In the moment I'm supping FreeBSD-current. Is ther any sign to notice that
   >FreeBSD-current is the FreeBSD-1.1 version or is it a continuous flow.
   >I want to avoid ftping the whole distrib again from freebsd.cdrom.com!
   >Who has experiences and can help?

Well, something like this script might help you:

#!/bin/sh
#
# Larry Wall Memorial upgrade shell script, version 3.14159262
#
# By: Jordan K. Hubbard
#
# For upgrading from FreeBSD 1.0.2 to 1.1 with a full source distribution.
#

IN_UPGRADE=/var/run/upgrading

if [ "`id -u`" != "0" ]; then
	echo "Sorry, this procedure must be done as root!"
	exit 1
fi
if [ ! -d /usr/src/sbin/mount_procfs ]; then
	echo "These don't look like the FreeBSD BETA 1.1 sources in"
	echo "/usr/src.  Please make sure /usr/src is a _FULL_ copy of"
	echo "FreeBSD 1.1 BETA before running this installation procedure!"
	exit 1
fi
if [ ! -f $IN_UPGRADE ]; then
	echo ""
	echo "This script upgrades you from FreeBSD 1.0.2 to FreeBSD 1.1"
	echo ""
	echo -n "Shall we perform the upgrade now? (yes/no) "
	read ans
	if [ "$ans" != "yes" ]; then
		echo "Upgrade aborted at user request."
		exit 1
	fi
	echo "Good!  Let's get to it.."
	cd /usr/src/share/mk
	make install
	cd /usr/src/include
	make install
	cd /usr/src/usr.sbin/config
	make all install
	cd /usr/src/sbin/mount_procfs
	make all install
	if ! grep -q /proc /etc/fstab; then
		cp /etc/fstab /etc/fstab.1.0
		echo "Adding proc to /etc/fstab - old fstab backed up as /etc/fstab.1.0."
		echo "proc            /proc           procfs  rw 0 0" >> /etc/fstab
	fi
	cd /usr/src/sys/i386/conf
	echo "I see the following configuration files:"
	echo ""
	ls | sed -e '/.*.i386/D'
	echo ""
	echo -n "What is the name of your configuration file? "
	read config
	if [ ! -f $config ]; then
		echo "No such configuration file!  Giving up.."
		exit 1
	fi
	echo "Backing old config file up as " ${config}.1.0
	cp $config ${config}.1.0
	sed -e 's/^controller.*fd0/controller	fdc0/' -e 's/at fd0/at fdc0/' -e 's/controller.*wd\([0-9]\)/controller	wdc\1/' -e 's/at wd\([0-9]\)/at wdc\1/' < ${config}.1.0 >$config
 	config $config
	cd /sys/compile/$config
	make depend all || echo; echo; echo "Make failed!  I can't go on!" ; exit 1
	touch $IN_UPGRADE
	if [ ! -f $IN_UPGRADE ]; then
		echo "Argh!  Unable to checkpoint myself!  Get help!"
		exit 1
	fi
	mv /386bsd /386bsd.old
	mv 386bsd /
	mkdir /proc
	echo ""
	echo "Ok, the new kernel moved into place.  Now reboot the machine and"
	echo "run this script again (as root) when it comes back up."
	echo ""
	exit 0
else
	echo "Hi!  Nice to see you back again!  Let's continue where we left"
	echo "off, shall we?  The following will take awhile, so you may wish"
	echo "to get yourself a couple of gallons of coffee, or perhaps a good book."
	echo ""
	cd /usr/src
	make bootstrapld || echo ; echo; echo "Argh!  Make bootstrapld failed!  Please report this!"; exit 1
	make world || echo; echo; echo "The world failed to build!  Bad news!  Please report this!"; exit 1
	pwd_mkdb -p /etc/master.passwd
	echo ""
	echo "Sweet Success!  You should now reboot your system one more time"
	echo "to be running FreeBSD 1.1 BETA!"
	echo ""
	rm $IN_UPGRADE
	exit 0
fi
--
Jordan K. Hubbard	FreeBSD core team	Electric Bivalves Anonymous
On the net, no one can hear you scream.