216 lines
7.2 KiB
Groff
216 lines
7.2 KiB
Groff
.\" $NetBSD: installboot.8,v 1.13 2001/11/24 16:38:08 perry Exp $
|
|
.\"
|
|
.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
|
.\" by Paul Kranenburg.
|
|
.\"
|
|
.\" 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.
|
|
.\"
|
|
.Dd November 24, 2001
|
|
.Dt INSTALLBOOT 8 sparc
|
|
.Os
|
|
.Sh NAME
|
|
.Nm installboot
|
|
.Nd install a bootstrap on an FFS file system partition
|
|
.Sh SYNOPSIS
|
|
.Nm /usr/mdec/installboot
|
|
.Op Fl U
|
|
.Op Fl nv
|
|
.Ar boot
|
|
.Ar bootxx
|
|
.Ar device
|
|
.Nm /usr/mdec/installboot
|
|
.Op Fl u
|
|
.Op Fl nv
|
|
.Ar bootblk
|
|
.Ar device
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
prepares a FFS file system partition for boot-strapping from the PROM.
|
|
The sparc bootblocks are split into two parts: a small first-stage program that
|
|
is written into the superblock area in a partition
|
|
(and hence is limited in size to SBSIZE - DEV_BSIZE bytes),
|
|
and a second-stage program that resides in the file system proper.
|
|
.Pp
|
|
The first-stage program is loaded into memory by the PROM. After it receiving
|
|
control, it loads the second stage program from a set of file system block
|
|
numbers that have been hard-coded into it by the
|
|
.Nm
|
|
program, or, on the UltraSPARC, finds the second stage boot program by a
|
|
name lookup in the file system.
|
|
.Pp
|
|
The second-stage boot program uses the device driver interface to
|
|
the PROM and the stand-alone file system code in
|
|
.Dq libsa.a
|
|
to locate and load the kernel.
|
|
For non-UltraSPARC machines,
|
|
the second-stage boot program and the prototype code for the
|
|
first-stage bootprogram can be found in
|
|
.Pa /usr/mdec/boot
|
|
and
|
|
.Pa /usr/mdec/bootxx
|
|
respectively. The second-stage program commonly resides in the root directory
|
|
as
|
|
.Pa /boot .
|
|
For UltraSPARC machines, these files live in
|
|
.Pa /usr/mdec/bootblk
|
|
and
|
|
.Pa /usr/mdec/ofwboot
|
|
respectively, and the second-stage program resides in the root directly as
|
|
.Pa /ofwboot .
|
|
The
|
|
.Pa /usr/mdec/ofwboot.net
|
|
file includes netboot support and currently must be used to boot a kernel
|
|
over the network.
|
|
The utility
|
|
.Pa /usr/mdec/binstall
|
|
can be used to properly copy the a second-stage bootprogram to its
|
|
destination.
|
|
.Pp
|
|
Note that not all PROM versions accept the same layout of the first-stage
|
|
boot program: Sun 4 systems with the
|
|
.Dq old monitor
|
|
interface require that executable instructions be present right at the
|
|
start of the program, while
|
|
.Tn Openboot
|
|
machines expect a
|
|
.Xr a.out 5
|
|
header on the front of the boot program.
|
|
.Nm
|
|
takes care of this by constructing an artificial a.out header which has
|
|
enough of the magic numbers in it to appease
|
|
.Tn Openboot
|
|
ROMs, while simultaneously consisting of instructions
|
|
(in fact, just a branch past the rest of the header)
|
|
for Sun 4
|
|
.Dq old monitor
|
|
ROMs to execute. On the UltraSPARC machines, the first stage loader
|
|
is actually a Forth program compiled into Fcode, executed by the Open
|
|
Firmware.
|
|
.Pp
|
|
There are three options with these meaning:
|
|
.Bl -tag -width flag
|
|
.It Fl n
|
|
Do not actually write anything on the disk.
|
|
.It Fl u
|
|
Install sparc64 (UltraSPARC) Forth boot block. Note that this option
|
|
is the default if we are running on a sparc64 machine.
|
|
.It Fl U
|
|
Force SPARC boot block semantics. This allows SPARC boot blocks to be
|
|
installed on an UltraSPARC machine. This option is the default if we
|
|
are running on a sparc machine.
|
|
.It Fl v
|
|
Verbose mode: prints internal informational messages on standard output.
|
|
.El
|
|
.Pp
|
|
The arguments for the standard SPARC are:
|
|
.Bl -tag -width bootxx
|
|
.It Ar boot
|
|
the name of the second-stage boot program in the file system
|
|
where the first-stage boot program is to be installed.
|
|
.It Ar bootxx
|
|
the name of the prototype file for the first stage boot program.
|
|
.It Ar device
|
|
the name of the raw device in which the first-stage boot program
|
|
is to be installed. This should correspond to the block device
|
|
on which the file system containing
|
|
.Ar boot
|
|
is mounted.
|
|
.El
|
|
.Pp
|
|
The arguments for the UltraSPARC are:
|
|
.Bl -tag -width bootblk
|
|
.It Ar bootblk
|
|
the name of the first stage boot program.
|
|
.It Ar device
|
|
the name of the raw device in which the first-stage boot program
|
|
is to be installed.
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width /usr/mdec/installboot -compact
|
|
.It Pa /usr/mdec/installboot
|
|
program to install first-stage boot blocks
|
|
.It Pa /usr/mdec/binstall
|
|
front-end script to installing boot blocks
|
|
.It Pa /usr/mdec/bootxx
|
|
SPARC first-stage boot block
|
|
.It Pa /usr/mdec/bootblk
|
|
UltraSPARC first-stage boot block
|
|
.It Pa /usr/mdec/boot
|
|
SPARC second-stage boot block
|
|
.It Pa /usr/mdec/ofwboot
|
|
UltraSPARC second-stage boot block
|
|
.It Pa /usr/mdec/ofwboot.net
|
|
UltraSPARC second-stage network boot block
|
|
.El
|
|
.Sh EXAMPLES
|
|
The following command will install the first-stage bootblocks in the
|
|
root file system of a SPARC
|
|
(assumed to be mounted on
|
|
.Dq sd0a )
|
|
using the file
|
|
.Pa /boot
|
|
as the second-level boot program:
|
|
.Bd -literal -offset indent
|
|
/usr/mdec/installboot /boot /usr/mdec/bootxx /dev/rsd0a
|
|
.Ed
|
|
.Pp
|
|
The following command will perform the same, but for an UltraSPARC machine.
|
|
.Bd -literal -offset indent
|
|
/usr/mdec/installboot /boot /usr/mdec/bootxx /dev/rsd0a
|
|
.Ed
|
|
.Pp
|
|
The following command will install the first-stage bootblocks for a
|
|
SPARC machine, whether run on a SPARC or UltraSPARC machine
|
|
.Bd -literal -offset indent
|
|
/usr/mdec/installboot -U /boot /usr/mdec/bootxx /dev/rsd0a
|
|
.Ed
|
|
.Sh SEE ALSO
|
|
.Xr disklabel 8 ,
|
|
.Xr init 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
first appeared in
|
|
.Nx 1.1 .
|
|
.Sh BUGS
|
|
.Nm
|
|
requires simultaneous access to the mounted file system and
|
|
the raw device, but that is not allowed with the kernel
|
|
.Dv securelevel
|
|
variable set to a value greater than zero
|
|
(the default),
|
|
so
|
|
.Nm
|
|
only works in single-user mode
|
|
(or insecure mode - see
|
|
.Xr init 8 ) .
|