Subject: Re: How to upgrade to 1.5.2
To: Donald Lee <donlee_ppc@icompute.com>
From: Chris Coleman <chrisc@vmunix.com>
List: port-macppc
Date: 10/23/2001 23:11:21
This is the kind of thing to send to Daemon News so you can share it with
a larger audience.

articles@daemonnews.org 

Chris Coleman		Editor in Chief
Daemon News E-Zine	http://www.daemonnews.org
Print Magazine		http://magazine.daemonnews.org
Open Packages		http://www.openpackages.org

On Tue, 23 Oct 2001, Donald Lee wrote:

> 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.
> 
> 
> 
> 
>