122 lines
4.7 KiB
HTML
122 lines
4.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>NFS-Root mini-HOWTO: Booting the workstation</TITLE>
|
|
<LINK HREF="NFS-Root-5.html" REL=next>
|
|
<LINK HREF="NFS-Root-3.html" REL=previous>
|
|
<LINK HREF="NFS-Root.html#toc4" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="NFS-Root-5.html">Next</A>
|
|
<A HREF="NFS-Root-3.html">Previous</A>
|
|
<A HREF="NFS-Root.html#toc4">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s4">4. Booting the workstation</A></H2>
|
|
|
|
<P>
|
|
<H2><A NAME="ss4.1">4.1 Using a boot ROM</A>
|
|
</H2>
|
|
|
|
<P>As I have not used such a beast myself yet, I can give you only the
|
|
following tips (courtesy of Christian Leutloff
|
|
<CODE><leutloff@sundancer.tng.oche.de></CODE>):
|
|
<UL>
|
|
<LI> You can't use ``normal'' boot ROMs.</LI>
|
|
<LI> There is a <CODE>netboot</CODE> packet by Gero Kuhlmann, that provides
|
|
for boot ROMs for Linux, and further information. <CODE>netboot</CODE> is
|
|
available from the local Linux mirror, or as a Debian package
|
|
(<CODE>netboot-0.4</CODE>).</LI>
|
|
<LI> Read the documentation coming with your boot ROM carefully.</LI>
|
|
<LI> You probably will have to enable the tftpd on the server, but
|
|
this depends upon your boot ROM's way of loading the kernel.</LI>
|
|
<LI> <I>Any information on boot-ROM vendors of these Linux variety,
|
|
mentioned above, as not everybody has access to PROM burner :(
|
|
(especially in Europe, as I'm located there.) welcome, I'll include
|
|
them then here.</I> </LI>
|
|
</UL>
|
|
<H2><A NAME="ss4.2">4.2 Using a raw kernel disk</A>
|
|
</H2>
|
|
|
|
<P>If you have exported the root filesystem with the correct name for the
|
|
default naming and your <EM>NFS</EM> server is also the <EM>RARP</EM> server
|
|
(which implies that the boxes are on the same subnet.), than you can
|
|
just boot the kernel by <CODE>cat</CODE>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 <CODE>/tftpboot/</CODE><I>IP Address</I>
|
|
(this value can be changed when compiling the kernel.)
|
|
<H2><A NAME="ss4.3">4.3 Using a bootloader & <EM>RARP</EM></A>
|
|
</H2>
|
|
|
|
<P>Give the kernel all needed parameters when booting, and add
|
|
<CODE>nfsroot=<<EM>server-ip-addr</EM>>:<<EM>/path/to/mount</EM>></CODE>
|
|
where <EM>server-ip-addr</EM> is the IP address of your NFS-server, and
|
|
<EM>/path/to/mount</EM> is the path to the root directory.
|
|
<P>Tips:
|
|
<UL>
|
|
<LI> When using <B>LILO</B> consider using the ``<CODE>lock</CODE>'' feature: Simply
|
|
type in once all the correct parameters and add
|
|
``<CODE>lock</CODE>''. Next time when booting let LILO timeout.</LI>
|
|
<LI> When generating a workstation specific boot disk, you can
|
|
also use the <CODE>append=</CODE> feature in <CODE>lilo.conf</CODE>.</LI>
|
|
</UL>
|
|
<P>
|
|
<H2><A NAME="ss4.4">4.4 Using a bootloader without <EM>RARP</EM></A>
|
|
</H2>
|
|
|
|
<P>The <CODE>ip</CODE> and <CODE>nfsroot</CODE> kernel parameters (which can be hardcoded
|
|
into the kernel, interactively entered at some bootloader prompts, or
|
|
included in <CODE>lilo.conf</CODE> via the <CODE>append=</CODE> 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 <CODE>Documentation/nfsroot.txt</CODE>, which is included in
|
|
the kernel sources (usually found under <CODE>/usr/src/linux</CODE>). Here's
|
|
the format for a machine with a static (pre-assigned) IP address:
|
|
<P>
|
|
<P>
|
|
<UL>
|
|
<LI> <CODE>nfsroot=<<EM>NFS-server-IP-number</EM>>:/path/on/server/to/nfs_root
|
|
ip=<<EM>client-IP-number</EM>>::<<EM>gateway-IP-number</EM>>:<<EM>netmask</EM>>:<<EM>client-hostname</EM>>:eth0:off</CODE></LI>
|
|
</UL>
|
|
<P>
|
|
<P>DHCP is much simpler:
|
|
<P>
|
|
<P>
|
|
<UL>
|
|
<LI> <CODE>nfsroot=<<EM>NFS-server-IP-number</EM>>:/path/on/server/to/nfs_root
|
|
ip=dhcp</CODE></LI>
|
|
</UL>
|
|
<P>
|
|
<H2><A NAME="ss4.5">4.5 Sample kernel command lines</A>
|
|
</H2>
|
|
|
|
<P>Here's an example of a complete kernel command line such as you might
|
|
include in <CODE>lilo.conf</CODE> or equivalent; only the IP numbers and NFS
|
|
path are bogus:
|
|
<P>
|
|
<P>
|
|
<UL>
|
|
<LI> <CODE>root=/dev/nfs rw nfsroot=12.345.67.89:/path/on/server/to/nfs_root
|
|
ip=dhcp console=ttyS1</CODE></LI>
|
|
</UL>
|
|
<P>
|
|
<P>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:
|
|
<P>
|
|
<P>
|
|
<UL>
|
|
<LI> <CODE>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</CODE></LI>
|
|
</UL>
|
|
<P>
|
|
<HR>
|
|
<A HREF="NFS-Root-5.html">Next</A>
|
|
<A HREF="NFS-Root-3.html">Previous</A>
|
|
<A HREF="NFS-Root.html#toc4">Contents</A>
|
|
</BODY>
|
|
</HTML>
|