1995-06-02 00:37:44 +04:00
|
|
|
/* $NetBSD: README,v 1.1.1.2 1995/06/01 20:37:47 gwr Exp $ */
|
1995-02-15 01:56:36 +03:00
|
|
|
|
|
|
|
The sun bootblocks are split into two parts: a small 1st-level program that
|
|
|
|
gets written right after the superblock in a partition (and is hence limited
|
|
|
|
in size to SBSIZE - DEV_BSIZE bytes), and a 2nd-level program that resides
|
|
|
|
in the filesystem proper.
|
|
|
|
|
|
|
|
The 1st-level program is loaded into memory by the PROM. It loads the second
|
|
|
|
stage program from a set of filesystem block numbers that are hard-coded
|
|
|
|
into it by the `installboot' program. The prototype code for the 1st-level
|
|
|
|
bootblocks are in `bootxx'.
|
|
|
|
|
|
|
|
The 2nd-level program (`boot') is normally installed in the root directory
|
|
|
|
as `/boot'. It uses the device drivers in the PROM and the stand-alone
|
|
|
|
filesystem code in `libsa.a' to locate and load the kernel.
|
|
|
|
|
|
|
|
Use the following command to install the 1st-level bootblocks in the
|
|
|
|
root filesystem (on `sd0a') using the file `/boot' as the second level
|
|
|
|
boot program:
|
|
|
|
|
1995-06-02 00:37:44 +04:00
|
|
|
mount /dev/sd0a /mnt
|
|
|
|
installboot /mnt/boot bootxx /dev/rsd0a
|
|
|
|
|
|
|
|
The above only works with securelevel <= 0 (see init.8 manual).
|
|
|
|
|
|
|
|
Status:
|
|
|
|
|
|
|
|
bootxx, installboot are tested and working. It would be nice if
|
|
|
|
installboot would find the inumber for the 2nd stage boot program
|
|
|
|
without having the filesystem mounted so this command can work
|
|
|
|
with securelevel==1 (the default). Doing this requies adding
|
|
|
|
code to read and do a directory lookup in the root...
|
|
|
|
|
|
|
|
netboot does not work yet... (netif_sun stuff in libsa not done)
|
|
|
|
|
|
|
|
Note:
|
|
|
|
Before installation, the second stage boot programs (ufsboot, ...)
|
|
|
|
need the a.out header stripped off. For now I do this by hand
|
|
|
|
using the following command. This needs to be automated...
|
|
|
|
|
|
|
|
dd ibs=32 skip=1 if=a.out.file | dd conv=sync of=no.header.file
|
|
|
|
|