old-www/HOWTO/NFS-Root-4.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>&lt;leutloff@sundancer.tng.oche.de&gt;</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 &amp; <EM>RARP</EM></A>
</H2>
<P>Give the kernel all needed parameters when booting, and add
<CODE>nfsroot=&lt;<EM>server-ip-addr</EM>&gt;:&lt;<EM>/path/to/mount</EM>&gt;</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=&lt;<EM>NFS-server-IP-number</EM>&gt;:/path/on/server/to/nfs_root
ip=&lt;<EM>client-IP-number</EM>&gt;::&lt;<EM>gateway-IP-number</EM>&gt;:&lt;<EM>netmask</EM>&gt;:&lt;<EM>client-hostname</EM>&gt;:eth0:off</CODE></LI>
</UL>
<P>
<P>DHCP is much simpler:
<P>
<P>
<UL>
<LI> <CODE>nfsroot=&lt;<EM>NFS-server-IP-number</EM>&gt;:/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>