|
@@ -1,503 +0,0 @@
|
|
|
-.TH OLD9LOAD 8
|
|
|
-.SH NAME
|
|
|
-old9load: 9load, 9pxeload, 9loadusb, 9loadask, ld \- old PC bootstrap program
|
|
|
-.SH SYNOPSIS
|
|
|
-.I "(Under MS-DOS)
|
|
|
-.br
|
|
|
-.RI [ drive\f(CW:\fP ][ path ] ld
|
|
|
-[
|
|
|
-.I 9load
|
|
|
-]
|
|
|
-.SH DESCRIPTION
|
|
|
-.I 9load
|
|
|
-and
|
|
|
-.I ld
|
|
|
-are programs that reside in a FAT file system and bootstrap Plan 9.
|
|
|
-.I 9load
|
|
|
-loads a
|
|
|
-.B 386
|
|
|
-.\" or
|
|
|
-.\" .B amd64
|
|
|
-kernel, but it cannot be run from DOS; use
|
|
|
-.I ld
|
|
|
-to bootstrap (by starting
|
|
|
-.IR 9load )
|
|
|
-if DOS is running.
|
|
|
-.I 9load
|
|
|
-is run automatically by the boot procedures described below;
|
|
|
-it cannot be run directly by hand.
|
|
|
-.I 9pxeload
|
|
|
-is a version of
|
|
|
-.I 9load
|
|
|
-that can be booted using the PXE download (BOOTP/DHCP followed by TFTP)
|
|
|
-found in any reasonable ethernet card's BIOS.
|
|
|
-.I 9loadusb
|
|
|
-is a version that will use only the BIOS's device drivers,
|
|
|
-and thus can load from USB devices.
|
|
|
-In contrast,
|
|
|
-.I 9load
|
|
|
-will
|
|
|
-.I not
|
|
|
-use BIOS device drivers.
|
|
|
-.I 9loadask
|
|
|
-is a version that asks on the console (too early for serial ports, alas)
|
|
|
-if you want to use BIOS drivers to boot.
|
|
|
-There are four bootstrap sequences:
|
|
|
-.IP \- 3
|
|
|
-PXE BIOS,
|
|
|
-.IR 9pxeload ,
|
|
|
-kernel
|
|
|
-.IP \-
|
|
|
-BIOS, MBR, disk partition PBS,
|
|
|
-.IR 9load ,
|
|
|
-kernel
|
|
|
-.IP \-
|
|
|
-BIOS, floppy PBS,
|
|
|
-.IR 9load ,
|
|
|
-kernel
|
|
|
-.IP \-
|
|
|
-BIOS, MBR, DOS,
|
|
|
-.IR ld ,
|
|
|
-.IR 9load ,
|
|
|
-kernel.
|
|
|
-.PP
|
|
|
-Details follow.
|
|
|
-.PP
|
|
|
-.I 9load
|
|
|
-is a bootstrap program that loads and starts a program,
|
|
|
-typically the kernel, on a PC.
|
|
|
-It is run by the PC partition boot sector program (PBS),
|
|
|
-which usually resides in the first
|
|
|
-sector of the active partition.
|
|
|
-A copy of the Plan 9 PBS is kept in
|
|
|
-.BR /386/pbs ,
|
|
|
-but due to the ``cylinder-head-sector'' (CHS) addressing mode of old BIOSes, it can only
|
|
|
-operate up to 8.5GB into the disk.
|
|
|
-Plan 9 partitions further into the disk
|
|
|
-can only be booted using
|
|
|
-.BR /386/pbslba ,
|
|
|
-and then only if the machine's BIOS supports
|
|
|
-linear block addressing (LBA) mode for disk transfers.
|
|
|
-.PP
|
|
|
-When booting from disk or floppy, the BIOS loads the
|
|
|
-first sector of the medium at location
|
|
|
-.BR 0x7C00 .
|
|
|
-In the case of a disk, it is the master boot record (MBR).
|
|
|
-In the case of a floppy, this is the PBS.
|
|
|
-The MBR copies itself to address
|
|
|
-.BR 0x600 ,
|
|
|
-finds the active partition and loads its PBS at address
|
|
|
-.BR 0x7C00 .
|
|
|
-A copy of the Plan 9 MBR is kept in
|
|
|
-.BR /386/mbr ;
|
|
|
-some commercial MBRs cannot read sectors
|
|
|
-past 2GB.
|
|
|
-The Plan 9 MBR can read sectors up to 8.5GB into
|
|
|
-the disk, and further if the BIOS supports LBA.
|
|
|
-The single file
|
|
|
-.B /386/mbr
|
|
|
-detects whether the BIOS supports LBA and
|
|
|
-acts appropriately, defaulting to CHS mode
|
|
|
-when LBA is not present.
|
|
|
-The PBSs cannot do this due to code size considerations.
|
|
|
-The Plan 9 MBR is suitable for booting non-Plan 9
|
|
|
-operating systems,
|
|
|
-and (modulo the large disk constraints just described)
|
|
|
-non-Plan 9 MBRs are suitable for booting Plan 9.
|
|
|
-.PP
|
|
|
-Thus the default sequence when booting from disk is: BIOS, MBR, PBS,
|
|
|
-.IR 9load ,
|
|
|
-kernel.
|
|
|
-.PP
|
|
|
-Because it contains many device drivers for different
|
|
|
-disks and networks,
|
|
|
-.I 9load
|
|
|
-is larger than 64K and cannot be run as a DOS
|
|
|
-.RB `` .com ''
|
|
|
-executable.
|
|
|
-A stripped-down version that knows about disks but not networks,
|
|
|
-called
|
|
|
-.I ld
|
|
|
-(really
|
|
|
-.BR ld.com ),
|
|
|
-fits in 64K and can be used under DOS to load and start a program (default
|
|
|
-.IR 9load )
|
|
|
-from the FAT16 partition.
|
|
|
-Its command line argument is of the same format as the
|
|
|
-.I bootfile
|
|
|
-specifiers described below.
|
|
|
-This profusion of loaders is unfortunate, but at least
|
|
|
-.I ld
|
|
|
-and
|
|
|
-.I 9load
|
|
|
-are compiled from the same source.
|
|
|
-.PP
|
|
|
-.I 9load
|
|
|
-begins execution at virtual address
|
|
|
-.B 0x80010000
|
|
|
-(64K) and
|
|
|
-loads the
|
|
|
-.I bootfile
|
|
|
-at the entry address specified by the header,
|
|
|
-usually virtual
|
|
|
-.BR 0xF0100020 .
|
|
|
-After loading, control is passed to the entry location.
|
|
|
-.PP
|
|
|
-In summary,
|
|
|
-Plan 9 can be booted on a PC three different ways:
|
|
|
-either
|
|
|
-by using a PXE-capable BIOS to boot
|
|
|
-.I 9pxeload
|
|
|
-directly over the ethernet,
|
|
|
-by booting directly from a Plan 9 disk partition
|
|
|
-or boot floppy
|
|
|
-prepared using
|
|
|
-.B format
|
|
|
-to install the appropriate files and bootstrap sectors
|
|
|
-(see
|
|
|
-.IR prep (8)),
|
|
|
-or rarely
|
|
|
-by booting MS-DOS and using
|
|
|
-.I ld
|
|
|
-to start
|
|
|
-.I 9load
|
|
|
-in the appropriate directory.
|
|
|
-.br
|
|
|
-.ne 4
|
|
|
-.SS Bootfile
|
|
|
-The
|
|
|
-.IR bootfile ,
|
|
|
-which may be compressed with
|
|
|
-.IR gzip (1),
|
|
|
-can be specified to
|
|
|
-.I 9load
|
|
|
-as a
|
|
|
-.B bootfile=
|
|
|
-entry in
|
|
|
-.IR plan9.ini ,
|
|
|
-or if booting from the ethernet, by a BOOTP server
|
|
|
-(see
|
|
|
-.B "Kernel loading"
|
|
|
-below).
|
|
|
-If the
|
|
|
-.B plan9.ini
|
|
|
-file contains multiple
|
|
|
-.B bootfile=
|
|
|
-entries,
|
|
|
-.I 9load
|
|
|
-will present a numerical menu of the choices; type
|
|
|
-the corresponding number to select an entry.
|
|
|
-.PP
|
|
|
-The format of the
|
|
|
-.I bootfile
|
|
|
-name is
|
|
|
-.IB device ! file
|
|
|
-or
|
|
|
-.IB device ! partition ! file\f1.
|
|
|
-If
|
|
|
-.BI ! file
|
|
|
-is omitted, the default for the particular
|
|
|
-.I device
|
|
|
-is used.
|
|
|
-Supported
|
|
|
-.I devices
|
|
|
-are
|
|
|
-.TF \fLethern
|
|
|
-.PD
|
|
|
-.TP
|
|
|
-.BI ether n
|
|
|
-Ethernet.
|
|
|
-.I N
|
|
|
-specifies the Ethernet device number.
|
|
|
-If a
|
|
|
-.I partition
|
|
|
-is specified, it is taken to be the name of a host machine
|
|
|
-from which to load the kernel.
|
|
|
-.I file
|
|
|
-is determined by the
|
|
|
-.B /lib/ndb
|
|
|
-(see
|
|
|
-.IR ndb (6))
|
|
|
-entry for this PC.
|
|
|
-.TP
|
|
|
-.BI sd Cn
|
|
|
-Normal disk.
|
|
|
-The device name format is described in
|
|
|
-.IR sd (3).
|
|
|
-A
|
|
|
-.I partition
|
|
|
-must be given and must
|
|
|
-name a partition containing a FAT file system.
|
|
|
-The name
|
|
|
-.B dos
|
|
|
-refers to the first DOS partition on a given device.
|
|
|
-It is common for Plan 9 partitions to contain a small
|
|
|
-FAT file system for configuration.
|
|
|
-By convention, this partition is called
|
|
|
-.BR 9fat .
|
|
|
-There is no default partition or pathname.
|
|
|
-.TP
|
|
|
-.BI fd n
|
|
|
-An MS-DOS floppy disk.
|
|
|
-.I N
|
|
|
-specifies the floppy drive, either
|
|
|
-0 or 1.
|
|
|
-The
|
|
|
-.I bootfile
|
|
|
-is the contents of the MS-DOS
|
|
|
-.IR file .
|
|
|
-There is no default file.
|
|
|
-For compatibility with normal disks, a
|
|
|
-.I partition
|
|
|
-may be given, but only
|
|
|
-.B dos
|
|
|
-is recognized:
|
|
|
-.BI fd0!dos! file\f1.
|
|
|
-.TP
|
|
|
-.B bios0
|
|
|
-(Not in
|
|
|
-.IR 9pxeload .)
|
|
|
-.I 9load
|
|
|
-loads from a FAT file system on
|
|
|
-the first LBA device
|
|
|
-in the BIOS's list of devices to try to boot from,
|
|
|
-using the BIOS INT 13 calls also used by
|
|
|
-.IR pbslba .
|
|
|
-It does not understand any form of partition table;
|
|
|
-see the
|
|
|
-.B EXAMPLES
|
|
|
-in
|
|
|
-.IR prep (8)
|
|
|
-for how to format such a device.
|
|
|
-This has been mostly useful for booting from USB devices so far.
|
|
|
-.TP
|
|
|
-.B sdB0
|
|
|
-(Not in
|
|
|
-.IR 9pxeload .)
|
|
|
-A special case of
|
|
|
-.BI sd Cn
|
|
|
-that uses
|
|
|
-.B bios0
|
|
|
-to read from a FAT file system.
|
|
|
-Partitions are understood.
|
|
|
-.SS Kernel loading
|
|
|
-When
|
|
|
-.I 9load
|
|
|
-starts running at physical address
|
|
|
-.BR 0x10000 ,
|
|
|
-it switches to 32-bit mode.
|
|
|
-It then double maps the first 16Mb of physical memory to
|
|
|
-virtual addresses
|
|
|
-.B 0
|
|
|
-and
|
|
|
-.BR 0x80000000 .
|
|
|
-Physical memory from
|
|
|
-.B 0x300000
|
|
|
-upwards is used as data space.
|
|
|
-.PP
|
|
|
-.I 9pxeload
|
|
|
-differs slightly in operation from
|
|
|
-.IR 9load .
|
|
|
-It is initially loaded by the PXE BIOS at physical address
|
|
|
-.BR 0x7C00 .
|
|
|
-Only devices which can be automatically configured,
|
|
|
-e.g. most PCI ethernet adapters,
|
|
|
-will be recognised.
|
|
|
-If the file
|
|
|
-.BI /cfg/pxe/ ether
|
|
|
-can be located via a DHCP server,
|
|
|
-where
|
|
|
-.I ether
|
|
|
-is the lower-case MAC address of a recognised ethernet adapter,
|
|
|
-the contents are obtained and used as a
|
|
|
-.IR plan9.ini .
|
|
|
-.PP
|
|
|
-Next, in order to find configuration information,
|
|
|
-.I 9load
|
|
|
-searches all units on devices
|
|
|
-.BR fd
|
|
|
-and
|
|
|
-.BI sd Cn \fR,
|
|
|
-in that order, for a file called
|
|
|
-.B plan9\eplan9.ini
|
|
|
-or
|
|
|
-.B plan9.ini
|
|
|
-(see
|
|
|
-.IR plan9.ini (8))
|
|
|
-on a partition named
|
|
|
-.B dos
|
|
|
-or
|
|
|
-.BR 9fat .
|
|
|
-If one is found, searching stops and the file is read into memory
|
|
|
-at physical address
|
|
|
-.B 0x1200
|
|
|
-where it can be found later by any loaded
|
|
|
-.IR bootfile .
|
|
|
-Some options in
|
|
|
-.B plan9.ini
|
|
|
-are used by
|
|
|
-.IR 9load :
|
|
|
-.TF bootfile=manual
|
|
|
-.TP
|
|
|
-.B console
|
|
|
-.TP
|
|
|
-.B baud
|
|
|
-Specifies the console device and baud rate if not a display.
|
|
|
-.TP
|
|
|
-.BI ether n
|
|
|
-Ethernet interfaces. These can be used to load the
|
|
|
-.I bootfile
|
|
|
-over a network.
|
|
|
-Probing for Ethernet interfaces is too prone to error.
|
|
|
-.TP
|
|
|
-.BI bootfile= bootfile
|
|
|
-Specifies the
|
|
|
-.IR bootfile .
|
|
|
-This option is overridden by a command-line argument.
|
|
|
-.TP
|
|
|
-.B bootfile=auto
|
|
|
-Default.
|
|
|
-.TP
|
|
|
-.B bootfile=local
|
|
|
-Like
|
|
|
-.IR auto ,
|
|
|
-but do not attempt to load over the network.
|
|
|
-.TP
|
|
|
-.B bootfile=manual
|
|
|
-After determining which devices are available for loading from,
|
|
|
-enter prompt mode.
|
|
|
-.PD
|
|
|
-.PP
|
|
|
-When the search for
|
|
|
-.B plan9.ini
|
|
|
-is done,
|
|
|
-.I 9load
|
|
|
-proceeds to determine which bootfile to load.
|
|
|
-If there was no
|
|
|
-.I bootfile
|
|
|
-option,
|
|
|
-.I 9load
|
|
|
-chooses a default
|
|
|
-from the following prioritized device list:
|
|
|
-.EX
|
|
|
- fd sd ether
|
|
|
-.EE
|
|
|
-.I 9load
|
|
|
-then attempts to load the
|
|
|
-.I bootfile
|
|
|
-unless
|
|
|
-the
|
|
|
-.B bootfile=manual
|
|
|
-option was given, in which case prompt mode is entered immediately.
|
|
|
-If the default device is
|
|
|
-.BR fd ,
|
|
|
-.I 9load
|
|
|
-will prompt the user for input before proceeding with the
|
|
|
-default bootfile load after 5 seconds;
|
|
|
-this prompt is omitted if
|
|
|
-a command-line argument or
|
|
|
-.I bootfile
|
|
|
-option
|
|
|
-was given.
|
|
|
-.PP
|
|
|
-.I 9load
|
|
|
-prints the list of available
|
|
|
-.IR device s
|
|
|
-and
|
|
|
-enters prompt mode on encountering any error
|
|
|
-or if directed to do so by a
|
|
|
-.B bootfile=manual
|
|
|
-option.
|
|
|
-In prompt mode, the user is required to type
|
|
|
-a
|
|
|
-.IB bootfile
|
|
|
-in response to the
|
|
|
-.L "Boot from:
|
|
|
-prompt.
|
|
|
-.SS Other facilities and caveats
|
|
|
-.I 9load
|
|
|
-parses the master boot record and Plan 9 partition tables
|
|
|
-(see
|
|
|
-.IR prep (8)),
|
|
|
-leaving partitioning information appended to the
|
|
|
-in-memory contents of
|
|
|
-.I plan9.ini
|
|
|
-for the
|
|
|
-.IR bootfile .
|
|
|
-This is used by
|
|
|
-.IR sd (3)
|
|
|
-to initialize partitions so that
|
|
|
-.IR fossil (4)
|
|
|
-or
|
|
|
-.IR kfs (4)
|
|
|
-file systems can be mounted as the root file system.
|
|
|
-A more extensive partitioning is typically done by
|
|
|
-.I fdisk
|
|
|
-and
|
|
|
-.I prep
|
|
|
-as part of
|
|
|
-.I termrc
|
|
|
-or
|
|
|
-.I cpurc
|
|
|
-(see
|
|
|
-.IR cpurc (8)).
|
|
|
-.PP
|
|
|
-A
|
|
|
-control-P
|
|
|
-character typed at any time on the console causes
|
|
|
-.B 9load
|
|
|
-to perform a hardware reset
|
|
|
-(Ctrl-Alt-Del can also be used on a PC keyboard).
|
|
|
-.PP
|
|
|
-When loaded from a PBS (rather than from
|
|
|
-.IR ld.com ),
|
|
|
-.I 9load
|
|
|
-must be contiguously allocated on
|
|
|
-the disk.
|
|
|
-See
|
|
|
-.IR dossrv (4)
|
|
|
-for information on ensuring this.
|
|
|
-.SH FILES
|
|
|
-.RI [ drive\f(CW:\fP ][ path ]\c
|
|
|
-.B 9load
|
|
|
-.br
|
|
|
-.RI [ drive\f(CW:\fP ][ path ]\c
|
|
|
-.B ld
|
|
|
-.br
|
|
|
-.IB "FAT-filesystem" :\eplan9\eplan9.ini
|
|
|
-.br
|
|
|
-.IB "FAT-filesystem" :\eplan9.ini
|
|
|
-.TF /cfg/pxe
|
|
|
-.TP
|
|
|
-.B /386
|
|
|
-most of these binaries reside here
|
|
|
-.TP
|
|
|
-.BI /cfg/pxe
|
|
|
-directory of
|
|
|
-.I plan9.ini
|
|
|
-files on your TFTP server
|
|
|
-.SH SOURCE
|
|
|
-.B /sys/src/boot/pc
|
|
|
-.SH "SEE ALSO"
|
|
|
-.IR booting (8),
|
|
|
-.IR dhcpd (8),
|
|
|
-.IR plan9.ini (8),
|
|
|
-.IR prep (8)
|
|
|
-.SH BUGS
|
|
|
-Much of the work done by
|
|
|
-.B 9load
|
|
|
-is duplicated by the loaded kernel.
|
|
|
-.PP
|
|
|
-If
|
|
|
-.I ld
|
|
|
-detects an installed MS-DOS Extended Memory Manager,
|
|
|
-it attempts to de-install it, but the technique
|
|
|
-used may not always work.
|
|
|
-It is safer not to install the Extended Memory Manager before running
|
|
|
-.IR ld .
|
|
|
-.PP
|
|
|
-BIOS bugs force some limitions on reading via the BIOS.
|
|
|
-.B bios0
|
|
|
-and
|
|
|
-.B sdB0
|
|
|
-only work on the first LBA device in the BIOS's list of boot devices.
|