# 2.11BSD#431 - /usr/man/cat8/boot.0

    BOOT(8)             UNIX Programmer's Manual		  BOOT(8)

    NAME
         boot - 2.11BSD bootstrap proceedure

    DESCRIPTION
         The 2.11BSD system is started by a two-stage process.  The
         first is a primary bootstrap (limited to 512 bytes) which is
         able to read in relatively small stand-alone programs; the
         second (called boot) is used to read in the system itself.

         The primary bootstrap must reside in block zero of the boot
         device (the disklabel resides in block one).  It can be read
         in and started by standard ROM cold boot routines or, if
         necessary, by keying in a small startup routine.  The pri-
         mary bootstrap is capable of loading only type 0407 execut-
         able files (impure (non-shared), non-separate I&D.) Copies
         of the block zero bootstraps are kept in the directory
         /mdec.  Disklabel(8) is normally used to place a copy of the
         appropriate bootstrap in block zero of new file systems.

         The primary bootstrap loads boot from the file system that
         starts at block 0 of the drive specified to the boot ROM.
         Normally the boot device is automatically used as the root
         filesystem.  This action can be overriden by specifying the
         -R command to boot.  If boot is not found the system will
         hang as the primary boot spins in an endless loop trying to
         find boot.  No diagnostic message results if the file cannot
         be found.

         o+	  In an emergency, the bootstrap methods described in the
    	  paper Installing and Operating 2.11BSD can be used to
    	  boot from a distribution tape.

         The secondary boot program, called boot, actually brings in
         the system.  When read into location 0 and executed, boot
         sets up memory management, relocates itself into high
         memory, and types its name and a `:' on the console.  If
         this is an automatic, unattended reboot, boot will use a
         default file specification for the installation, typing the
         file's name after the prompt.  Otherwise, it reads a file
         specification from the console.  Normal line editing charac-
         ters can be used to make corrections while typing this (see
         below for file specification format).  If only a carriage
         return is typed, a default name (/unix) will be used.  Boot
         finds the [specified] file and loads it into memory location
         zero, sets up memory management as required, and calls the
         program by executing a `trap' instruction.

         For the system to boot, /etc/init must exist and be execut-
         able; if it is not, the kernel will print a message to that
         effect and loop.  Further, for a single user boot, the files
         /bin/sh and /dev/console must also exist and /bin/sh must be
         executable (if either of these is missing, init will attempt

    Printed 11/26/99	  May 24, 1996				1

    BOOT(8)             UNIX Programmer's Manual		  BOOT(8)

         multi-user operation).  For a multi-user boot the file
         /etc/ttys must exist (if missing, init will attempt single
         user operation).

         Init runs the autoconfig(8) program to probe for and ini-
         tialize devices.  Autoconfig only knows to look in /unix,
         thus if an alternate kernel name was specified none of the
         devices except /dev/console and the boot disk will be known.

         If autoconfig problems are suspected (or if  you are simply
         voyeuristic) the debug flag can be turned on by specifying
         -D to boot (see below).

         When the system is running in single user mode, it starts a
         single user shell on the console which types a `#' prompt.
         After doing any file system checks and setting the date
         (date(1)) a multi-user system can be brought up by typing an
         EOT (control-d) in response to the `#' prompt.

         Boot file specification format: The file specifications used
         with boot are of the form:

    	  device(ctlr,unit,part)path [-aRrDs]

         or

    	  -bootcommand

         where

         device
    	  is the type of the device to be searched;

         ctlr is the controller number of the disk

         unit is the unit number of the disk or tape;

         part is the partition number of a filesystem on the speci-
    	  fied disk or the tape file number if the device is a
    	  tape.  The underlying device driver must support disk-
    	  labels and a valid disklabel must be present if part is
    	  anything except 0.

         path is the path name of a disk file to be loaded with all
    	  mount prefixes stripped off (path must be omitted for
    	  tape files.)	Tape files are separated by single tape
    	  marks.

         Flags to boot may be specified in either of two places.  At
         the : prompt and after the file name.  The options are:

         -a   Ask for a kernel name.  This is present for symmetry

    Printed 11/26/99	  May 24, 1996				2

    BOOT(8)             UNIX Programmer's Manual		  BOOT(8)

    	  only because in order to specify this option you
    	  already have to be at the : prompt.

         -D   Turn on the autoconfig debug flag.

         -R   force the kernel to use its compiled in root device
    	  rather than adapting to the boot device.

         -s   tell init to enter single user state rather than bring-
    	  ing the system all the way up to multi-user mode.  -r
    	  mount the root filesystem read-only.	This is not
    	  currently supported by the kernel mostly because pipes
    	  are implemented in the filesystem.

         Commands (-bootcommand) to boot are:

         -bootflags N	 where N is a decimal number.

         -bootflags flag	 where flag is from the list above.

         -bootdebug N	 where N is a decimal number.  This is a
    			 general purpose flag word used by boot
    			 and is not passed to the loaded program
    			 or kernel.

         Device is one of the following

    	  xp   RM02/03/05, RP04/05/06, DIVA, SI Eagle, CDC 9766, Fuji 160
    	  rp   RP03
    	  rk   RK05
    	  hk   RK06/7
    	  rl   RL01/2
    	  si   RM05, CDC 9766
    	  ra   RA60/80/81, RX50, RD51/52/53, RC25
    	  ht   TU/TE16
    	  tm   TU/TE10
    	  ts   TS-11

         The stand alone tape drive unit number is specially encoded
         to specify both unit number and tape density (BPI).  Most
         tape subsystems either automatically adjust to tape density
         or have switches on the drives to force the density to a
         particular setting, but for those which don't the following
         density select mechanisms may be necessary.  The ts only
         operates at 1600BPI, so there is no special unit density
         encoding.	The ht will operate at either 800BPI or 1600BPI.
         Units 0 through 3 correspond to 800BPI, and 4 through 7 to
         1600BPI on drives 0 through 3 respectively.  The standard
         DEC tm only supports 800BPI (and hence can't be used with
         the standard  distribution tape), but several widely used tm
         emulators support 1600BPI and even 6250BPI.  Units 0 through
         3 correspond to 800BPI, 4 through 7 to 1600BPI, and 8

    Printed 11/26/99	  May 24, 1996				3

    BOOT(8)             UNIX Programmer's Manual		  BOOT(8)

         through 11 to 6250BPI on drives 0 through 3 respectively.

         For example, to boot a system from unit 0 on an RK07, type
         "hk(0,0)unix" to the boot prompt.	The specification
         "ra(1,0)unix" indicates an MSCP disk, unit 1.  The specifi-
         cation "ra(1,0,0)unix" indicates an MSCP disk, unit 0 but on
         controller 1.  And finally the specification "ts(0,3)" would
         cause the fourth file on a tape threaded on `ts' tape drive
         0 to be loaded and executed.

         Cold boot loaders: The following programs to load and exe-
         cute the primary bootstrap may be installed in read-only
         memories or manually keyed into main memory.  Each program
         is position-independent but should be placed well above
         location 0 so it will not be overwritten.	Each reads a
         block from the beginning of a device into core location
         zero.  The octal words constituting the program are listed
         on the left.

         RK (drive 0):
    	012700	    mov     $rkda,r0
    	177412
    	005040	    clr     -(r0)	   / rkda cleared by start
    	010040	    mov     r0,-(r0)
    	012740	    mov     $5,-(r0)
    	000005
    	105710	1:  tstb    (r0)
    	002376	    bge     1b
    	005007	    clr     pc

         RP (drive 0)
    	012700	    mov     $rpmr,r0
    	176726
    	005040	    clr     -(r0)
    	005040	    clr     -(r0)
    	005040	    clr     -(r0)
    	010040	    mov     r0,-(r0)
    	012740	    mov     $5,-(r0)
    	000005
    	105710	1:  tstb    (r0)
    	002376	    bge     1b
    	005007	    clr     pc

         TM (drive 0):
    	012700	    mov     $tmba,r0
    	172526
    	010040	    mov     r0,-(r0)
    	012740	    mov     $60003,-(r0)
    	060003
    	000777	    br	    .

    Printed 11/26/99	  May 24, 1996				4

    BOOT(8)             UNIX Programmer's Manual		  BOOT(8)

    FILES
         /unix	     system code
         /boot	     system bootstrap
         /etc/init	     system process dispatcher
         /mdec/xxuboot   sector 0 boot blocks, xx is disk type

    SEE ALSO
         crash(8V), autoconfig(8), reboot(2), disklabel(8), fsck(8),
         init(8)

    Printed 11/26/99	  May 24, 1996				5

Generated: 2016-12-26 | Generated by man2html V0.25 page hit count: 1043 |