April 19, 1994 BOOT 8 vax

### NAME

boot - system bootstrapping procedures

### DESCRIPTION

#### Power fail and crash recovery

Normally, the system will reboot itself at power-up or after crashes. Provided the auto-restart is enabled on the machine front panel, an automatic consistency check of the file systems will be performed, and unless this fails, the system will resume multi-user operations.

#### Cold starts

These are processor-type dependent. On an 11/780, there are two floppy files for each disk controller, both of which cause boots from unit 0 of the root file system of a controller located on mba0 or uba0. One gives a single user shell, while the other invokes the multi-user automatic reboot. Thus these files are HPS and HPM for the single and multi-user boot from MASSBUS RP06/RM03/RM05 disks, UPS and UPM for UNIBUS storage module controller and disks such as the EMULEX SC-21 and AMPEX 9300 pair, RAS and RAM to boot from MSCP controllers and disks such as the RA81, or HKS and HKM for RK07 disks. There is also a script for booting from the default device, which is normally a copy of one of the standard multi-user boot scripts, but which may be modified to perform other actions or to boot from a different unit. The situation on the 8600 is similar, with scripts loaded from the console RL02.

Giving the command

```>>>BOOT` `HPM`

would boot the system from (e.g.) an RP06 and run the automatic consistency check as described in fsck(8). (Note that it may be necessary to type control-P and halt the processor to gain the attention of the LSI-11 before getting the >>> prompt.) The command

```>>>BOOT` `ANY`

invokes a version of the boot program in a way which allows you to specify any system as the system to be booted. It reads from the console a device specification (see below) followed immediately by a pathname.

The scripts may be modified for local configuration if necessary. The flags are placed in register 11 (as defined in <```sys/reboot.h`>). The boot device is specified in register 10. The encoding of this register is also defined in <```sys/reboot.h`>. The current encoding has a historical basis, and is shown in the following table:

      bits    usage
      0-7     boot device type (the device major number)
      8-15    disk partition
      16-19   drive unit
      20-23   controller number
      24-27   adaptor number (UNIBUS or MASSBUS as appropriate)

The adaptor number corresponds to the normal configuration on the 11/750, and to the order in which adaptors are found on the 11/780 and 8600 (generally the same as the numbers used by UNIX).

On an 11/750, the reset button will boot from the device selected by the front panel boot device switch. In systems with RK07's, position B normally selects the RK07 for boot. This will boot multi-user. To boot from RK07 with boot flags you may specify

      >>>B/-n DMA0

where, giving a n of 1 causes the boot program to ask for the name of the system to be bootstrapped, giving a n of 2 causes the boot program to come up single user, and a n of 3 causes both of these actions to occur. The ``DM'' specifies RK07, the ``A'' represents the adaptor number (UNIBUS or MASSBUS), and the ``0'' is the drive unit number. Other disk types which may be used are DB (MASSBUS), DD (TU58), and DU (UDA-50/RA disk). A non-zero disk partition can be used by adding (partition times 1000 hex) to n.

The boot procedure on the Micro VAX II is similar. A switch on the back panel sets the power-up action to autoboot or to halt. When halted, the processor may be booted using the same syntax as on the 11/750.

The 11/750 boot procedure uses the boot ROMs to load block 0 off of the specified device. The /usr/mdec directory contains a number of bootstrap programs for the various disks which should be placed in a new pack by disklabel(8). Similarly, the Micro VAX II boot procedure loads a boot parameter block from block 0 of the disk. The rdboot ``bootstrap'' contains the correct parameters for an MSCP disk such as the RD53.

On any processor, the boot program finds the corresponding file on the given device (```netbsd` by default), loads that file into memory location zero, and starts the program at the entry address specified in the program header (after clearing off the high bit of the specified entry address).

The file specifications used with ``BOOT ANY'' or ``B/3'' are of the form:

```device(adaptor,controller,unit,minor)`

where device is the type of the device to be searched, adaptor is the UNIBUS or MASSBUS number of the adaptor to which the device is attached, controller is the unit number of the controller or MASSBUS tape formatter on that adaptor, unit is the unit number of the disk or transport slave unit of the tape, and minor is the disk partition or tape file number. Leading adaptor or controller numbers default to 0. Normal line editing characters can be used when typing the file specification. The following list of supported devices may vary from installation to installation:

      hp      MASSBUS disk drive
      up      UNIBUS storage module drive
      ht      TE16,TU45,TU77 on MASSBUS
      kra     storage module on a KDB50
      mt      TU78 on MASSBUS
      hk      RK07 on UNIBUS
      ra      storage module on a MSCP-compatible UNIBUS controller
      rb      storage module on a 730 IDC
      rl      RL02 on UNIBUS
      tm      TM11 emulation tape drives on UNIBUS
      tms     TMSCP-compatible tape
      ts      TS11 on UNIBUS
      ut      UNIBUS TU45 emulator

For example, to boot from a file system which starts at cylinder 0 of unit 0 of a MASSBUS disk, type `hp(0,0)netbsd' to the boot prompt; `hp(2,0,1,0)netbsd' would specify drive 1 on MASSBUS adaptor 2; `up(0,0)netbsd' would specify a UNIBUS drive, `hk(0,0)netbsd' would specify an RK07 disk drive, `ra(1,0,0,0)netbsd' would specify a UDA50 disk drive on a second UNIBUS, and `rb(0,0)netbsd' would specify a disk on a 730 IDC. For tapes, the minor device number gives a file offset; `mt(1,2,3,4)' would specify the fifth file on slave 3 of the formatter at `drive' 2 on mba 1.

On an 11/750 with patchable control store, microcode patches will be installed by boot if the file ```psc750.bin` exists in the root of the filesystem from which the system is booted.

In an emergency, the bootstrap methods described in the paper can be used to boot from a distribution tape.

### FILES

```/netbsd`
  system code
```/boot`
  system bootstrap
```/usr/mdec/xxboot`
  sector-0 boot block for 750, xx is disk type
```/usr/mdec/bootxx`
  second-stage boot for 750, xx is disk type
```/pcs750.bin`
  microcode patch file on 750

### SEE ALSO

arff(8), halt(8), reboot(8), shutdown(8)

### HISTORY

The boot command appeared in 4.0BSD.