Subject: Re: Netboot Guide
To: Alex Kirk <alex@schnarff.com>
From: Brian Chase <vaxzilla@jarai.org>
List: netbsd-docs
Date: 02/20/2003 15:10:47
On Wed, 19 Feb 2003, Alex Kirk wrote:

> Ummm, quick thought: since we're all volunteers in our spare time here, and
> since neither of us knows SGML (or so I assume by the comment above),
> perhaps it would be smarter to not tackle a whole new language for doing
> this -- particularly since there's not necessarily agreement on whether
> machine-specific docs vs. a generic one with arch. specific stuff would be a
> good idea. To the latter end there, is the netboot process so completely
> different from machine to machine that it'd make sense to have a document
> per architecture, that a generic overview would be impossible?

The generic vs. specific considerations of writing a netbooting document
are non-trivial.  At a very high-level, most netbooting looks the same:
you load a bootloader and get the kernel running, or you directly load a
kernel.  Beyond that high-level, there are so many different
permutations of how to setup netbooting that any single document on it
is bound to be rather huge.  This especially can be compounded by the
fact that most of the people who need a guide like this tend to not be
familiar with setting up basic things like DHCP servers or even NFS
servers.  /And/ they often want to set up these services on systems that
aren't running NetBSD.

As the person who wrote the original netbooting guide for VAX systems,
here are some things I've found that will make comprehensive documention
on netbooting difficult:

[1] Differences in systems built in facilities for netbooting.  You've
    got MOP, BOOTP, DHCP, tftp, whatever those ancient ISA PC NICs used
    to support with those optional diskless boot roms, PXE, or
    floppy/cdrom setups.  System specific details for each of these
    would need to be discussed.

[2] Differences in obtaining the hardware ethernet address.  Often, with
    PC NICs, the ethernet address is directly printed on the NIC.  In
    the case of SGIs, the addresses can be derived from system serial
    numbers, or from the console.  The VAX systems vary greatly
    depending on the type of system, NIC, and version of the console.
    Sun's tend to have it available at the console. Etc.  One needs to
    document all of the system specific way to get this information.

[3] Explaining all the various necessary server side software to
    support different flavors of netbooting.  These include
    discussions of rarpd, mopd, bootpd, dhcpd, bootparamd, tftpd, NFS
    servers and related daemons, root r/w NFS, and whatever PXE might
    require.

[4] Explaining how to setup all the stuff in [3] for a wide variety
    of operating systems, old and new: Solaris, Linux, SunOS, MacOS-X,
    FreeBSD, OpenBSD, AIX, IRIX, NEXTSTEP, HP-UX, Windows, etc.

[5] Adequately covering advanced topics like: setting up multiple
    clients with shared NFS filesystems, security considerations with
    various netbooting services (i.e. root modifiable NFS and tftp),
    netbooting across subnets/networks, advanced configurations
    involving multiple

My suggestions to anyone undertaking this task would be to focus on
discussing the netbooting of NetBSD clients from NetBSD servers.  There
are enough different NetBSD supported systems to keep anyone busy for a
really long writing documentation on netbooting.  If that can be done,
then consider adding documentation for setting up bootservers on other
OSes.

-brian.