322 lines
13 KiB
Plaintext
322 lines
13 KiB
Plaintext
Installing NetBSD is a relatively complex process, but if you have
|
|
this document in hand it shouldn't be too much trouble.
|
|
|
|
There are several ways to install NetBSD onto a disk. If your Sparcstation
|
|
is hooked up in a network you can find find a server and arrange for a
|
|
diskless setup which is a convenient way to install on a machine with
|
|
a single disk attached. Alternatively, you could use SunOS (booted from
|
|
a local disk) and install NetBSD onto a second disk. For the latter method,
|
|
skip to the section "Installing from SunOS" below.
|
|
|
|
|
|
Installing using a diskless setup.
|
|
|
|
First, you must setup a diskless client configuration on a server. If
|
|
you are using a NetBSD system as the boot-server, have a look at the
|
|
diskless(8) manual page for guidelines on how to proceed with this.
|
|
If the server runs another operating system, you'll have to consult
|
|
documentation that came with it (on SunOS systems, add_client(8) is a
|
|
good start).
|
|
|
|
Your Sparcstation expects to be able to download a second stage bootstrap
|
|
program via TFTP after havinf acquired its IP address through RevARP when
|
|
instructed to boot "over the net". It will look for a filename composed of
|
|
the machine's IP address followed by the machine's architecture, separated
|
|
by a period. For example, a sun4c machine which has been assigned IP
|
|
address 130.115.144.11, will make an TFTP request for `8273900B.SUN4C'.
|
|
Normally, this file is symbolic link to an appropriate second-stage
|
|
boot program, which should be located in a place where the TFTP daemon
|
|
can find it (remember, many TFTP daemons run in a chroot'ed environment).
|
|
You can find the boot program in `/usr/mdec/boot' in the NetBSD/sparc
|
|
distribution. Unfortunately, it is necessary to install this file
|
|
differently for sun4 and sun4c/sun4m clients: the sun4 version needs to
|
|
have its `a.out' header stripped off (otherwise the machine will crash),
|
|
while the sun4c/sun4m version must retain it (otherwise the PROM will
|
|
complain).
|
|
|
|
Luckily, there is a script in /usr/mdec to do all this for you. You only
|
|
need to do this:
|
|
|
|
server# cd /<client-root-dir>/usr/mdec
|
|
server# ./binstall net /<client-root-dir>
|
|
|
|
|
|
As noted above in the section `Preparing your System for NetBSD Installation',
|
|
you have several options when choosing a location to store the installation
|
|
filesets. However, the easiest way is to put the *.tar.gz files you want
|
|
to install into the root directory for your client on the server.
|
|
|
|
Next, unpack `base.tar.gz' and `etc.tar.gz' on the server in the root
|
|
directory for your machine. If you elect to use a separately NFS-mounted
|
|
filesystem for `/usr' with your diskless setup, make sure the "./usr" base
|
|
files in base.tar.gz end up in the correct location. One way to do this is
|
|
to temporarily use a loopback mount on the server, re-routing <root>/usr to
|
|
your server's exported NetBSD "/usr" directory. Also put the kernel and the
|
|
install/upgrade scripts into the root directory.
|
|
|
|
A few configuration files need to be edited:
|
|
|
|
<root>/etc/hosts
|
|
Add the IP addresses of both server and client.
|
|
|
|
<root>/etc/myname
|
|
This files contains the client's hostname; use the same
|
|
name as in <root>/etc/hosts.
|
|
|
|
<root>/etc/fstab
|
|
Enter the entries for the remotely mounted filesystems.
|
|
For example:
|
|
server:/export/root/client / nfs rw 0 0
|
|
server:/export/exec/sun4.netbsd /usr nfs rw 0 0
|
|
|
|
Now you must populate the the `/dev' directory for your client. If you server
|
|
runs SunOS 4.x, you can simply change your working directory to `<root>/dev'
|
|
and run the MAKEDEV script: `sh MAKEDEV all'.
|
|
|
|
On SunOS 5.x systems, MAKEDEV can also be used, but there'll be error
|
|
messages about unknown user and groups. These errors are inconsequential
|
|
for the purpose of installing NetBSD. However, you may want to correct them
|
|
if you plan to the diskless setup regularly. In that case, you may re-run
|
|
MAKEDEV on your NetBSD machine once it has booted.
|
|
|
|
Boot your workstation from the server by entering the appropriate `boot'
|
|
command at the monitor prompt. Depending on the PROM version in your machine,
|
|
this command takes one of the following forms:
|
|
|
|
> b le()netbsd -s # for sun4 monitors
|
|
ok boot le()netbsd -s # for version 1 OpenBOOT ROMs
|
|
ok boot net netbsd -s # for version 2 OpenBOOT ROMs
|
|
|
|
This will boot the NetBSD kernel in single-user mode.
|
|
|
|
[[
|
|
NOTE: the latter two examples assume you operate the OpenBOOT ROM in
|
|
"new command mode". If your machine comes up and gives you a `>' prompt
|
|
instead of `ok', type:
|
|
|
|
>n # enter native OpenBOOT mode
|
|
ok setenv sunmon-compat? false # make it permanent
|
|
ok
|
|
]]
|
|
|
|
If you use a diskless setup with a separately NFS-mounted /usr filesystem,
|
|
mount /usr by hand now:
|
|
|
|
netbsd# mount /usr
|
|
|
|
At this point, it's worth checking the disk label and partition sizes on
|
|
the disk you want to install NetBSD onto. NetBSD understands SunOS-style
|
|
disklabels, so if your disk was previously used by SunOS there will be
|
|
a usable label on it. Use `disklabel -e <disk>' (where <disk> is the
|
|
device name assigned by the NetBSD kernel, e.g. `sd0') to view and
|
|
modify the partition sizes. A comfortable size for the root filesystem
|
|
partition is about 20MB; a good initial size for the swap partition is
|
|
twice the amount of physical memory in your machine (though, unlike
|
|
SunOS 4.x, there are no restrictions on the size of the swap partition
|
|
that would render part of your memory unusable). A full binary installation
|
|
takes about 60MB in `/usr'. Make all your partitions start and end on
|
|
cylinder boundaries.
|
|
|
|
NOTE: if you are installing on a SCSI disk that does *not* have a SunOS
|
|
or NetBSD label on it, you may still be able to use disklabel(8) but you'll
|
|
have to create all partitions from scratch. If your disk is listed in
|
|
`/etc/disktab', you may use the entry (which in most cases only defines
|
|
a `c' partition to describe the whole disk) to put an initial label on
|
|
the disk.
|
|
|
|
Here follows an example of what you'll see while in the dislabel editor.
|
|
Do not touch any of the parameters except for the `label: ' entry and
|
|
the actual partition size information at the bottom (the lines starting
|
|
with `a:', `b:', ...).
|
|
|
|
The size and offset fields are given in sector units. Be sure to make
|
|
these numbers multiples of the of the number of sectors per cylinder:
|
|
the kernel might be picky about these things, but aside from this you'll
|
|
have the least chance of wasting disk space.
|
|
Partitions on which you intend to have a a mountable filesystem, should
|
|
be given fstype `4.2BSD'. Remember, the `c' partition should describe
|
|
the whole disk.
|
|
The `(Cyl. x - y)' info that appears after the hash (`#') character is
|
|
treated as a comment and need not be filled in when altering partitions.
|
|
|
|
Special note: the line containing `8 partitions:' is best left alone,
|
|
even if you define less then eight partitions. If this line displays
|
|
a different number and the program complains about it (after you leave
|
|
the editor), then try setting it to `8 partitions:'.
|
|
|
|
|
|
<BEGIN SAMPLE DISKLABEL SCREEN>
|
|
netbsd# disklabel sd2
|
|
# /dev/rsd2c:
|
|
type: SCSI
|
|
disk: SCSI disk
|
|
label: Hold Your Breath
|
|
flags:
|
|
bytes/sector: 512
|
|
sectors/track: 64
|
|
tracks/cylinder: 7
|
|
sectors/cylinder: 448
|
|
cylinders: 1429
|
|
rpm: 3600
|
|
interleave: 1
|
|
trackskew: 0
|
|
cylinderskew: 0
|
|
headswitch: 0 # milliseconds
|
|
track-to-track seek: 0 # milliseconds
|
|
drivedata: 0
|
|
|
|
8 partitions:
|
|
# size offset fstype [fsize bsize cpg]
|
|
a: 50176 0 4.2BSD 0 0 0 # (Cyl. 0 - 111)
|
|
b: 64512 50176 swap # (Cyl. 112 - 255)
|
|
c: 640192 0 unknown # (Cyl. 0 - 1428)
|
|
d: 525504 114688 4.2BSD 0 0 0 # (Cyl. 256 - 1428)
|
|
<END SAMPLE DISKLABEL SCREEN>
|
|
|
|
|
|
If you are upgrading a NetBSD installation, start the upgrade script:
|
|
|
|
netbsd# sh upgrade.sh
|
|
|
|
else, start the installation script:
|
|
|
|
netbsd# sh install.sh
|
|
|
|
|
|
These scripts will do most of the work of transferring the system from the
|
|
tar files onto your disk. You will frequently be asked for confirmation
|
|
before the script proceeds with each phase of the installation process.
|
|
Occasionally, you'll have to provide a piece of information such as the
|
|
name of the disk you want to install on or IP addresses and domain names
|
|
you want to assign. If your system has more than one disk, you may want
|
|
to look at the output of the dmesg(8) command to see how your disks
|
|
have been identified by the kernel.
|
|
|
|
The installation script goes through the following phases:
|
|
|
|
- determination of the disk to install NetBSD on
|
|
- checking of the partition information on the disk
|
|
- creating and mounting the NetBSD filesystems
|
|
- setup of IP configuration
|
|
- extraction of the distribution tar files
|
|
- installation of boot programs
|
|
|
|
|
|
Now try a reboot. (If needed, swap your scsi id's first). Initially
|
|
I'd suggest you "boot sd()netbsd -bs", then try multiuser after that.
|
|
if you boot single-user the NetBSD incantation to make the root
|
|
filesystem writable is
|
|
|
|
netbsd# mount -u /dev/sd0a /
|
|
|
|
The Sun monitor normally tries to load a file called "vmunix". On
|
|
OpenBOOT ROM systems you can change it to load NetBSD instead using
|
|
the following commands:
|
|
|
|
On version 1 OpenBOOT ROMs:
|
|
>n
|
|
ok setenv boot-from sd(0,0,0)netbsd
|
|
ok
|
|
|
|
On version 2 OpenBOOT ROMs:
|
|
ok setenv boot-file netbsd
|
|
ok setenv boot-device /sbus/esp/sd@0,0
|
|
|
|
|
|
Congratulations, you have successfully installed NetBSD RELEASE. When you
|
|
reboot into NetBSD, you should log in as "root" at the login prompt.
|
|
There is no initial password, but if you're using the machine in a
|
|
networked environment, you should create yourself an account and
|
|
protect it and the "root" account with good passwords.
|
|
|
|
Some of the files in the NetBSD RELEASE distribution might need to be
|
|
tailored for your site. In particular, the /etc/sendmail.cf file will
|
|
almost definitely need to be adjusted, and other files in /etc will
|
|
probably need to be modified. If you are unfamiliar with UN*X-like
|
|
system administration, it's recommended that you buy a book that
|
|
discusses it.
|
|
|
|
|
|
|
|
Installing from SunOS.
|
|
|
|
You need a SunOS machine to install NetBSD. You also need at
|
|
least the following pieces:
|
|
|
|
the *.tar.gz files you want to install (as a minimum, base.tar.gz)
|
|
gzip (GNU gzip) SunOS binary
|
|
gtar (GNU tar) SunOS binary
|
|
the "install.sh" script
|
|
a "/boot" file from a SunOS machine that matches your machine type
|
|
(e.g. sun4 for sun4 server, sun4c and sun4m for these)
|
|
a kernel, most likely "/netbsd"
|
|
|
|
All these pieces, except "/boot", are supplied in the NetBSD/sparc
|
|
distribution.
|
|
|
|
You can format and partition the disk using SunOS (since
|
|
NetBSD/sparc uses SunOS disk labels.) Give yourself adequate
|
|
partition sizes. Here is an example layout:
|
|
|
|
partition size offset will be..
|
|
sd2a 28140 0 /
|
|
sd2b 16170 28140 swap
|
|
sd2c 204540 0 `whole disk'
|
|
sd2g 160230 44310 /usr
|
|
|
|
BTW, These are not recommended sizes. They simply match the first
|
|
(tiny) disk that NetBSD/sparc ran on.
|
|
|
|
Use SunOS to newfs the partitions which will have filesystems on them.
|
|
(NetBSD's filesystem format is identical to SunOS).
|
|
|
|
sunos# newfs /dev/rsd2a
|
|
[... lots of output]
|
|
sunos# newfs /dev/rsd2g
|
|
[... lots of output]
|
|
|
|
NOTE: If you are able to, there is a performance benefit from
|
|
newfs'ing using NetBSD. If you newfs using the NetBSD newfs command,
|
|
be sure to use the -O flag for your / partition, so that newfs will
|
|
use the 4.3BSD filesystem format, rather than the new 4.4BSD filesystem
|
|
format. If you forget, you will not be able to boot -- the SunOS boot
|
|
blocks do not understand the extended 4.4BSD filesystem format.
|
|
|
|
Mount those partitions in a tree formation, under /mnt; ie:
|
|
|
|
sunos# df
|
|
Filesystem kbytes used avail capacity Mounted on
|
|
[...]
|
|
/dev/sd2a 11501 0 11501 0% /mnt
|
|
/dev/sd2g 179529 0 179529 0% /mnt/usr
|
|
|
|
Place a standard SunOS "/boot" program in /mnt (your new root
|
|
partition), and use the SunOS command "installboot" to make it work.
|
|
The installboot man page says to do something like this:
|
|
|
|
sunos# cp /boot /mnt/boot
|
|
sunos# /usr/mdec/installboot -vlt /mnt/boot /usr/mdec/bootsd /dev/rsd2a
|
|
|
|
You can now extract the provided "*.tar.gz files onto your disk. The
|
|
provided script, "install_from_sunos.sh" will help you:
|
|
|
|
sunos# ls -FC
|
|
base.tar.gz etc.tar.gz man.tar.gz secr.tar.gz
|
|
comp.tar.gz games.tar.gz misc.tar.gz text.tar.gz
|
|
install.sh netbsd.id3_scsi
|
|
sunos# ./install_from_sunos.sh
|
|
[...]
|
|
|
|
This script NEEDS gzip and gtar (GNU gzip and GNU tar) on your
|
|
execution path! The tar files are in a "new format" that includes
|
|
directory information, and SunOS tar will not read them. Statically
|
|
linked versions of these programs for SunOS are supplied in the
|
|
distribution.
|
|
|
|
After the files have been extracted, repair /mnt/etc/fstab to match
|
|
your actual disk layout. (Minus the "/mnt" component of each path, of
|
|
course :-)
|
|
|
|
Now proceed to reboot the machine as described above in "Installing
|
|
using a diskless setup".
|