.\"	$NetBSD: upgrade,v 1.16.2.3 1999/04/27 21:02:14 perry 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
.Nx
kernel on AmigaDOS and
you must transfer the miniroot file system miniroot.fs onto the swap
partition of the
.Nx
hard disk. You must also have at least the
"base" binary distribution set available, so that you can upgrade
with it, using one of the upgrade methods described above. 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 /usr partitions, you should have enough space.
.Pp
Since upgrading involves replacing the kernel, and most of the system
binaries, it has the potential to cause data loss. You are strongly
advised to BACK UP ANY IMPORTANT DATA ON YOUR DISK, whether on the
NetBSD partition or on another operating system's partition, before
beginning the upgrade process.
.Pp
To upgrade your system, follow the following instructions:
.Pp
Transfer the miniroot file system onto the hard disk partition
used by
.Nx
for swapping, as described in the "Preparing
your System for
.Nx
Installation" section above.
.Pp
Now boot up
.Nx
using the \*V kernel using the loadbsd
command:
.Dl loadbsd -b netbsd
If you machine has a split memory space, like, e.g., DraCo
machines, use this instead:
.Dl loadbsd -bn2 netbsd
.Pp
If you have a M680x0 + PPC board, make sure the PPC cpu is inactive
before using loadbsd, else the kernel will hang!
.Ss2 Directly\ booting\ NetBSD,\ with\ boot\ blocks\ installed:
.(tag Note:
This description is for V40 (OS 3.1) ROMs. For older ROMs,
there might be small differences. Check your AmigaOS documentation
to learn about the exact procedure.
Booting using bootblocks doesn't work at all on some systems, and may
require a mountable filesystem on others.
.tag)
.Pp
Reboot your machine, holding down both mouse buttons if you
have a 2-button mouse, the outer mouse buttons if you have
a 3-button mouse. On the DraCo, press the left mouse button
instead, when the boot screen prompts you for it.
.Pp
From the boot menu, select
.Ic Boot Options .
Select the swap partition with the miniroot, and then
.Ic ok . No Select
.Ic Boot No now .
The machine will boot the bootblock, which
will prompt your for a command line. You have a few seconds time
to change the default. Entering an empty line will accept the
default.
.Pp
The bootblock uses command lines of the form:
.Ar \ \ \ \ file Op Ar options
where
.Ar file
is the kernel file name on the partition where the
boot block is on, and
.Ar options
are the same as with loadbsd.
E.g., instead of
.Dl loadbsd -bsSn2 netbsd
use
.Dl "netbsd -bsSn2
.
.Ss2 Once\ your\ kernel\ boots:
.
You should see the screen clear and some information about
your system as the kernel configures the hardware. Note which
hard disk device is configured that contains your root and
swap partition. When prompted for the root device, type
.Ic sd0b
(replacing
.Ic 0
with the disk number that
.Nx
used for
your root/swap device). When prompted for a dump device,
answer 'none' for the upgrade. (For a normal boot, you would
tell it one of the swap devices). When prompted for the root
filesystem type, confirm 'generic', which will auto-detect it.
.Pp
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.
.Pp
You will now be greeted and reminded of the fact that this is a
potential dangerous procedure and that you should not upgrade the
etc-set.
.Pp
When you decide to proceed, you will be prompted to enter
your root disk. After you've done this, it will be checked
automatically to make sure that the filesystem is in a sane
state before making any modifications. After this is done,
you will be asked if you want to configure your network.
.Pp
You are now allowed to edit your fstab. Normally you don't have
to. Note that the upgrade-kit uses it's own copy of the fstab.
Whatever you do here *won't* affect your actual fstab.
After you are satisfied with your fstab, the upgrade-kit will check
all filesystems mentioned in it. When they're ok, they will be
mounted.
.Pp
You will now be asked if your sets are stored on a normally
mounted filesystem. You should answer 'y' to this question if
you have the sets stored on a filesystem that was present in
the fstab. The actions you should take for the set extraction
are pretty logical (I think).
.Pp
After you have extracted the sets, the upgrade kit will proceed
with setting the timezone and installing the kernel and bootcode.
This is all exactly the same as described in the installation
section.
.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
.Nx \*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
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
You will want to delete old binaries that were part
of the version of
.Nx
that you upgraded from and have since
been removed from the
.Nx
distribution. If upgrading from a
.Nx
version older than 1.0, 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.)
