.\" $NetBSD: upgrade,v 1.7.2.3 1999/04/15 16:30:33 minoura Exp $	
.\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"        This product includes software developed by the NetBSD
.\"        Foundation, Inc. and its contributors.
.\" 4. Neither the name of The NetBSD Foundation nor the names of its
.\"    contributors may be used to endorse or promote products derived
.\"    from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.
The upgrade to
.Nx \*V
is a binary upgrade; it can be quite difficult
to advance to a later version by recompiling from source due primarily
to interdependencies in the various components.
.Pp
To do the upgrade, you must have the bootable install floppy
.Pa boot.fs ,
or,
.Pa loadbsd.x
utility and
.Pa netbsd.INSTALL
file which can be found in
.Pa installation/misc
in your Human68k disk.
You must also have at least the
.Sy base No and Sy kern
binary distribution sets available, so that you can upgrade with it,
using one of the upgrade methods described below.  Finally, you must
have sufficient disk space available to install the new binaries.
Since the old binaries are being overwritten in place, you only need
space for the new binaries, which weren't previously on the system.
If you have a few megabytes free on each of your root and
.Pa /usr
partitions, you should have enough space.
.Pp
Since upgrading involves replacing the boot blocks on your
.Nx
partition, the kernel, and most of the system binaries, it has the
potential to cause data loss.  You are strongly advised to
.Em back up any important data on your disk ,
whether on the
.Nx
partition or on
another operating system's partition, before beginning the upgrade
process.
.Pp
To upgrade your system, follow the following instructions:
.Bl -enum
.It
Boot your machine using of the boot.fs floppy, or boot with
.Pa loadbsd.x
utility.
.It
You will be presented with a welcome message and a prompt
asking whether you are going to "install" NetBSD or "upgrade"
an exisiting system.  Select "upgrade" to start.
.It
You will be presented with some information about the upgrade
process and a warning message, and will be asked if you wish
to proceed with the upgrade process.  If you answer
negatively, the upgrade process will stop, and your disk will
not be modified.  If you answer affirmatively, the upgrade
process will begin, and your disk will be modified.  You may
hit Control-C to stop the upgrade process at any time.
However, if you hit it at an inopportune moment, your system
may be left in an inconsistent (and possibly unusable) state.
.It
You will be asked if you wish to upgrade your file systems to
the new file system format.  If you do, reply affirmatively.
If you don't have your file systems upgraded now, you should
probably do it manually after the install process is complete,
by using "fsck -c 2". Read the fsck(8) manual page for more
details. Note that this step is only important when upgrading
from a pre-NetBSD 1.0 release.
.It
The upgrade program will then check your root file system,
and, if you approved, will upgrade it to the new file system
format.  It will then mount your root file system on /mnt.
.It
If your file systems are being upgraded, the upgrade script
will copy the new fsck(8) program to your hard disk and
upgrade your remaining file systems.
.It
The upgrade program will then automatically replace the boot
blocks on your disk with newer versions, and mount all of your
file systems under /mnt.  (In other words, your root partition
will be mounted on /mnt, your /usr partition on /mnt/usr, etc.)
.It
If you don't already have the
.Nx
distribution sets on your
disk, look in the installation section for information on how
to transfer them to your disk.
.It
If you don't have the disk space to copy all of the
distribution onto the hard drive, you can
install a kernel on the hard drive as detailed a few
paragraphs below, then boot off the hard drive.  Now
you can copy and install distribution sets
incrementally from your lone floppy drive.
.Pp
Once the distribution sets are transferred to your disk,
continue here.  (Obviously, if the
.Nx
distribution sets
are already on your disk, because you've transferred them
before starting the upgrade process, you don't need to
transfer them again now!)
.It
After the software has been transferred to the machine (or
mounted, in the case of upgrading via NFS or CD-ROM), change
into the directory containing the "base.tgz" distribution set.
Once you are there, run the "Set_tmp_dir" command, and hit
return at the prompt to select the default answer for the
temporary directory's path name.  (It should be the path name
of the directory that you're in.)
.It
Run the command "Extract kern" to upgrade the kernel.
.It
Run the command "Extract base" to upgrade the base
distribution.
.It
Repeat the above two steps for all of the sets you wish to
upgrade.  (For each, change into the directory containing the
set, run "Set_tmp_dir" and accept the default path name, then
run the "Extract <setname>" command.)
.It
If you were previously using the security distribution set, you
.Em must
upgrade to the new version, or you will not be able
to log in when the upgrade process is complete.  Similarly, if
you were not previously using the security set, you must
.Em not
upgrade to the new version.
.It
When you are done upgrading all of the distribution sets you
wish to upgrade, issue the command "Cleanup".  It will clean
up the installation, by remaking some system databases.  When
it is complete, all you have to do is to reboot(8) your system.
.El
.Pp
.Em Your system has now been upgraded to
.Nx \*V .
.Pp
After a new kernel has been copied to your hard disk, your
machine is a complete NetBSD \*V system.  However, that
doesn't mean that you're finished with the upgrade process.
There are several things that you should do, or might have to
do, to insure that the system works properly.
.Pp
First, if you did not upgrade your file systems to the new
file system format during the upgrade process, and you are
upgrading from a pre-1.0 NetBSD, you may want to do so now,
with "fsck -c 2".  If you are unsure about the process, it's
suggested that you read the fsck(8) manual page.
.Pp
Second, you will probably want to get the etc distribution,
extract it, and compare its contents with those in your /etc/
directory.  You will probably want to replace some of your
system configuration files, or incorporate some of the changes
in the new versions into yours.
.Pp
Third, you will probably want to update the set of device
nodes you have in /dev.  If you've changed the contents of
/dev by hand, you will need to be careful about this, but if
not, you can just cd into /dev, and run the command "sh
MAKEDEV all".
.Pp
Fourth, you must deal with certain changes in the formats of
some of the configuration files.  The most notable change is
that the "options" given to many of the file systems in
/etc/fstab or by hand have changed, and some of the file
systems have changed names.
*IMPORTANT*: ANY INSTANCES OF "ufs"
IN /etc/fstab MUST BE CHANGED TO "ffs".
.Em Important: any instances of
.Sy ufs
.Em in
.Pa /etc/fstab
.Em must be changed to
.Sy ffs .
To find out what the
new options are, it's suggested that you read the manual page
for the file systems' mount commands, for example
.Xr mount_nfs 8
for NFS.
.(Note
The information for mounts of type
.Em ffs ,
i.e. Fast File System, is contained in the
.Xr mount 8
man page.
.Note)
.Pp
Finally, you will want to delete old binaries that were part
of the version of NetBSD that you upgraded from and have since
been removed from the NetBSD distribution.  If you are
upgrading from a pre-1.0 NetBSD, you might also
want to recompile any locally-built binaries, to take
advantage of the shared libraries.  (Note that any new
binaries that you build will be dynamically linked, and
therefore take advantage of the shared libraries, by default.
For information on how to make statically linked binaries,
see the cc(1) and ld(1) manual pages.)
