freebsd-dev/share/doc/handbook/diskless.sgml
Mike Pritchard 09d44b1ef5 (This really shouldn't all be on one commit, but I forgot
I was in the middle of one of these "projects" when I started
on the next, so they wound up all intermixed)

Move the mailing list entities from authors.sgml to the new file
lists.sgml.  Add an entity for majordomo at the same time.

Avoid the use of contractions.  This revealed some grammer problems,
and also has the benefit of helping make things clearer for those people
who do make speak English as a their first language.
1996-05-16 23:18:28 +00:00

154 lines
5.0 KiB
Plaintext

<!-- $Id: diskless.sgml,v 1.3 1996/01/31 14:26:03 mpp Exp $ -->
<!-- The FreeBSD Documentation Project -->
<sect><heading>Diskless operation<label id="diskless"></heading>
<p><em>Contributed by &a.martin;.</em>
<tt>netboot.com/netboot.rom</tt> allow you to boot your
FreeBSD machine over the network and run FreeBSD without
having a disk on your client. Under 2.0 it is now
possible to have local swap. Swapping over NFS is also
still supported.
Supported Ethernet cards include: Western Digital/SMC
8003, 8013, 8216 and compatibles; NE1000/NE2000 and
compatibles (requires recompile)
<sect1>
<heading>Setup Instructions</heading>
<p><enum>
<item> Find a machine that will be your server. This
machine will require enough disk space to hold the
FreeBSD 2.0 binaries and have bootp, tftp and NFS
services available.
Tested machines:
<itemize>
<item>HP9000/8xx running HP-UX 9.04 or later (pre
9.04 doesn't work)</item>
<item>Sun/Solaris 2.3. (you may need to get
bootp)</item>
</itemize>
<item>Set up a bootp server to provide the client with
IP, gateway, netmask.
<tscreen><verb>
diskless:\
:ht=ether:\
:ha=0000c01f848a:\
:sm=255.255.255.0:\
:hn:\
:ds=192.1.2.3:\
:ip=192.1.2.4:\
:gw=192.1.2.5:\
:vm=rfc1048:
</verb></tscreen></item>
<item>Set up a TFTP server (on same machine as bootp
server) to provide booting information to client.
The name of this file is <tt>cfg.X.X.X.X</tt> (or
<tt>/tftpboot/cfg.X.X.X.X</tt>, it will try both)
where <tt>X.X.X.X</tt> is the IP address of the
client. The contents of this file can be any valid
netboot commands. Under 2.0, netboot has the
following commands:
<tscreen><verb>
help - print help list
ip <X.X.X.X> - print/set client's IP address
server <X.X.X.X> - print/set bootp/tftp server address
netmask <X.X.X.X> - print/set netmask
hostname <name> - print/set hostname
kernel <name> - print/set kernel name
rootfs <ip:/fs> - print/set root filesystem
swapfs <ip:/fs> - print/set swap filesystem
swapsize <size> - set diskless swapsize in Kbytes
diskboot - boot from disk
autoboot - continue boot process
</verb></tscreen>
A typical completely diskless cfg file might contain:
<tscreen><verb>
rootfs 192.1.2.3:/rootfs/myclient
swapfs 192.1.2.3:/swapfs
swapsize 20000
hostname myclient.mydomain
</verb></tscreen>
A cfg file for a machine with local swap might contain:
<tscreen><verb>
rootfs 192.1.2.3:/rootfs/myclient
hostname myclient.mydomain
</verb></tscreen>
<item>Ensure that your NFS server has exported the root
(and swap if applicable) filesystems to your client,
and that the client has root access to these
filesystems
A typical <tt>/etc/exports</tt> file on FreeBSD might
look like:
<tscreen><verb>
/rootfs/myclient -maproot=0:0 myclient.mydomain
/swapfs -maproot=0:0 myclient.mydomain
</verb></tscreen>
And on HP-UX:
<tscreen><verb>
/rootfs/myclient -root=myclient.mydomain
/swapfs -root=myclient.mydomain
</verb></tscreen>
<item>If you are swapping over NFS (completely diskless
configuration) create a swap file for your client
using touch. If your <tt>swapfs</tt> command has the
argument <tt>/swapfs</tt> as in the example above,
the swapfile for myclient will be called
<tt>/swapfs/swap.X.X.X.X</tt> where <tt>X.X.X.X</tt>
is the client's IP addr, eg:
<tscreen><verb>
# touch /swapfs/swap.192.1.2.4
</verb></tscreen>
<item> Unpack the root filesystem in the directory the
client will use for its root filesystem
(<tt>/rootfs/myclient</tt> in the example above).
<itemize>
<item> On HP-UX systems: The server should be
running HP-UX 9.04 or later for HP9000/800 series
machines. Prior versions do not allow the
creation of device files over NFS.
<item> When extracting <tt>/dev</tt> in
<tt>/rootfs/myclient</tt>, beware that some
systems (HPUX) will not create device files that
FreeBSD is happy with. You may have to go to
single user mode on the first bootup (press
control-c during the bootup phase), cd
<tt>/dev</tt> and do a "<tt>sh ./MAKEDEV
all</tt>" from the client to fix this.
</itemize>
<item>Run <tt>netboot.com</tt> on the client or make an EPROM
from the <tt>netboot.rom</tt> file
</enum>
<sect1>
<heading>Using Shared <tt>/</tt> and <tt>/usr</tt> filesystems</heading>
<p>At present there isn't an officially sanctioned way of
doing this, although I have been using a shared <tt>/usr</tt>
filesystem and individual <tt>/</tt> filesystems for each client.
If anyone has any suggestions on how to do this cleanly,
please let me and/or the core group know.
<sect1>
<heading>Compiling netboot for specific setups</heading>
<p>Netboot can be compiled to support NE1000/2000 cards by
changing the configuration in
<tt>/sys/i386/boot/netboot/Makefile</tt>. See the
comments at the top of this file.