Subject: Re: How to upgrade to 1.5.2
To: None <port-macppc@netbsd.org>
From: Donald Lee <donlee_ppc@icompute.com>
List: port-macppc
Date: 10/23/2001 19:25:51
Dear list,

(Forgive the long message.  THis is to report back on my upgrade
experience.  It went well. -dgl-)

Here is the plan that I executed on 10/20/01 to upgrade from NetBSD
1.5 to NetBSD 1.5.2.  I have added some comments on the bullets,
and a little commentary on what I think might be nice to have
changed to make this process easier.

This was done on a production system, where downtime is never supposed
to happen, so I had to plan it in advance.  I also never know when someone
is changing his data/passwd, etc.  So, I was paranoid. ;->

I put in some info at the end in case anyone wants details of what this
machine is, and how it's configured.

("o" on procedure.  "-" on commentary)

--
PREP:

o compare setup, especially /etc with virgin 1.5 tarballs.
  Save away files that have changed, and merge any changes
  with the new ones in 1.5.2.

	Scripts: (ftp://ftp.icompute.com/pub/donlee/up152)
	runtar: unpack the tarballs, including etc, and deal with the
		logs that get clobbered.  Also save away the root contab,
		"/var/log/lastlog", and "rotate" the logs managed by newsyslog.

	upetc: Copy in the production /etc files on top of the "virgin" ones
		installed from the /etc tarball.  Update localtime.

	deleteme: delete the files in 1.5 that are no longer in 1.5.2.

o Create 1.5.2 boot floppy - test it.
  The plan requires changes that can't be made on a running system.


On 10/20:
	o become root

	o Run two backups of the whole system.  Paranoia rules!
	(backup: n: the desired state after this operation ;-> )

	o shutdown to single user.
		- This locks out the users and other sources of flux.

	o go to /root/up152
		- I chose /root/up152 as the "home" of this operation.

	o Run vipw - save away the text in /root/up152/pwfile
		- The install tarballs install a "virgin" password file.
		- Best to squirrel away the old one.

	o power down and install ethernet card.
		- Installed SMC Etherpower II 10/100.  Seems to work well.
 
	o re-boot from floppy. -> start shell (ksh) -> stty erase ^*
		- default erase char on console is annoying.

	o mount sd0a on /mnt, sd0g on /mnt/usr and sd1g on /mnt/cuda

	o mv /usr /usr.md ; ln -s /mnt/usr /usr
		- This gave me fits.  I wanted to have access to things like
		- vi, but they are not in /usr on floppy.  If I mounted
		- the "real" /usr as /usr, then the upgrade process
		- got complicated.  This gave me both.

	o cd /mnt/root/up152

	o check scripts for ROOT var as /mnt
		- paranoia. ;->

	o Run runtar | tee -a OUTPUT
		- runtar is the script that unpacks the tarballs
		- but also rotates and massages the logs.  It installs
		- the etc tarball too.
		- ftp://ftp.icompute.com/pub/donlee/up152

	o run upetc (Check upetc for proper ETC dirs.)
		- scripts available on ftp://ftp.icompute.com/pub/donlee/up152

	o Check rc.conf, and others - just to be sure.

	o Change rc.conf to epic0
		- added 10/100 ethernet - configure it in rc.conf and
		- /etc/ifconfig.epic0

	o run deleteme
		- Delete those files that were in 1.5 and no longer in 1.5.2
		- script in ftp://ftp.icompute.com/pub/donlee/up152

	o. Put my kernel - netbsd.try2 in /netbsd.
		- special kernel - Cyclades, config, extintr.c fixes.

	o. install new boot blocks
		cp /usr/mdec/ofwboot /mnt/boot
		/usr/mdec/installboot /mnt/boot /usr/mdec/bootxx /dev/rsd0a
		sync
		sync
		sync

		- Don't forget the syncs.  Without them, this does not work.

	o Reboot single user from HDD  Open Firmware "boot scsi-int/sd@0:0 -s"

	o cd /root/up152

	o vipw ; replace text with /root/up152/pwfile
		- restore password file

	o build devices
		- This was probably not necessary, but seemed like a
		- good idea.

	o Bring up (config) network - run newaliases
		- newaliases is needed because /etc/mail/aliases changed.
		- newaliases won't run (in your lifetime) without a functioning
		- network.

	o reboot, smile
		- ... and what do you know?  It worked!

==============

Commentary on the upgrade/install.

My suggestions:

- The several log files that are installed in /var/log by the tarball(s)
should not be.  This was one the headaches that came as a surprise to me.
I did not realize that I could lose most of my logfiles by upgrading.
YOu also can't run newsyslog without copying and modifying the newsyslog.conf
file in the floppy boot environment.  What I ended up doing was copying
the .conf file, and running "newsyslog -f modcopy.conf" to effectively
"save away" the logs.  The lastlog file and localtime also get blown away.
If there is a good reason why these have to be installed as zero length files,
then I understand, but I would think there should be a better way.

- The list of files that have moved or gone away is easy to generate, and
should probably be part of the release.

- Beware the replacement of the root crontab!

- It would be nice if all the files I had changed in /etc
could be in one place, and unmolested by the upgrade.  (I can dream. ;-> )

==============

Context:  This machine is a PowerComputing Power Center 132 with a
300 Mhz G3 upgrade card in it.  It has a Seagate 4.3G Medalist (/ and /usr)
and an 18G cuda (/cuda).  It also has a 10/100 SMC Etherpower II card,
and a Cyclades 8Y 8 port serial card.  It is a telnet, ftp, ntpd, sshd,
web, and DNS server.  It also hosts 4 analog modems for dial-up.
We host about 20 domains on the web server, and have a number of dial-up
customers.

I have several changes to the stock system.

	pppd is modified to fix a bug in parameter handling
	(PR #11720)

	macppc/macppc/extintr.c is modified to fix a race
	condition that causes poor ppp performance.
	(PR #12989)

	Configuration changes to enable more ppp devices, fewer
	unused devices, and the backside cache.