BOOTING(8)                                             BOOTING(8)

     NAME
          booting - bootstrapping procedures

     SYNOPSIS
          none

     DESCRIPTION
          This manual page collects the incantations required to
          bootstrap Plan 9 machines.  Some of the information here is
          specific to the installation at Bell Labs; some is generic.

          If a CPU server is up, BOOTP and TFTP will run from there;
          if not, the necessary files and services must be available
          on a separate machine, such as a Unix system, to use these
          protocols for bootstrapping.

          Be sure to read boot(8) to understand what happens after the
          kernel is loaded.

        Terminals
          To bootstrap a terminal or a CPU server, a file server must
          be running.  On all the terminals, typing two control-T's
          followed by a lower-case r reboots the machine; other meth-
          ods of rebooting are mentioned for some machines.

        Gnot
          The boot ROM prints

               server[default==incon!nj/astro/Nfs!/68020/9gnot]

          Typing a newline bootstraps the default system.  The compo-
          nents of the server string are defaulted from the right, for
          example, to bootstrap /sys/src/9/gnot/9gnot type just that
          file name; to bootstrap from a different file server, say
          kremvax, type

               kremvax!/68020/9gnot

          The bootstrap devices available are incon, 9600, 19200 and
          scsi; with scsi the server name (here nj/astro/Nfs) becomes
          a unit number, usually 0, and the file name is a boot parti-
          tion to use.  For example,

               scsi!0!boot

          says to boot from SCSI disk 0 the kernel in disk partition
          /dev/hd0boot.

          If running with a local cache file system, one normally
          bootstraps using the SCSI disk.  However, if the local

     BOOTING(8)                                             BOOTING(8)

          kernel has been destroyed or is hopelessly out of date,
          bootstrap using the serial line.  To do this, use the boot
          string

               9600!nj/astro/Nfs!/68020/9gnotdisk

          to bootstrap from the serial line at 9600 baud or

               19200!nj/astro/Nfs!/68020/9gnotdisk

          for a 19200 baud connection.

        Nextstation
          First make sure the ndb(8) entry (or the corresponding Unix
          BOOTP configuration information) looks something like this:

               ip=135.104.9.120 ether=00000f00acf7 sys=jobs
                    dom=jobs.research.att.com
                    bootf=/68020/9nextstation
                    proto=il

          When powered on and left alone, a Nextstation will download
          /68020/9nextstation using the BOOTP and TFTP protocols.
          (Actually, first it loads /lib/tftpd/boot and uses that to
          download the operating system.  That file is not shipped as
          part of the distribution.  Copy it from
          /usr/template/client/tftpboot/boot on the vendor-supplied
          file system.)  It then prompts for the user name and pass-
          word and asks for the Ethernet protocol to use; request the
          default.

          While the system is downloading, it displays an Ethernet
          symbol; at this time, holding the left Command key down and
          typing the ~ key aborts the download and transfers control
          to a ROM-resident monitor.  The monitor will use the Ether-
          net to boot an alternate kernel given the command, e.g.,

               ben /sys/src/9/next/9nextstation

          or

               ben kgbvax:/sys/src/9/next/9nextstation

          to force the download to come from system kgbvax.

          If running with a local cache file system, bootstrap from
          the disk.  While the system is downloading, it displays a
          symbol of a spinning disk.  The processor first loads a pro-
          gram, Disclabel (see home(8)) from the kernel partition
          /dev/hd1label and then the real kernel from /dev/hd1boot.

          See Next's documentation for other details, in particular

     BOOTING(8)                                             BOOTING(8)

          how to initialize a new machine to boot from Ethernet
          instead of disk.

          To turn the power off, hold down the left Command and
          Alternate keys and press the power key.  To reboot, hold
          down the left Command and Alternate and press the `*' key in
          the upper right corner of the keypad.

        Sun Sparcstation 2, 10, or 20
          The Sparcstations all behave similarly.  First make sure the
          ndb(8) entry (or corresponding information on a Unix BOOTP
          server) is correct.  If you are running a Plan 9 tftpd (see
          bootp(8)), it will download the file specified by the bootf
          parameter for the machine in /lib/ndb; /sparc/9ss runs on
          the Sparcstation 2, /sparc/9ss10 on the Sparcstation 10.

          If you are not using Plan 9 tftpd, you will have to copy or
          link /sparc/9ss or /sparc/9ss10 to the appropriate file on
          the downloading system; the file name requested will be of
          the form IPaddr.SUNmm where IPaddr is the 8-digit hexadeci-
          mal IP address of the machine requesting the kernel and mm
          is an architecture identifier.

          To bootstrap, type

               boot net

          to the power-on monitor to load the kernel.  There is no way
          to specify an alternate file to download.  Once running, the
          operating system asks the same questions as on the Nextsta-
          tion.

        MIPS Magnum
          The Magnum ROM monitor can boot from the Ethernet or from a
          local disk.  To boot from the Ethernet, type

               bootp()/mips/9magnum

          or use the ROM command setenv to set the variable bootfile
          to that same string and type boot.  To load a different
          file, tell bootp which file to load, and to force the down-
          load to come from a particular system, bootp()system:file.
          Any arguments after bootp()file are passed to /boot.  If you
          are running a Plan 9 BOOTP server (see bootp(8)), the file
          name can be omitted and the file specified by the bootf
          parameter for the machine in /lib/ndb will be downloaded by
          default.

          To boot Plan 9 from disk it is first necessary to install
          the boot program, kept in /sys/src/boot/magnum/partboot.
          This should be written into the first partition on the disk,
          which must be exactly 32K; the second partition should be at

     BOOTING(8)                                             BOOTING(8)

          least a megabyte and will hold the kernel to boot.  Boot
          Plan 9 over the Ethernet and follow these instructions.  Use
          prep(8) to establish a partition table that looks something
          like this:

               plan9 partitions
               partboot 0 64
               boot 64 2112

          Run these commands to put the necessary files on the disk:

               bind -a '#w' /dev
               cp /sys/src/boot/magnum/partboot /dev/sd0partboot
               cp /mips/9magnum /dev/sd0boot

          The kernel, here /mips/9magnum, may be any Magnum kernel.
          The rc(1) script magnum/home (see home(8)) automates this
          whole procedure for stand-alone home Magnums.

          Once the disk is established, type to the Magnum boot ROM

               dksd(0,0)b

          to load the Plan 9 bootstrap program or use the ROM command
          setenv to set the variable bootfile to that same string and
          type boot.  The bootstrap program will then prompt for the
          partition to boot from.  If nothing is typed within 15 sec-
          onds, a kernel will be booted from the hard disk partition
          /dev/sd0boot.  Any arguments after dksd(0,0)b are passed to
          boot(8).

          By /mips/9magnumboot installing as the kernel on disk, it is
          possible to bootstrap another kernel using networks or
          devices unknown to the regular ROM.  In other words, use
          partboot to load a more sophisticated bootstrapping kernel,
          and boot again using that.  For example, typing

               dksd(0,0)b il /mips/9magnum

          to such a system will bootstrap over the Ethernet using IL.

          Once running, the operating system asks the same questions
          as on the Nextstation.

        PCs
          To boot a PC, it is necessary to get b loaded into memory
          (see b.com(8)). There are two ways to do this.  A Plan 9
          boot floppy prepared by format (see prep(8)) will start b
          when the PC is reset or powered on.  Without such a floppy,
          boot DOS normally and type b to the DOS prompt.

          From DOS, it is possible to give b an argument to specify

     BOOTING(8)                                             BOOTING(8)

          the booting method.  Otherwise, b will prompt for the
          method.

          To boot the file /386/9pc from Ethernet using BOOTP and
          tftpd, use the method e!0 or to DOS type

               b e!0

          The DOS file plan9.ini (see plan9.ini(8)) must specify an
          Ethernet interface card for this to work.

          To boot from the Plan 9 IDE hard disk partition hd0boot,
          type

               b h!0!boot

          To boot from a DOS filesystem the kernel 9pc, type

               b hd!0!9pc

          To boot from a DOS filesystem on a floppy, type

               b fd!0!9pc

          The boot program b will also read the file plan9.ini from
          the DOS file system on any floppy or hard disk and pass it
          to the kernel.  Plan9.ini specifies PC configuration infor-
          mation.  See b.com(8) and plan9.ini(8) for details.

          Once the kernel is booted, it behaves like the others.  See
          boot(8) for details.

        CPU Servers
          The Plan 9 CPU servers are multi-user, so they do not
          request a user name when booting.  On the CPU servers, typ-
          ing a control-P on the console reboots the machine.

        SGI Power Series CPU Server
          Enter the ROM monitor by typing an ESC at the system startup
          menu, then select option 5.  The monitor will print a >>
          prompt.  Then type bootp()/mips/9powerboot to load the Plan
          9 bootstrap program.  The bootstrap program takes two
          optional arguments, which may be typed on the same command
          line: the method with which to attach to a file server (as
          in boot(8)) and a kernel file to boot.  The default method
          is cyc and the default kernel file is /mips/9power.

          The bootstrap program reads a configuration description from
          a file identified by the IP address of the machine, e.g.
          /mips/conf/123.101.89.77.  9powerboot then loads the kernel
          and passes it the configuration information.

     BOOTING(8)                                             BOOTING(8)

        Sun Sparcstation CPU Server
          Proceed as for the Sparcstation running as a terminal but
          load /sparc/9sscpu on Sparcstation 2's and /sparc/9ss10cpu
          on Sparcstation 10's.

        Mips Magnum CPU Server
          Booting is the same as for the Magnum running as a terminal
          but the file to load is /mips/9magnumcpu.

        File servers
          The CPU servers and terminals run essentially the same pro-
          gram, but the Plan 9 file servers run a distinct system.
          The file servers accept only the commands described in fs(8)
          on their consoles.

        SGI Power Series File Server
          Get to the >> prompt as described for the CPU servers.  Then
          boot the system over the Ethernet like a Magnum (sic), load-
          ing /mips/9powerfs.  The system will come up automatically.
          On machines with WORM jukeboxes, several minutes will be
          spent initializing the jukebox; the machine will chat hap-
          pily while this is going on.  The first time the system is
          booted, it will be necessary to establish the NVRAM and con-
          figuration information; see fsconfig(8).

        Mips 6280 File Server
          In response to the ROM's >>> prompt, type

               bootp(,egl)servername:96280fs

        Sparc Sparcstation File Server
          Proceed as for the Sparcstation running as a terminal, but
          load /sparc/9ssfs.  There is support for the Sparcstation 2
          only.

        Mips Magnum File Server
          Proceed as for the Magnum running as a terminal, but load
          /mips/9magnumfs.

     SEE ALSO
          b.com(8), boot(8), fs(8), init(8), plan9.ini(8)

     SOURCE
          Sources for the various boot programs are under
          /sys/src/boot, except that /mips/9powerboot is a version of
          the SGI kernel made in /sys/src/9/power.

     BUGS
          The file server should be able to boot from its own disk.