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.