09d44b1ef5
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.
154 lines
5.0 KiB
Plaintext
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.
|
|
|