It is not complete at this point in time. (26-September-2002)
This document describes the steps needed to have BSD/OS 4.3 and BSD/OS 5.0 boot from a server using PXE. Detailed configuration steps for all the components that need to be configured are described. This includes the DHCP server, the TFTPD server and the operating system software that will be downloaded to the computer.
I have been intrigued by network booting of various computer systems since I started using computers. I had early experiences with network booting of PC hardware in the summer of 1986, using a proprietary networking system, based on 2.5 mbps ArcNet technology. This system, designed and built around the Nestar manufactured PLAN server hardware, featured distributed booting of the client computer, network printing, volume sharing for read-only data and centralized backup software. This was all done on 8088 and 80286 class computers, using PC-DOS 3.2, and later PC-DOS 3.3. When the 80386 processor was introduced, the same system ran on it too.
When I got to the University of Maryland, you can imagine my surprise to discover the rest of the PC world was so far behind the PLAN hardware and software capabilities -- the Novell Netware of the late 1980's was incapable of booting off the network. It just accessed network drives once the workstation had booted from a local hard disk. One giant step backwards. The 3Com hardware and software of that era was little better than Netware, it might have even been worse. Certainly it is hard to imagine a worse ethernet card than the 3Com 3C501!
I have worked on netbooting software and configuration of the following types of computers at various times in the past decade or so: DEC VaxStations, a DEC MicroVax, DEC MIPS-based workstations, Sun2 workstations, Sun3 workstations, and Sun4c/Sun4m/Sun4u workstations.
Computers that use Intel processors and Intel-compatible processors (hereafter refered to as ``x86'') have finally grown up and are now able to boot from a network, just the ``big boys'' of yesteryear. So, for me, it has come in a completely full circle. Once again it is time to work with the network booting capabilities on x86 based computers.
PXE provides a mechanism for a computer to perform certain operations
before the actual boot
code of the operating system starts
running. In the case of PXE, it provides a path by which network
configuration takes place and the retrevial of both network configuration
information and the first level bootstrap program from a remote
computer.
PXE uses extensions to the DHCP configuration mechanism, which provide for specification of a file to boot, often referred to as the PXE loader. Other options can be passed to the PXE loader via DHCP, which can be used to more fully specify what information should be used when booting.
PXE uses the tftp
protocol for retrieving the PXE loader
from a remote server. There must be a tftp
server accessable
by the client computer for PXE booting to be succesful.
PXE booting support was added in the 4.3 release of BSD/OS. BSD/OS 5.0
has essentially the same PXE support (with a few relatively minor changes
to the pxeboot program), so both versions of the operating system will be
treated as more or less the same for the remainder of this document. The
PXE loader that is provided with BSD/OS is called pxeboot
and
is located in /usr/bootstraps/pxeboot
. This program provides
the functions of the standard /boot
program, with certain
additions. The first major addition is the ability to have full access to
PXE configuration information in the boot program. The second major
addition is support for reading files via NFS or retrieving them from a
TFTP server has also been added to this program.
The file retrival support in the PXE loader does not need to be the same
as the PXE ROM supports. In fact, on many systems, the same mechanisms are
not supported by both the PXE ROM and the PXE loader. On BSD/OS, both
tftp
and NFS
are supported retrieval mechanisms.
Other operating systems' PXE loader programs, may not support retriving
files via TFTP, but only via NFS. This somewhat limits the range of
configurations those operating systems can support. More importantly, it
forces the system administrator to have an NFS server accessible on the
network that the client is using. Certain computer configurations, such as
diskless X-Terminals, would benefit from not having to use any NFS mounted
filesystems.
With the addition of both TFTP and NFS to the list of retrieval methods, a variety of different possibilities presents itself for how a machine boots off the network. Some of these possibilities are better suited to hostile network environments than others.XXX - awk
rsync
to track changes on a large
number of servers. Local copies of the paper, both as Postscript and converted to PDF are available from this server.