As I have not used such a beast myself yet, I can give you only the following tips (courtesy of Christian Leutloff
<leutloff@sundancer.tng.oche.de>
):
netboot
packet by Gero Kuhlmann, that provides for boot ROMs for Linux, and further information.
netboot
is available from the local Linux mirror, or as a Debian package (
netboot-0.4
).
If you have exported the root filesystem with the correct name for the default naming and your
NFS
server is also the
RARP
server (which implies that the boxes are on the same subnet.), than you can just boot the kernel by
cat
ing it to a disk. (You have to set the root device in the kernel to 0:255.) This assumes, that the root directory on the server is
/tftpboot/
IP Address
(this value can be changed when compiling the kernel.)
Give the kernel all needed parameters when booting, and add
nfsroot=<
server-ip-addr
>:<
/mount
>
where
server-ip-addr
is the IP address of your NFS-server, and
/path/to/mount
is the path to the root directory.
Tips:
lock
'' feature: Simply type in once all the correct parameters and add ``
lock
''. Next time when booting let LILO timeout.
append=
feature in
lilo.conf
.
The
ip
and
nfsroot
kernel parameters (which can be hardcoded into the kernel, interactively entered at some bootloader prompts, or included in
lilo.conf
via the
append=
parameter; see the next subsection) provide all of the information necessary for the client to set up its ethernet interface and to contact the NFS server, respectively. The parameters are fully documented in
Documentation/nfsroot.txt
, which is included in the kernel sources (usually found under
/usr/src/linux
). Here's the format for a machine with a static (pre-assigned) IP address:
nfsroot=<
NFS-server-IP-number
>:/path/on/server/to/nfs_root ip=<
client-IP-number
>::<
gateway-IP-number
>:<
netmask
>:<
client-hostname
>:eth0:off
DHCP is much simpler:
nfsroot=<
NFS-server-IP-number
>:/path/on/server/to/nfs_root ip=dhcp
Here's an example of a complete kernel command line such as you might include in
lilo.conf
or equivalent; only the IP numbers and NFS path are bogus:
root=/dev/nfs rw nfsroot=12.345.67.89:/path/on/server/to/nfs_root ip=dhcp console=ttyS1
That uses DHCP to assign an IP address to the machine and puts its boot messages (console) on the second serial port. The following is the corresponding example using a static IP address; it also explicitly specifies Busybox's (non-standard) location for init:
root=/dev/nfs rw nfsroot=12.345.67.89:/path/on/server/to/nfs_root ip=12.345.67.88::12.345.67.1:255.255.255.0:embed-o-matic:eth0:off console=ttyS1 init=/bin/init