444 lines
11 KiB
Groff
444 lines
11 KiB
Groff
.\" $NetBSD: boot.8,v 1.2 2004/01/07 12:55:42 wiz Exp $
|
|
.\"
|
|
.\" Copyright (c) 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software written and contributed
|
|
.\" to Berkeley by William Jolitz.
|
|
.\"
|
|
.\" 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. Neither the name of the University 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 REGENTS 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 REGENTS 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.
|
|
.\"
|
|
.\" @(#)boot_i386.8 8.2 (Berkeley) 4/19/94
|
|
.\"
|
|
.Dd January 7, 2004
|
|
.Dt BOOT 8 cobalt
|
|
.Os
|
|
.Sh NAME
|
|
.Nm boot
|
|
.Nd system bootstrapping procedures
|
|
.Sh DESCRIPTION
|
|
.Tn Cobalt
|
|
Networks' MIPS-based Microservers
|
|
.Po
|
|
now known as
|
|
.Tn Sun
|
|
Server Appliances
|
|
.Pc
|
|
that can run
|
|
.Nx Ns /cobalt
|
|
can use any of the following boot procedures:
|
|
.Pp
|
|
.Bl -bullet
|
|
.It
|
|
bootstrap
|
|
.Nx
|
|
from disk using the standard
|
|
.Tn Cobalt
|
|
.Tn Firmware
|
|
boot sequence
|
|
.It
|
|
bootstrap
|
|
.Nx
|
|
from disk using the
|
|
.Nx
|
|
boot loader
|
|
.It
|
|
network bootstrap
|
|
.Nx
|
|
using the standard
|
|
.Tn Cobalt
|
|
.Tn Firmware
|
|
means from a
|
|
.Tn TCP/IP
|
|
.Tn LAN
|
|
with
|
|
.Tn DHCP
|
|
and
|
|
.Tn NFS .
|
|
.El
|
|
.Ss Power fail and crash recovery
|
|
Normally, the system will reboot itself at power-up or after crashes.
|
|
An automatic consistency check of the file systems will be performed,
|
|
and unless this fails, the system will resume multi-user operations.
|
|
.Ss Cobalt Boot Sequence
|
|
The first program to take a control after reboot or at power-on is the
|
|
.Tn Cobalt
|
|
.Tn Firmware .
|
|
The
|
|
.Tn Firmware
|
|
can load a compressed kernel from disk, subject to a few limitations.
|
|
The
|
|
.Tn Firmware
|
|
expects the disk to contain DOS-style partition information with
|
|
the first partition being a boot one which is special in that it
|
|
should reside close to the beginning of the disk and must contain
|
|
an
|
|
.Tn ext2
|
|
file system with a
|
|
.Pa boot
|
|
directory which is treated specially by the
|
|
.Tn Firmware .
|
|
The default sequence is pretty straightforward, the
|
|
.Tn Firmware
|
|
finds the boot partition, mounts the ext2 file system from it and
|
|
tries to load a compressed kernel image from the
|
|
.Pa boot
|
|
directory.
|
|
The name of the kernel image differs from machine to machine and
|
|
this is the reason for having multiple copies of
|
|
.Nx
|
|
kernel installed under different names.
|
|
The following kernel image names are known to be in use by certain
|
|
.Tn Cobalt
|
|
flavors:
|
|
.Bd -unfilled -offset indent
|
|
.Pa /boot/vmlinuz.gz
|
|
.Pa /boot/vmlinux.gz
|
|
.Pa /boot/vmlinux-nfsroot.gz
|
|
.Pa /boot/vmlinux_RAQ.gz
|
|
.Pa /boot/vmlinux_raq-2800.gz
|
|
.Ed
|
|
.Pp
|
|
where
|
|
.Pa /boot
|
|
is the directory on the boot partition.
|
|
.Pp
|
|
The
|
|
.Tn Firmware
|
|
console provides the means to alter the default boot sequence and/or
|
|
to specify boot parameters.
|
|
Pressing
|
|
.Sq Aq space
|
|
right after the
|
|
.Tn Firmware
|
|
printed its greeting brings the
|
|
.Tn Firmware
|
|
console prompt and pressing
|
|
.Sq \&?
|
|
at the prompt prints a help screen with all commands supported by
|
|
the
|
|
.Tn Firmware .
|
|
For example, the
|
|
.Sq bfd
|
|
command can be used to boot a kernel image:
|
|
.Bd -unfilled -offset indent
|
|
Cobalt: bfd /boot/\*[Lt]kernel image\*[Gt] [options]
|
|
.Ed
|
|
.Pp
|
|
where
|
|
.Dq options
|
|
are the kernel options.
|
|
.Ss Bootstrap from disk using the standard Firmware sequence
|
|
The
|
|
.Tn Firmware
|
|
enters the standard boot sequence after reboot or at power-on when
|
|
no front-panel buttons are pressed and the
|
|
.Tn Firmware
|
|
console is not used to change the boot procedure.
|
|
At boot time, the
|
|
.Tn Firmware
|
|
checks the hardware, prints the banner and performs the standard
|
|
.Tn Cobalt
|
|
boot sequence.
|
|
There are a few culprits tightly connected to this boot method.
|
|
First of all, the kernel must be compressed.
|
|
Second, the
|
|
.Tn Firmware
|
|
enforces a hard restriction on the kernel size
|
|
.Po
|
|
it cannot exceed approximately 1000000/2500000 bytes
|
|
compressed/uncompressed
|
|
.Pc
|
|
resulting in a lock-up should this requirement not be fulfilled.
|
|
For
|
|
.Nx ,
|
|
another pitfall is that the uncompressed kernel should be copied to
|
|
the root directory to make certain system binaries
|
|
.Po
|
|
such as e.g. netstat
|
|
.Pc
|
|
work, and the kernel images in the
|
|
.Pa boot
|
|
directory should always be in sync with the ones installed in the
|
|
root directory.
|
|
.Ss Bootstrap from disk using the NetBSD boot loader
|
|
The
|
|
.Nx
|
|
boot loader is an attempt to break through the limitations enforced
|
|
by the
|
|
.Tn Firmware
|
|
loader.
|
|
The main idea is to make the
|
|
.Tn Firmware
|
|
load the
|
|
.Nx
|
|
boot loader and let the latter take care of loading the kernel.
|
|
To achieve this goal, multiple copies of the boot loader are
|
|
installed in the
|
|
.Pa boot
|
|
directory on the boot partition, one copy per each kernel image
|
|
name the
|
|
.Tn Cobalt
|
|
.Tn Firmware
|
|
might look for.
|
|
The
|
|
.Nx
|
|
kernel is located in the root directory
|
|
.Po
|
|
usually
|
|
.Pa /dev/wd0a
|
|
.Pc
|
|
like it is on other platforms.
|
|
Once running, the boot loader prints a banner similar to the following:
|
|
.Bd -unfilled -offset indent
|
|
\*[Gt]\*[Gt] NetBSD/cobalt 1.6ZG Bootloader, Revision 0.1 [@0x81000000]
|
|
\*[Gt]\*[Gt] (user@buildhost, builddate)
|
|
\*[Gt]\*[Gt] Memory: 32768 k
|
|
\*[Gt]\*[Gt] Firmware boot string: root=/dev/hda1 ro
|
|
Loading: wd0a:netbsd
|
|
2249104+195856 [81872+73284]=0x27af90
|
|
Starting at 0x80001000
|
|
.Ed
|
|
.Pp
|
|
by default, the boot loader uses
|
|
.Dq Li wd0a:netbsd
|
|
as kernel specification which corresponds to the file
|
|
.Nm netbsd
|
|
on partition
|
|
.Dq a
|
|
of the
|
|
.Nx
|
|
.Tn MBR
|
|
partition of the first hard disk known to the
|
|
.Tn Firmware
|
|
.Po
|
|
which is an
|
|
.Tn IDE
|
|
or similar device - see the
|
|
.Sx BUGS
|
|
section
|
|
.Pc .
|
|
In case this fails, the boot loader will try a few alternative
|
|
kernel image names and if this also fails the loader will repeat
|
|
the whole procedure for all other
|
|
.Nx
|
|
slices
|
|
.Pq if any
|
|
and will load the first kernel image found.
|
|
.Ss Boot loader Options
|
|
It is possible to specify some options to the boot loader by breaking
|
|
into the
|
|
.Tn Firmware
|
|
and using the
|
|
.Dq bfd
|
|
command:
|
|
.Bd -unfilled -offset indent
|
|
Cobalt: bfd /boot/boot.gz [options]
|
|
.Ed
|
|
.Pp
|
|
The boot loader allows the following options:
|
|
.Bl -tag -width 04n -offset 04n
|
|
.It Xo Ic nbsd=
|
|
.Op Va device : Ns
|
|
.Op Va filename
|
|
.Op Fl acdqsv
|
|
.Xc
|
|
The default
|
|
.Va device
|
|
will be set to
|
|
.Va wd0a
|
|
which is the first
|
|
.Nx
|
|
partition on the first drive, as numbered by the
|
|
.Tn Firmware .
|
|
To boot from an alternate disk, the full name of the device should
|
|
be given at the prompt.
|
|
.Va device
|
|
is of the form
|
|
.Va xdNx
|
|
where
|
|
.Va xd
|
|
is the device from which to boot,
|
|
.Va N
|
|
is the unit number, and
|
|
.Va x
|
|
is the partition letter.
|
|
.Pp
|
|
The following list of supported devices may vary from installation to
|
|
installation:
|
|
.Pp
|
|
.Bl -hang -compact
|
|
.It wd
|
|
Hard disks as numbered by the BIOS. This includes ST506, IDE, ESDI,
|
|
RLL disks on a WD100[2367] or lookalike controller(s), and SCSI
|
|
disks on SCSI controllers recognized by the
|
|
.Tn Firmware .
|
|
.El
|
|
.Pp
|
|
The default
|
|
.Va filename
|
|
is
|
|
.Pa netbsd ;
|
|
if the boot loader fails to successfully
|
|
open that image, it then tries
|
|
.Pa netbsd.gz
|
|
(expected to be a kernel image compressed by
|
|
.Xr gzip 1 ) ,
|
|
followed by
|
|
.Pa netbsd ,
|
|
.Pa netbsd.gz ,
|
|
.Pa onetbsd ,
|
|
.Pa onetbsd.gz ,
|
|
.Pa netbsd.bak ,
|
|
.Pa netbsd.bak.gz ,
|
|
.Pa netbsd.old ,
|
|
.Pa netbsd.old.gz ,
|
|
.Pa netbsd.cobalt ,
|
|
.Pa netbsd.cobalt.gz ,
|
|
.Pa netbsd.elf ,
|
|
and finally
|
|
.Pa netbsd.elf.gz .
|
|
Alternate system images can be loaded by just specifying the name
|
|
of the image.
|
|
.Pp
|
|
Options are:
|
|
.Bl -tag -width xxx
|
|
.It Fl a
|
|
Prompt for the root file system device, the system crash dump
|
|
device, and the path to
|
|
.Xr init 8 .
|
|
.It Fl c
|
|
Bring the system up into the device configuration manager.
|
|
From here the device locators can be tuned to the hardware; see
|
|
.Xr userconf 4 .
|
|
.It Fl d
|
|
Bring the system up in debug mode.
|
|
Here it waits for a kernel debugger connect; see
|
|
.Xr ddb 4 .
|
|
.It Fl q
|
|
Boot the system in quiet mode.
|
|
.It Fl s
|
|
Bring the system up in single-user mode.
|
|
.It Fl v
|
|
Boot the system in verbose mode.
|
|
.El
|
|
.El
|
|
.Pp
|
|
It is always a good idea to have a small rescue kernel in the
|
|
.Pa boot
|
|
directory.
|
|
In an emergency case, this will allow you to use the
|
|
.Tn Firmware
|
|
.Sq bfd
|
|
command to boot the rescue image:
|
|
.Bd -unfilled -offset indent
|
|
Cobalt: bfd /boot/netbsd.gz
|
|
.Ed
|
|
.Ss Network bootstrap using the standard Firmware sequence
|
|
The
|
|
.Tn Cobalt
|
|
.Tn Firmware
|
|
allows to boot a kernel over the network, with all the limitations
|
|
of the
|
|
.Tn Firmware
|
|
loader described above.
|
|
The simplest method is to break into the
|
|
.Tn Firmware
|
|
prompt and use
|
|
.Dq bfd
|
|
command to specify where to boot from:
|
|
.Bd -unfilled -offset indent
|
|
Cobalt: bfd /netbsd.gz nfsroot=/home/raq/root
|
|
.Ed
|
|
.Pp
|
|
The
|
|
.Tn Firmware
|
|
is picky about syntax and in general, so if things fail mysteriously,
|
|
try to conform to the conventions described above.
|
|
For netbooting, you need to NFS-export the directory given to
|
|
.Dq nfsroot= ,
|
|
and the named kernel
|
|
.Pq Pa netbsd.gz
|
|
needs to be executable and in that directory.
|
|
You will also need to setup
|
|
.Xr rarpd 8
|
|
and
|
|
.Xr dhcpd 8 .
|
|
Once the kernel is loaded with the command line values, the data
|
|
given via DHCP is used to mount the root filesystem.
|
|
Here is a known working DHCP entry:
|
|
.Bd -unfilled -offset indent
|
|
host raq {
|
|
hardware ethernet 0:10:e0:0:52:62; # raq MAC
|
|
fixed-address 10.0.0.15; # raq address
|
|
filename "/netbsd.gz"; # kernel name in root-path
|
|
option root-path "/home/raq/root"; # absolute dir on nfs server
|
|
server-name="10.0.0.3"; # IP of nfs server
|
|
}
|
|
.Ed
|
|
.Pp
|
|
Another option is to hold down the left and right cursor buttons
|
|
during power-on which executes the command
|
|
.Bd -unfilled -offset indent
|
|
bfd /boot/vmlinux.gz root=/dev/nfs nfsroot=/nfsroot,
|
|
.Ed
|
|
.Pp
|
|
resulting in a netboot.
|
|
On RaQ 1's, the default kernel name is
|
|
.Pa vmlinux_RAQ.gz
|
|
and on RaQ 2's, it is
|
|
.Pa vmlinux_raq-2800.gz .
|
|
.Sh FILES
|
|
.Bl -tag -width /usr/mdec/bootxx_fstype -compact
|
|
.It Pa /boot/boot.gz
|
|
boot program code loaded by the
|
|
.Tn Firmware
|
|
loader
|
|
.It Pa /boot/netbsd.gz
|
|
.Xr gzip 1 Ns -compressed
|
|
rescue system code
|
|
.It Pa /netbsd
|
|
system code
|
|
.It Pa /netbsd.gz
|
|
.Xr gzip 1 Ns -compressed
|
|
system code
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr ddb 4 ,
|
|
.Xr userconf 4 ,
|
|
.Xr fdisk 8 ,
|
|
.Xr halt 8 ,
|
|
.Xr reboot 8 ,
|
|
.Xr shutdown 8
|
|
.Sh BUGS
|
|
The
|
|
.Nx
|
|
boot loader supports booting off IDE hard drives only.
|
|
This is less a bug of the boot loader code than a shortcoming of
|
|
the
|
|
.Tn Cobalt
|
|
.Tn Firmare
|
|
and shall be considered as such.
|