| Summary: | NFS chapter simultaneously sucks and blows | ||
|---|---|---|---|
| Product: | Documentation | Reporter: | Michael W Lucas <mwlucas> |
| Component: | Books & Articles | Assignee: | freebsd-doc (Nobody) <doc> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Latest | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
Michael W Lucas
2002-02-19 01:20:01 UTC
It's yours. Since I'm trying to create more "copy-aware" -doc contributors, I'm going to pay close attention to the patch. </me shaves head, breaks out jackboots and riding crop.> You have been warned. I suspect this would be easier to discuss in smaller patches, rather than one patch-o-doom. On Tue, Feb 19, 2002 at 04:50:45PM -0500, Tom Rhodes wrote: > Noone has stood up yet... hehe, This ones mine (if noone minds of course) ;) > > > -- > Tom (Darklogik) Rhodes > www.Pittgoth.com Gothic Liberation Front > www.FreeBSD.org The Power To Serve -- Michael Lucas mwlucas@FreeBSD.org, mwlucas@BlackHelicopters.org my FreeBSD column: http://www.oreillynet.com/pub/q/Big_Scary_Daemons http://www.blackhelicopters.org/~mwlucas/ Noone has stood up yet... hehe, This ones mine (if noone minds of course) ;) -- Tom (Darklogik) Rhodes www.Pittgoth.com Gothic Liberation Front www.FreeBSD.org The Power To Serve Please review this, it has alot of your ideas, but a few of my own
tossed in here. I did cover more ground than listed, and have yet
to touch the amd part, well, more than the first paragraph hehe
--
Tom (darklogik) Rhodes
diff -ru handbook.old/advanced-networking/chapter.sgml handbook/advanced-networking/chapter.sgml
--- handbook.old/advanced-networking/chapter.sgml Tue Feb 19 16:19:33 2002
+++ handbook/advanced-networking/chapter.sgml Tue Feb 19 22:42:26 2002
@@ -648,6 +648,13 @@
<sect1info>
<authorgroup>
<author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
@@ -658,44 +665,42 @@
<indexterm><primary>NFS</primary></indexterm>
<para>Among the many different file systems that FreeBSD supports is
- the Network File System or NFS. NFS allows you
- to share directories and files on one machine with others
- via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
- files.</para>
+ the Network File System also known as <acronym>NFS</acronym>.
+ <acronym>NFS</acronym> allows your system to share directories and files on
+ with others over the network. By using <acronym>NFS</acronym>, users and
+ programs can access files on remote systems almost as if they were local files.</para>
- <para>NFS has several benefits:</para>
+ <para>Some of the benefits for using <acronym>NFS</acronym> are:</para>
<itemizedlist>
<listitem>
- <para>Local workstations do not need as much disk space because
+ <para>Local workstations use less disk space because
commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
+ remain accessible to others over the network.</para>
</listitem>
<listitem>
- <para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
+ <para>There would be no need for users to have unique home directories
+ on every network machine. Once they have an established a home
+ directory that is available on an <acronym>NFS</acronym> filesystem,
+ it can be accessed from anywhere on the network.</para>
</listitem>
<listitem>
- <para>Storage devices such as floppies and CDROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
+ <para>Storage devices such as floppy disks, CDROM drives, and ZIP drives
+ can be used by other machines on the network. This may elimininate the
+ need for every system to have a CDROM or ZIP drive, providing a more
+ cost effective solution.</para>
</listitem>
</itemizedlist>
<sect2>
- <title>How It Works</title>
+ <title>How <acronym>NFS</acronym> Works</title>
- <para>NFS is composed of two sides – a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running.</para>
+ <para><acronym>NFS</acronym> consists of at least two parts; a client and
+ a server. The client remotely accesses the data that is stored locally
+ on the server machine. In order for this to function properly a few
+ processes have to be configured and running:</para>
<para>The server has to be running the following daemons:</para>
<indexterm>
@@ -723,85 +728,73 @@
<tbody>
<row>
<entry>nfsd</entry>
- <entry>The NFS Daemon which services requests from NFS
- clients.</entry>
+ <entry>The <acronym>NFS</acronym> daemon which serves requests from
+ the <acronym>NFS</acronym> clients.</entry>
</row>
<row>
<entry>mountd</entry>
- <entry>The NFS Mount Daemon which actually carries out
+ <entry>The <acronym>NFS</acronym> mount daemon which actually carries out
requests that &man.nfsd.8; passes on to it.</entry>
</row>
<row>
<entry>portmap</entry>
- <entry> The <command>portmapper</command> daemon which
- allows NFS clients to find out which port the NFS server
- is using.</entry>
+ <entry> The <command>portmapper</command> daemon
+ allows <acronym>NFS</acronym> clients to find out which port the
+ <acronym>NFS</acronym> server is using.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para>The client side only needs to run a single daemon:</para>
- <indexterm>
- <primary>NFS</primary>
- <secondary>client</secondary>
- </indexterm>
- <indexterm>
- <primary><application>nfsiod</application></primary>
- </indexterm>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>nfsiod</entry>
- <entry>The NFS async I/O Daemon which services requests
- from its NFS server.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The <application>nfsiod</application>
+ daemon services the requests from a <acronym>NFS</acronym> server. This,
+ is optional, and improves performance, but not really required for normal
+ and correct operation. See the &man.nfsiod.8; man page for more information.
+ </para>
</sect2>
<sect2 id="configuring-nfs">
- <title>Configuring NFS</title>
+ <title>Configuring <acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
+ <para>On FreeBSD, the setup of <acronym>NFS</acronym> is a relatively straightforward
+ process. The processes that need to be running can all be run at boot time with
a few modifications to your <filename>/etc/rc.conf</filename>
file.</para>
- <para>On the NFS server make sure you have:</para>
+ <para>On the <acronym>NFS</acronym> server, make sure that the following options
+ in the <filename>/etc/rc.conf</filename> file:</para>
<programlisting>portmap_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_flags="-r"</programlisting>
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
+ <para><command>mountd</command> runs automatically whenever the
+ <acronym>NFS</acronym> server is enabled. The <option>-u</option> and
+ <option>-t</option> flags tell <command>nfsd</command> to
serve UDP and TCP clients. The <option>-n 4</option> flag tells
<command>nfsd</command> to start 4 copies of itself.</para>
- <para>On the client, make sure you have:</para>
+ <para>On the client, make sure these options are present in the
+ <filename>/etc/rc.conf</filename> file:</para>
<programlisting>nfs_client_enable="YES"
nfs_client_flags="-n 4"</programlisting>
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
+ <para>Like with <command>nfsd</command>, the <option>-n 4</option> tells
<command>nfsiod</command> to start 4 copies of itself.</para>
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
+ <para>The <acronym>NFS</acronym> configuration requires that a file
+ called <filename>/etc/exports</filename> exsists. The exports file
+ specifies which file systems on your server will be exported
+ or <quote>shared</quote> and with what clients they will
+ exported too. Each line in the file specifies a file system to be
+ exported. There are many options that can be used in this
file but only a few will be mentioned here. You can find out
about the rest in the &man.exports.5; manual page.</para>
@@ -810,54 +803,57 @@
<indexterm>
<primary>NFS</primary>
- <secondary>exporting filesystems</secondary>
+ <secondary>examples of exporting filesystems</secondary>
</indexterm>
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
+ <para>In the following examples, an idea of how to export filesystems
+ is displayed, although the settings may be different depending on
+ environment and network setup.
+ The following line exports <filename>/cdrom</filename> to
+ three example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in your
<filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the
- shared file system.</para>
+ flag makes the exported file system read-only. With this flag, the
+ remote system will not be able to write any changes to the
+ exported file system.</para>
- <programlisting>/cdrom -ro moe larry curly</programlisting>
+ <programlisting>/cdrom -ro example1 example2 example3</programlisting>
<para>The following line exports <filename>/home</filename> to three
hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
+ private network but do not have a <acronym>DNS</acronym> server configured. The
+ <option>-alldirs</option> flag allows for all of the directories below
the specified file system to be exported as well.</para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they will not
- be able to modify files on the shared file system.</para>
+ <para>The following line exports <filename>/a</filename> so that two
+ machines with different domain names may access the server. The
+ <option>-maproot=0</option> flag allows the <username>root</username>
+ user on the remote system to write data on the exported file system as
+ <username>root</username>. Without the -maproot=0 flag, even if
+ someone has <username>root</username> access on the remote system they will not
+ be able to modify files on the exported file system.</para>
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
+ <programlisting>/a -maproot=0 host.example.com box.example2.com</programlisting>
- <para>In order for a client to access- an exported file system it must
- have permission to do so. Make sure your client is listed in your
+ <para>In order for a client to access an exported file system, the client must
+ have permission to do so. Make sure the client is listed in your
<filename>/etc/exports</filename> file.</para>
- <para>In <filename>/etc/exports</filename>, each line represents
+ <para>In the <filename>/etc/exports</filename> file, each line represents
the export information for one filesystem to one host. A
- remote host can only be specified once for each local
- filesystem, and you can only have one default entry per local
+ remote host can only be specified once per
+ filesystem, and may only have one default entry for each
filesystem. For example, let's assume that
<filename>/usr</filename> is a single filesystem. The
- following <filename>/etc/exports</filename> is invalid:</para>
+ following <filename>/etc/exports</filename> would be invalid:</para>
<programlisting>/usr/src client
/usr/ports client</programlisting>
<para>One filesystem, <filename>/usr</filename>, has two lines
- specifying its exports to the same host,
- <hostid>client</hostid>. The correct format is:</para>
+ specifying its exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
<programlisting>/usr/src /usr/ports client</programlisting>
@@ -874,39 +870,39 @@
# client01 has root privileges on it
/usr/src /usr/ports -maproot=0 client01
/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. Anyone inhe world can mount /exports/obj read-only
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=0 client01 client02
/exports/obj -ro</programlisting>
- <para>You must restart
- <command>mountd</command> whenever you modify
- <filename>/etc/exports</filename> to make changes take
- effect. This can be accomplished by sending the hangup signal
+ <para>You must restart <command>mountd</command> whenever you modify
+ <filename>/etc/exports</filename> to make the changes current.
+ This can be accomplished by either sending the hangup signal
to the <command>mountd</command> process:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time, or you can
- run the following commands as root:</para>
+ <para>Or, a simple reboot should make FreeBSD set everything up
+ for you. Although, a reboot is not nessissary
+ the following commands, run as <username>root</username> of course,
+ could start everything up also.</para>
- <para>On the NFS server:</para>
+ <para>On the <acronym>NFS</acronym> server:</para>
<screen>&prompt.root; <userinput>portmap</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
- <para>On the NFS client:</para>
+ <para>On the <acronym>NFS</acronym> client:</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
- <para>Now you should be ready to actually mount a remote file
+ <para>Now everything should be ready to actually mount a remote file
system. This can be done one of two ways. In these examples the
server's name will be <literal>server</literal> and the client's
name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your configuration you can run a command like this as root on the
+ temporarily mount a remote file system or just want to test the
+ configuration, just run a command like this as <username>root</username> on the
client:</para>
<indexterm>
<primary>NFS</primary>
@@ -916,56 +912,56 @@
<para>This will mount the <filename>/home</filename> directory
on the server at <filename>/mnt</filename> on the client. If
- everything is setup correctly you should be able to go into
- /mnt on the client and see all the files that are on the
+ everything is setup correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files that are on the
server.</para>
<para>If you want to automatically mount a remote file system
- each time the computer boots, add the filesystem to
- <filename>/etc/fstab</filename>. Here is an example:</para>
+ each time the computer boots, add the filesystem to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
- <para>Read the &man.fstab.5; manual page for more options.</para>
+ <para>The &man.fstab.5; manual page will show many more options that are available.</para>
</sect2>
<sect2>
<title>Practical Uses</title>
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
+ <para>There are many practical uses for <acronym>NFS</acronym>. Some of the
+ more common ones are listed below:</para>
+
+ <note><para>The following practicle <acronym>NFS</acronym> examples require
+ the proper <acronym>NFS</acronym> configuration before actual use.</para>
+ </note>
+
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
- <para>Have several machines on a network and share a CDROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
+ <para>Setup several machines on a network to share a CDROM or
+ floppy drive among them. This is cheaper and often more convenient.</para>
</listitem>
<listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
+ <para>With so many machines on a network, you can have a
+ central <acronym>NFS</acronym> server store the user home directories and
+ export them with the rest of the machines on the network, this way
+ users can have the same home directory, regardless of which workstation
+ they log in to.</para>
</listitem>
<listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CDROM into your file server and away you go!</para>
+ <para>You can use one CDROM on the <acronym>NFS</acronym> server to install
+ FreeBSD over the network on multiple machines.</para>
</listitem>
<listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you have already installed on a different
- machine, you do not have to download the source all over
- again!</para>
+ <para>Several machines could have a common <filename>/usr/ports/distfiles</filename>
+ directory. That way, when you install a port on several machines, you can
+ quickly access the source without downloading it on each machine.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -992,14 +988,14 @@
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>automatic mounter daemon</primary></indexterm>
- <para>&man.amd.8;, which is also known as the automatic mounter
+ <para>&man.amd.8;, also known as the automatic mounter
daemon, is a useful utility used for automatically mounting a
remote filesystem whenever a file or directory within that
filesystem is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
<application>amd</application>. Using
<application>amd</application> provides a simplistic alternative
- to static mounts.</para>
+ to perminant mounts.</para>
<para><application>amd</application> operates by attaching
itself as an NFS server to the <filename>/host</filename> and
Major apologies, lol. I was reading over the diff on the pr
site, and noticed some mistakes, and improvments that could and should
be made. So, here again, another patch, fixing a few spelling
errors, and even some grammer ;)
--
Tom Rhodes
***********************
diff -ru handbook.old/advanced-networking/chapter.sgml handbook/advanced-networking/chapter.sgml
--- handbook.old/advanced-networking/chapter.sgml Tue Feb 19 16:19:33 2002
+++ handbook/advanced-networking/chapter.sgml Wed Feb 20 00:29:22 2002
@@ -648,6 +648,13 @@
<sect1info>
<authorgroup>
<author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
@@ -658,44 +665,42 @@
<indexterm><primary>NFS</primary></indexterm>
<para>Among the many different file systems that FreeBSD supports is
- the Network File System or NFS. NFS allows you
- to share directories and files on one machine with others
- via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
- files.</para>
+ the Network File System also known as <acronym>NFS</acronym>.
+ <acronym>NFS</acronym> allows your system to share directories and files
+ with others over the network. By using <acronym>NFS</acronym>, users and
+ programs can access files on remote systems almost as if they were local files.</para>
- <para>NFS has several benefits:</para>
+ <para>Some of the benefits for using <acronym>NFS</acronym> are:</para>
<itemizedlist>
<listitem>
- <para>Local workstations do not need as much disk space because
+ <para>Local workstations use less disk space because
commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
+ remain accessible to others over the network.</para>
</listitem>
<listitem>
- <para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
+ <para>There would be no need for users to have unique home directories
+ on every network machine. Once they have an established a home
+ directory that is available on an <acronym>NFS</acronym> filesystem,
+ it can be accessed from other machines on the network.</para>
</listitem>
<listitem>
- <para>Storage devices such as floppies and CDROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
+ <para>Storage devices such as floppy disks, CDROM drives, and ZIP drives
+ can be used by other machines on the network. This may eliminate the
+ need for every system to have a CDROM or ZIP drive, providing a more
+ cost effective solution.</para>
</listitem>
</itemizedlist>
<sect2>
- <title>How It Works</title>
+ <title>How <acronym>NFS</acronym> Works</title>
- <para>NFS is composed of two sides – a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running.</para>
+ <para><acronym>NFS</acronym> consists of at least two main parts; a client
+ and a server. The client remotely accesses the data that is stored locally
+ on the server machine. In order for this to function properly a few
+ processes have to be configured and running:</para>
<para>The server has to be running the following daemons:</para>
<indexterm>
@@ -723,86 +728,73 @@
<tbody>
<row>
<entry>nfsd</entry>
- <entry>The NFS Daemon which services requests from NFS
- clients.</entry>
+ <entry>The <acronym>NFS</acronym> daemon which serves requests from
+ the <acronym>NFS</acronym> clients.</entry>
</row>
<row>
<entry>mountd</entry>
- <entry>The NFS Mount Daemon which actually carries out
+ <entry>The <acronym>NFS</acronym> mount daemon which actually carries out
requests that &man.nfsd.8; passes on to it.</entry>
</row>
<row>
<entry>portmap</entry>
- <entry> The <command>portmapper</command> daemon which
- allows NFS clients to find out which port the NFS server
- is using.</entry>
+ <entry> The <command>portmapper</command> daemon
+ allows <acronym>NFS</acronym> clients to find out which port the
+ <acronym>NFS</acronym> server is using.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para>The client side only needs to run a single daemon:</para>
- <indexterm>
- <primary>NFS</primary>
- <secondary>client</secondary>
- </indexterm>
- <indexterm>
- <primary><application>nfsiod</application></primary>
- </indexterm>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>nfsiod</entry>
- <entry>The NFS async I/O Daemon which services requests
- from its NFS server.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The <application>nfsiod</application>
+ daemon services the requests from the <acronym>NFS</acronym> server. This
+ is optional, and improves performance, but not required for normal
+ and correct operation. See the &man.nfsiod.8; man page for more information.
+ </para>
</sect2>
<sect2 id="configuring-nfs">
- <title>Configuring NFS</title>
+ <title>Configuring <acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
- a few modifications to your <filename>/etc/rc.conf</filename>
- file.</para>
+ <para>On FreeBSD, the setup of <acronym>NFS</acronym> is a relatively straightforward
+ process. The processes that need to be running can all start at boot time with
+ a few modifications to your <filename>/etc/rc.conf</filename> file.</para>
- <para>On the NFS server make sure you have:</para>
+ <para>On the <acronym>NFS</acronym> server, make sure that the following options
+ in the <filename>/etc/rc.conf</filename> file:</para>
<programlisting>portmap_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_flags="-r"</programlisting>
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
+ <para><command>mountd</command> runs automatically whenever the
+ <acronym>NFS</acronym> server is enabled. The <option>-u</option> and
+ <option>-t</option> flags tell <command>nfsd</command> to
serve UDP and TCP clients. The <option>-n 4</option> flag tells
<command>nfsd</command> to start 4 copies of itself.</para>
- <para>On the client, make sure you have:</para>
+ <para>On the client, make sure these options are present in the
+ <filename>/etc/rc.conf</filename> file:</para>
<programlisting>nfs_client_enable="YES"
nfs_client_flags="-n 4"</programlisting>
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
+ <para>Like with <command>nfsd</command>, the <option>-n 4</option> tells
<command>nfsiod</command> to start 4 copies of itself.</para>
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
- file but only a few will be mentioned here. You can find out
+ <para>The <acronym>NFS</acronym> configuration requires that a file
+ called <filename>/etc/exports</filename> exists. The
+ <filename>exports</filename> file specifies which filesystems
+ on your server will be exported or <quote>shared</quote> and with
+ what clients they will exported too. Each line in the file specifies
+ a filesystem to be exported. There are many options that can be used
+ in this file but only a few will be mentioned here. You can find out
about the rest in the &man.exports.5; manual page.</para>
<para>Here are a few example <filename>/etc/exports</filename>
@@ -810,54 +802,56 @@
<indexterm>
<primary>NFS</primary>
- <secondary>exporting filesystems</secondary>
+ <secondary>examples of exporting filesystems</secondary>
</indexterm>
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
+ <para>In the following examples, an idea of how to export filesystems
+ is displayed, although the settings may be different depending on
+ environment and network setup.
+ The following line exports <filename>/cdrom</filename> to
+ three example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in your
<filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the
- shared file system.</para>
+ flag makes the exported file system read-only. With this flag, the
+ remote system will not be able to write any changes to the
+ exported file system.</para>
- <programlisting>/cdrom -ro moe larry curly</programlisting>
+ <programlisting>/cdrom -ro example1 example2 example3</programlisting>
<para>The following line exports <filename>/home</filename> to three
hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
+ private network but do not have a <acronym>DNS</acronym> server configured.
+ The <option>-alldirs</option> flag allows for all of the directories below
the specified file system to be exported as well.</para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they will not
- be able to modify files on the shared file system.</para>
+ <para>The following line exports <filename>/a</filename> so that two
+ machines with different domain names may access the filesystem. The
+ <option>-maproot=0</option> flag allows the <username>root</username>
+ user on the remote system to write data on the exported file system as
+ <username>root</username>. Without the -maproot=0 flag, even if
+ someone has <username>root</username> access on the remote system they will not
+ be able to modify files on the exported filesystem.</para>
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
+ <programlisting>/a -maproot=0 host.example.com box.example2.com</programlisting>
- <para>In order for a client to access- an exported file system it must
- have permission to do so. Make sure your client is listed in your
+ <para>In order for a client to access an exported filesystem, the client must
+ have permission to do so. Make sure the client is listed in your
<filename>/etc/exports</filename> file.</para>
- <para>In <filename>/etc/exports</filename>, each line represents
+ <para>In the <filename>/etc/exports</filename> file, each line represents
the export information for one filesystem to one host. A
- remote host can only be specified once for each local
- filesystem, and you can only have one default entry per local
- filesystem. For example, let's assume that
+ remote host can only be specified once per filesystem, and may only
+ have one default entry for each. For example, assume that
<filename>/usr</filename> is a single filesystem. The
- following <filename>/etc/exports</filename> is invalid:</para>
+ following <filename>/etc/exports</filename> would be invalid:</para>
<programlisting>/usr/src client
/usr/ports client</programlisting>
<para>One filesystem, <filename>/usr</filename>, has two lines
- specifying its exports to the same host,
- <hostid>client</hostid>. The correct format is:</para>
+ specifying exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
<programlisting>/usr/src /usr/ports client</programlisting>
@@ -874,40 +868,40 @@
# client01 has root privileges on it
/usr/src /usr/ports -maproot=0 client01
/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. Anyone inhe world can mount /exports/obj read-only
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=0 client01 client02
/exports/obj -ro</programlisting>
- <para>You must restart
- <command>mountd</command> whenever you modify
- <filename>/etc/exports</filename> to make changes take
- effect. This can be accomplished by sending the hangup signal
+ <para>You must restart <command>mountd</command> whenever you modify
+ <filename>/etc/exports</filename> to make the changes current.
+ This can be accomplished by either sending the hangup signal
to the <command>mountd</command> process:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time, or you can
- run the following commands as root:</para>
+ <para>Or by a simple reboot, which should make FreeBSD set everything
+ up. Although, a reboot is not necessary the following commands,
+ run as <username>root</username> of course, could start everything
+ up also.</para>
- <para>On the NFS server:</para>
+ <para>On the <acronym>NFS</acronym> server:</para>
<screen>&prompt.root; <userinput>portmap</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
- <para>On the NFS client:</para>
+ <para>On the <acronym>NFS</acronym> client:</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
- <para>Now you should be ready to actually mount a remote file
+ <para>Now everything should be ready to actually mount a remote file
system. This can be done one of two ways. In these examples the
server's name will be <literal>server</literal> and the client's
name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your configuration you can run a command like this as root on the
- client:</para>
+ temporarily mount a remote file system or just want to test the
+ configuration, just run a command like this as <username>root</username>
+ on the client:</para>
<indexterm>
<primary>NFS</primary>
<secondary>mounting filesystems</secondary>
@@ -916,56 +910,59 @@
<para>This will mount the <filename>/home</filename> directory
on the server at <filename>/mnt</filename> on the client. If
- everything is setup correctly you should be able to go into
- /mnt on the client and see all the files that are on the
- server.</para>
-
- <para>If you want to automatically mount a remote file system
- each time the computer boots, add the filesystem to
- <filename>/etc/fstab</filename>. Here is an example:</para>
+ everything is setup correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files
+ that are on the server.</para>
+
+ <para>If you want to automatically mount a remote filesystem
+ each time the computer boots, add the filesystem to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
- <para>Read the &man.fstab.5; manual page for more options.</para>
+ <para>The &man.fstab.5; manual page will show many more options
+ that are available here.</para>
</sect2>
<sect2>
<title>Practical Uses</title>
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
+ <para>There are many practical uses for <acronym>NFS</acronym>. Some of the
+ more common ones are listed below:</para>
+
+ <note><para>The following practical <acronym>NFS</acronym> examples require
+ the proper <acronym>NFS</acronym> configuration before actual use, see
+ above.</para>
+ </note>
+
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
- <para>Have several machines on a network and share a CDROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
+ <para>Setup several machines on a network to share a CDROM or
+ floppy drive among them. This is cheaper and often more convenient.</para>
</listitem>
<listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
+ <para>With so many machines on a network, you can have a
+ central <acronym>NFS</acronym> server store the user home directories and
+ export them to the rest of the machines on the network, this way
+ users can have the same home directory, regardless of which workstation
+ they log in to.</para>
</listitem>
<listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CDROM into your file server and away you go!</para>
+ <para>You can use one CDROM on the <acronym>NFS</acronym> server to install
+ FreeBSD over the network on multiple machines.</para>
</listitem>
<listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you have already installed on a different
- machine, you do not have to download the source all over
- again!</para>
+ <para>Several machines could have a common <filename>/usr/ports/distfiles</filename>
+ directory, assuming of course all the machines are FreeBSD.
+ That way, when you need to install a port on several machines, you can
+ quickly access the source without downloading it on each machine.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -992,14 +989,14 @@
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>automatic mounter daemon</primary></indexterm>
- <para>&man.amd.8;, which is also known as the automatic mounter
+ <para>&man.amd.8;, also known as the automatic mounter
daemon, is a useful utility used for automatically mounting a
remote filesystem whenever a file or directory within that
filesystem is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
<application>amd</application>. Using
<application>amd</application> provides a simplistic alternative
- to static mounts.</para>
+ to permanent mounts.</para>
<para><application>amd</application> operates by attaching
itself as an NFS server to the <filename>/host</filename> and
Here we go again! Another patch, I did various cleanups. Using
many of the wonder ideas that Ceri gave me, and the few sent by
others, a complete redo is here. One major note, I removed
<application> from portmapper, because I thought it looked ugly
after the build, but did not do any changes in the lines. It should
be easy to modify this before the patch is actually applied.
Thanks to everyone who gave me their opinions!
--
Tom (darklogik) Rhodes
www.Pittgoth.com -The Gothic Liberation Front
www.FreeBSD.org -The Power To Serve
diff -ru handbook.old/advanced-networking/chapter.sgml handbook/advanced-networking/chapter.sgml
--- handbook.old/advanced-networking/chapter.sgml Tue Feb 19 16:19:33 2002
+++ handbook/advanced-networking/chapter.sgml Thu Feb 21 00:55:41 2002
@@ -648,6 +648,13 @@
<sect1info>
<authorgroup>
<author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
@@ -658,44 +665,42 @@
<indexterm><primary>NFS</primary></indexterm>
<para>Among the many different file systems that FreeBSD supports is
- the Network File System or NFS. NFS allows you
- to share directories and files on one machine with others
- via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
- files.</para>
+ the Network File System, also known as <acronym>NFS</acronym>.
+ <acronym>NFS</acronym> allows your system to share directories and files
+ with others over a network. By using <acronym>NFS</acronym>, users and
+ programs can access files on remote systems almost as if they were local files.</para>
- <para>NFS has several benefits:</para>
+ <para>Some benefits for using <acronym>NFS</acronym> are:</para>
<itemizedlist>
<listitem>
- <para>Local workstations do not need as much disk space because
+ <para>Local workstations use less disk space because
commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
+ remain accessible to others over the network.</para>
</listitem>
<listitem>
- <para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
+ <para>There would be no need for users to have unique home directories
+ on every network machine. Once they have an established a home
+ directory that is available on an <acronym>NFS</acronym> filesystem,
+ it can be accessed from other machines on the network.</para>
</listitem>
<listitem>
- <para>Storage devices such as floppies and CDROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
+ <para>Storage devices such as floppy disks, CDROM drives, and ZIP drives
+ can be used by other machines on the network. This may eliminate the
+ need for every system to have a CDROM or ZIP drive, providing a more
+ cost effective solution.</para>
</listitem>
</itemizedlist>
<sect2>
- <title>How It Works</title>
+ <title>How <acronym>NFS</acronym> Works</title>
- <para>NFS is composed of two sides – a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running.</para>
+ <para><acronym>NFS</acronym> consists of at least two main parts: a client
+ and a server. The client remotely accesses the data that is stored
+ on the server machine. In order for this to function properly a few
+ processes have to be configured and running:</para>
<para>The server has to be running the following daemons:</para>
<indexterm>
@@ -723,141 +728,134 @@
<tbody>
<row>
<entry>nfsd</entry>
- <entry>The NFS Daemon which services requests from NFS
- clients.</entry>
+ <entry>The <acronym>NFS</acronym> daemon which services requests from
+ the <acronym>NFS</acronym> clients.</entry>
</row>
<row>
<entry>mountd</entry>
- <entry>The NFS Mount Daemon which actually carries out
- requests that &man.nfsd.8; passes on to it.</entry>
+ <entry>The <acronym>NFS</acronym> mount daemon which carries out
+ the requests that &man.nfsd.8; passes on to it.</entry>
</row>
<row>
<entry>portmap</entry>
- <entry> The <command>portmapper</command> daemon which
- allows NFS clients to find out which port the NFS server
- is using.</entry>
+ <entry> The portmapper daemon
+ allows <acronym>NFS</acronym> clients to discover which port the
+ <acronym>NFS</acronym> server is using.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para>The client side only needs to run a single daemon:</para>
- <indexterm>
- <primary>NFS</primary>
- <secondary>client</secondary>
- </indexterm>
- <indexterm>
- <primary><application>nfsiod</application></primary>
- </indexterm>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>nfsiod</entry>
- <entry>The NFS async I/O Daemon which services requests
- from its NFS server.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The <application>nfsiod</application>
+ daemon services the requests from the <acronym>NFS</acronym> server. This
+ is optional, and improves performance, but is not required for normal
+ and correct operation. See the &man.nfsiod.8; man page for more information.
+ </para>
</sect2>
<sect2 id="configuring-nfs">
- <title>Configuring NFS</title>
+ <title>Configuring <acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
- a few modifications to your <filename>/etc/rc.conf</filename>
- file.</para>
+ <para>On FreeBSD, the setup of <acronym>NFS</acronym> is a relatively straightforward
+ process. The processes that need to be running can all start at boot time with
+ a few modifications to your <filename>/etc/rc.conf</filename> file.</para>
- <para>On the NFS server make sure you have:</para>
+ <para>On the <acronym>NFS</acronym> server, make sure that the following options
+ are configured in the <filename>/etc/rc.conf</filename> file:</para>
<programlisting>portmap_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_flags="-r"</programlisting>
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
+ <para><command>mountd</command> runs automatically whenever the
+ <acronym>NFS</acronym> server is enabled. The <option>-u</option> and
+ <option>-t</option> flags tell <command>nfsd</command> to
serve UDP and TCP clients. The <option>-n 4</option> flag tells
<command>nfsd</command> to start 4 copies of itself.</para>
- <para>On the client, make sure you have:</para>
+ <para>On the client, make sure these options are present in the
+ <filename>/etc/rc.conf</filename> file:</para>
<programlisting>nfs_client_enable="YES"
nfs_client_flags="-n 4"</programlisting>
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
+ <para>As with <command>nfsd</command>, the <option>-n 4</option> tells
<command>nfsiod</command> to start 4 copies of itself.</para>
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
- file but only a few will be mentioned here. You can find out
- about the rest in the &man.exports.5; manual page.</para>
+ <para>The <acronym>NFS</acronym> configuration requires that a file
+ known as <filename>exports</filename> exist in the
+ <filename>/etc</filename> directory. The <filename>/etc/exports</filename>
+ file specifies which filesystems on the server will be shared (or
+ <firstterm>exported</firstterm>), and with which clients. Each line in
+ <filename>/etc/exports</filename> specifies a filesystem to be exported and
+ with which this will be done. There are many such options that can be used
+ in this file but only a few will be mentioned here. You can easily discover
+ other options by reading over the &man.exports.5; manual page.
+ </para>
<para>Here are a few example <filename>/etc/exports</filename>
entries:</para>
<indexterm>
- <primary>NFS</primary>
- <secondary>exporting filesystems</secondary>
+ <primary>Examples of exporting filesystems</primary>
</indexterm>
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
+
+ <para>In the following examples, an idea of how to export filesystems
+ is displayed, although the settings may be different depending on
+ your environment and network setup.
+ The following line exports <filename>/cdrom</filename> to
+ three example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in your
<filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the
- shared file system.</para>
+ flag makes the exported file system read-only. With this flag, the
+ remote system will not be able to write any changes to the
+ exported file system.
+ </para>
- <programlisting>/cdrom -ro moe larry curly</programlisting>
+ <programlisting>/cdrom -ro host1 host2 host3</programlisting>
<para>The following line exports <filename>/home</filename> to three
hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
- the specified file system to be exported as well.</para>
+ private network but do not have a <acronym>DNS</acronym> server configured.
+ The <option>-alldirs</option> flag allows for the directories below
+ the specified filesystem to also be exported.</para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they will not
- be able to modify files on the shared file system.</para>
+ <para>The following line exports <filename>/a</filename> so that two
+ machines with different domain names may access the filesystem. The
+ <option>-maproot=0</option> flag allows the <username>root</username>
+ user on the remote system to write data on the exported filesystem as
+ <username>root</username>. If the -maproot=0 flag is not specified, then even if
+ a user has <username>root</username> access on the remote system, they will not
+ be able to modify files on the exported filesystem.
+ </para>
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
+ <programlisting>/a -maproot=0 host.example.com box.example.org</programlisting>
- <para>In order for a client to access- an exported file system it must
- have permission to do so. Make sure your client is listed in your
+ <para>In order for a client to access an exported filesystem, the client must
+ have permission to do so. Make sure the client is listed in your
<filename>/etc/exports</filename> file.</para>
- <para>In <filename>/etc/exports</filename>, each line represents
+ <para>In the <filename>/etc/exports</filename> file, each line represents
the export information for one filesystem to one host. A
- remote host can only be specified once for each local
- filesystem, and you can only have one default entry per local
- filesystem. For example, let's assume that
- <filename>/usr</filename> is a single filesystem. The
- following <filename>/etc/exports</filename> is invalid:</para>
+ remote host can only be specified once per filesystem, and may only
+ have one entry. For example, assume that <filename>/usr</filename>
+ is a single filesystem. The following <filename>/etc/exports</filename>
+ would be invalid:</para>
<programlisting>/usr/src client
/usr/ports client</programlisting>
<para>One filesystem, <filename>/usr</filename>, has two lines
- specifying its exports to the same host,
- <hostid>client</hostid>. The correct format is:</para>
+ specifying exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
<programlisting>/usr/src /usr/ports client</programlisting>
@@ -874,40 +872,41 @@
# client01 has root privileges on it
/usr/src /usr/ports -maproot=0 client01
/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. Anyone inhe world can mount /exports/obj read-only
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=0 client01 client02
/exports/obj -ro</programlisting>
- <para>You must restart
- <command>mountd</command> whenever you modify
- <filename>/etc/exports</filename> to make changes take
- effect. This can be accomplished by sending the hangup signal
+ <para>You must restart <command>mountd</command> whenever you modify
+ <filename>/etc/exports</filename> to make the changes current.
+ This can be accomplished by either sending the hangup signal
to the <command>mountd</command> process:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time, or you can
- run the following commands as root:</para>
+ <para>Alternatively, a reboot should make FreeBSD set everything
+ up properly if the previously described options were added to
+ <filename>/etc/rc.conf</filename>. Although, a reboot is not necessary.
+ Executing the following commands, as <username>root</username> of course,
+ should start everything up.</para>
- <para>On the NFS server:</para>
+ <para>On the <acronym>NFS</acronym> server:</para>
<screen>&prompt.root; <userinput>portmap</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
- <para>On the NFS client:</para>
+ <para>On the <acronym>NFS</acronym> client:</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
- <para>Now you should be ready to actually mount a remote file
+ <para>Now everything should be ready to actually mount a remote file
system. This can be done one of two ways. In these examples the
server's name will be <literal>server</literal> and the client's
- name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your configuration you can run a command like this as root on the
- client:</para>
+ name will be <literal>client</literal>. If you only want to
+ temporarily mount a remote file system or would rather test the
+ configuration, just execute a command like this as <username>root</username>
+ on the client:</para>
<indexterm>
<primary>NFS</primary>
<secondary>mounting filesystems</secondary>
@@ -916,56 +915,58 @@
<para>This will mount the <filename>/home</filename> directory
on the server at <filename>/mnt</filename> on the client. If
- everything is setup correctly you should be able to go into
- /mnt on the client and see all the files that are on the
- server.</para>
-
- <para>If you want to automatically mount a remote file system
- each time the computer boots, add the filesystem to
- <filename>/etc/fstab</filename>. Here is an example:</para>
+ everything is set up correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files
+ that are on the server.</para>
+
+ <para>If you want to automatically mount a remote filesystem
+ each time the computer boots, add the filesystem to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
- <para>Read the &man.fstab.5; manual page for more options.</para>
+ <para>The &man.fstab.5; manual page lists all the available options.</para>
</sect2>
<sect2>
<title>Practical Uses</title>
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
+ <para>There are many practical uses for <acronym>NFS</acronym>. Some of the
+ more common ones are listed below:</para>
+
+ <note><para>The following <acronym>NFS</acronym> examples require
+ <acronym>NFS</acronym> to be correctly configured before actual use, see
+ above.</para>
+ </note>
+
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
- <para>Have several machines on a network and share a CDROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
+ <para>Set up several machines on a network to share a CDROM or
+ floppy drive among them. This is cheaper and often more convenient.</para>
</listitem>
<listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
+ <para>On large networks, it may be more convenient to configure a
+ central <acronym>NFS</acronym> server in which to store all the user
+ home directories on. These home directories can then be exported to
+ the network so that users would always have the same home directory,
+ regardless of which workstation they log in to.</para>
</listitem>
<listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CDROM into your file server and away you go!</para>
+ <para>You can use one CDROM on the <acronym>NFS</acronym> server to install
+ FreeBSD over the network on multiple machines.</para>
</listitem>
<listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you have already installed on a different
- machine, you do not have to download the source all over
- again!</para>
+ <para>Several machines could have a common <filename>/usr/ports/distfiles</filename>
+ directory, assuming of course all the machines are FreeBSD.
+ That way, when you need to install a port on several machines, you can
+ quickly access the source without downloading it on each machine.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -992,14 +993,15 @@
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>automatic mounter daemon</primary></indexterm>
- <para>&man.amd.8;, which is also known as the automatic mounter
- daemon, is a useful utility used for automatically mounting a
+ <para>&man.amd.8; (the automatic mounter daemon)
+ is a useful utility used for automatically mounting a
remote filesystem whenever a file or directory within that
filesystem is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
<application>amd</application>. Using
- <application>amd</application> provides a simplistic alternative
- to static mounts.</para>
+ <application>amd</application> provides a simple alternative
+ to permanent mounts, as permanent mounts should be listed in the
+ <filename>/etc/fstab</filename>.</para>
<para><application>amd</application> operates by attaching
itself as an NFS server to the <filename>/host</filename> and
Only in handbook: imagelib
diff -ru handbook.old/advanced-networking/chapter.sgml handbook/advanced-networking/chapter.sgml
--- handbook.old/advanced-networking/chapter.sgml Fri Feb 22 16:16:17 2002
+++ handbook/advanced-networking/chapter.sgml Fri Feb 22 18:30:35 2002
@@ -648,6 +648,13 @@
<sect1info>
<authorgroup>
<author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
@@ -658,44 +665,40 @@
<indexterm><primary>NFS</primary></indexterm>
<para>Among the many different file systems that FreeBSD supports is
- the Network File System or NFS. NFS allows you
- to share directories and files on one machine with others
- via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
- files.</para>
+ the Network File System, also known as <acronym>NFS</acronym>.
+ <acronym>NFS</acronym> allows a system to share directories and files
+ with others over a network. By using <acronym>NFS</acronym>, users and
+ programs can access files on remote systems almost as if they were local files.</para>
- <para>NFS has several benefits:</para>
+ <para>Some of the most notable benefits that <acronym>NFS</acronym> can provide are:</para>
<itemizedlist>
<listitem>
- <para>Local workstations do not need as much disk space because
+ <para>Local workstations use less disk space because
commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
+ remain accessible to others over the network.</para>
</listitem>
<listitem>
<para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
+ on every network machine. Home directories could be setup on the
+ <acronym>NFS</acronym> server and made available throughout the network.</para>
</listitem>
<listitem>
- <para>Storage devices such as floppies and CDROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
+ <para>Storage devices such as floppy disks, CDROM drives, and ZIP drives
+ can be used by other machines on the network. This may reduce the number
+ of removable media drives.</para>
</listitem>
</itemizedlist>
<sect2>
- <title>How It Works</title>
+ <title>How <acronym>NFS</acronym> Works</title>
- <para>NFS is composed of two sides – a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running.</para>
+ <para><acronym>NFS</acronym> consists of at least two main parts: a server
+ and at least one client. The client remotely accesses the data that is stored
+ on the server machine. In order for this to function properly a few
+ processes have to be configured and running:</para>
<para>The server has to be running the following daemons:</para>
<indexterm>
@@ -723,141 +726,134 @@
<tbody>
<row>
<entry>nfsd</entry>
- <entry>The NFS Daemon which services requests from NFS
- clients.</entry>
+ <entry>The <acronym>NFS</acronym> daemon which services requests from
+ the <acronym>NFS</acronym> clients.</entry>
</row>
<row>
<entry>mountd</entry>
- <entry>The NFS Mount Daemon which actually carries out
- requests that &man.nfsd.8; passes on to it.</entry>
+ <entry>The <acronym>NFS</acronym> mount daemon which carries out
+ the requests that &man.nfsd.8; passes on to it.</entry>
</row>
<row>
<entry>portmap</entry>
- <entry> The <command>portmapper</command> daemon which
- allows NFS clients to find out which port the NFS server
- is using.</entry>
+ <entry> The portmapper daemon
+ allows <acronym>NFS</acronym> clients to discover which port the
+ <acronym>NFS</acronym> server is using.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para>The client side only needs to run a single daemon:</para>
- <indexterm>
- <primary>NFS</primary>
- <secondary>client</secondary>
- </indexterm>
- <indexterm>
- <primary><application>nfsiod</application></primary>
- </indexterm>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>nfsiod</entry>
- <entry>The NFS async I/O Daemon which services requests
- from its NFS server.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The <application>nfsiod</application>
+ daemon services the requests from the <acronym>NFS</acronym> server. This
+ is optional, and improves performance, but is not required for normal
+ and correct operation. See the &man.nfsiod.8; man page for more information.
+ </para>
</sect2>
<sect2 id="configuring-nfs">
- <title>Configuring NFS</title>
+ <title>Configuring <acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
- a few modifications to your <filename>/etc/rc.conf</filename>
- file.</para>
+ <para>On FreeBSD, the setup of <acronym>NFS</acronym> is a relatively straightforward
+ process. The processes that need to be running can all start at boot time with
+ a few modifications to your <filename>/etc/rc.conf</filename> file.</para>
- <para>On the NFS server make sure you have:</para>
+ <para>On the <acronym>NFS</acronym> server, make sure that the following options
+ are configured in the <filename>/etc/rc.conf</filename> file:</para>
<programlisting>portmap_enable="YES"
nfs_server_enable="YES"
-nfs_server_flags="-u -t -n 4"
mountd_flags="-r"</programlisting>
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
+ <para><command>mountd</command> runs automatically whenever the
+ <acronym>NFS</acronym> server is enabled. The <option>-u</option> and
+ <option>-t</option> flags tell <command>nfsd</command> to
serve UDP and TCP clients. The <option>-n 4</option> flag tells
<command>nfsd</command> to start 4 copies of itself.</para>
- <para>On the client, make sure you have:</para>
+ <para>On the client, make sure this option is present in
+ <filename>/etc/rc.conf</filename>:</para>
- <programlisting>nfs_client_enable="YES"
-nfs_client_flags="-n 4"</programlisting>
+ <programlisting>nfs_client_enable="YES"</programlisting>
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
+ <para>As with <command>nfsd</command>, the <option>-n 4</option> tells
<command>nfsiod</command> to start 4 copies of itself.</para>
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
- file but only a few will be mentioned here. You can find out
- about the rest in the &man.exports.5; manual page.</para>
+ <para>The <acronym>NFS</acronym> configuration requires that an
+ <filename>exports</filename> file be created in the
+ <filename>/etc</filename> directory. The <filename>/etc/exports</filename>
+ file will specify which filesystems <acronym>NFS</acronym> should export (sometimes
+ referred to as <quote>share</quote>).
+ Each line in <filename>/etc/exports</filename> specifies a filesystem to be exported and
+ which machines have access to that filesystem. Along with what machines have access
+ to that filesystem, access options may also be specified. There are many such options
+ that can be used in this file but only a few will be mentioned here. You can easily discover
+ other options by reading over the &man.exports.5; manual page.
+ </para>
<para>Here are a few example <filename>/etc/exports</filename>
entries:</para>
<indexterm>
- <primary>NFS</primary>
- <secondary>exporting filesystems</secondary>
+ <primary>Examples of exporting filesystems</primary>
</indexterm>
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
+
+ <para>The following examples give an idea of how to export filesystems,
+ although the settings may be different depending on
+ your environment and network configuration.
+ The following line exports <filename>/cdrom</filename> to
+ three example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in your
<filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the
- shared file system.</para>
+ flag makes the exported file system read-only. With this flag, the
+ remote system will not be able to write any changes to the
+ exported file system.</para>
- <programlisting>/cdrom -ro moe larry curly</programlisting>
+ <programlisting>/cdrom -ro host1 host2 host3</programlisting>
<para>The following line exports <filename>/home</filename> to three
hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
- the specified file system to be exported as well.</para>
+ private network without a <acronym>DNS</acronym> server configured.
+ Optionally the <filename>/etc/hosts</filename> file could be configured
+ for internal hostnames, please view the &man.hosts.5; man page for more
+ information. The <option>-alldirs</option> flag allows for the directories
+ below the specified filesystem to also be exported.</para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they will not
- be able to modify files on the shared file system.</para>
+ <para>The following line exports <filename>/a</filename> so that two
+ clients from different domains may access the filesystem. The
+ <option>-maproot=0</option> flag allows the <username>root</username>
+ user on the remote system to write data on the exported filesystem as
+ <username>root</username>. If the -maproot=0 flag is not specified, then even if
+ a user has <username>root</username> access on the remote system, they will not
+ be able to modify files on the exported filesystem.
+ </para>
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
+ <programlisting>/a -maproot=0 host.example.com box.example.org</programlisting>
- <para>In order for a client to access- an exported file system it must
- have permission to do so. Make sure your client is listed in your
+ <para>In order for a client to access an exported filesystem, the client must
+ have permission to do so. Make sure the client is listed in your
<filename>/etc/exports</filename> file.</para>
<para>In <filename>/etc/exports</filename>, each line represents
the export information for one filesystem to one host. A
- remote host can only be specified once for each local
- filesystem, and you can only have one default entry per local
- filesystem. For example, let's assume that
- <filename>/usr</filename> is a single filesystem. The
- following <filename>/etc/exports</filename> is invalid:</para>
+ remote host can only be specified once per filesystem, and may only
+ have one default entry. For example, assume that <filename>/usr</filename>
+ is a single filesystem. The following <filename>/etc/exports</filename>
+ would be valid:</para>
<programlisting>/usr/src client
/usr/ports client</programlisting>
<para>One filesystem, <filename>/usr</filename>, has two lines
- specifying its exports to the same host,
- <hostid>client</hostid>. The correct format is:</para>
+ specifying exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
<programlisting>/usr/src /usr/ports client</programlisting>
@@ -874,40 +870,40 @@
# client01 has root privileges on it
/usr/src /usr/ports -maproot=0 client01
/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. Anyone inhe world can mount /exports/obj read-only
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=0 client01 client02
/exports/obj -ro</programlisting>
- <para>You must restart
- <command>mountd</command> whenever you modify
- <filename>/etc/exports</filename> to make changes take
- effect. This can be accomplished by sending the hangup signal
+ <para>You must restart <command>mountd</command> whenever you modify
+ <filename>/etc/exports</filename> so the changes can take effect.
+ This can be accomplished by sending the hangup signal
to the <command>mountd</command> process:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time, or you can
- run the following commands as root:</para>
+ <para>Alternatively, a reboot will make FreeBSD set everything
+ up properly. Although, a reboot is not necessary.
+ Executing the following commands, as <username>root</username> of course,
+ should start everything up.</para>
- <para>On the NFS server:</para>
+ <para>On the <acronym>NFS</acronym> server:</para>
<screen>&prompt.root; <userinput>portmap</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
- <para>On the NFS client:</para>
+ <para>On the <acronym>NFS</acronym> client:</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
- <para>Now you should be ready to actually mount a remote file
+ <para>Now everything should be ready to actually mount a remote file
system. This can be done one of two ways. In these examples the
server's name will be <literal>server</literal> and the client's
- name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your configuration you can run a command like this as root on the
- client:</para>
+ name will be <literal>client</literal>. If you only want to
+ temporarily mount a remote file system or would rather test the
+ configuration, just execute a command like this as <username>root</username>
+ on the client:</para>
<indexterm>
<primary>NFS</primary>
<secondary>mounting filesystems</secondary>
@@ -916,56 +912,59 @@
<para>This will mount the <filename>/home</filename> directory
on the server at <filename>/mnt</filename> on the client. If
- everything is setup correctly you should be able to go into
- /mnt on the client and see all the files that are on the
- server.</para>
-
- <para>If you want to automatically mount a remote file system
- each time the computer boots, add the filesystem to
- <filename>/etc/fstab</filename>. Here is an example:</para>
+ everything is set up correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files
+ that are on the server.</para>
+
+ <para>If you want to automatically mount a remote filesystem
+ each time the computer boots, add the filesystem to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
- <para>Read the &man.fstab.5; manual page for more options.</para>
+ <para>The &man.fstab.5; manual page lists all the available options.</para>
</sect2>
<sect2>
<title>Practical Uses</title>
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
+ <para><acronym>NFS</acronym> has many practical. Some of the
+ more common ones are listed below:</para>
+
+ <note><para>The following <acronym>NFS</acronym> examples require
+ <acronym>NFS</acronym> to be correctly configured before actual use,
+ as previously discussed.</para>
+ </note>
+
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
- <para>Have several machines on a network and share a CDROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
+ <para>Set several machines to share a CDROM or
+ other media among them. This is cheaper and often
+ more convenient.</para>
</listitem>
<listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
+ <para>On large networks, it might be more convenient to configure a
+ central <acronym>NFS</acronym> server in which to store all the user
+ home directories. These home directories can then be exported to
+ the network so that users would always have the same home directory,
+ regardless of which workstation they log in to.</para>
</listitem>
<listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CDROM into your file server and away you go!</para>
+ <para>You can use an exported CDROM to install
+ software on multiple machines.</para>
</listitem>
<listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you have already installed on a different
- machine, you do not have to download the source all over
- again!</para>
+ <para>Several machines could have a common <filename>/usr/ports/distfiles</filename>
+ directory.
+ That way, when you need to install a port on several machines, you can
+ quickly access the source without downloading it on each machine.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -992,14 +991,15 @@
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>automatic mounter daemon</primary></indexterm>
- <para>&man.amd.8;, which is also known as the automatic mounter
- daemon, is a useful utility used for automatically mounting a
+ <para>&man.amd.8; (the automatic mounter daemon)
+ is a useful utility that automatically mounts a
remote filesystem whenever a file or directory within that
filesystem is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
<application>amd</application>. Using
- <application>amd</application> provides a simplistic alternative
- to static mounts.</para>
+ <application>amd</application> provides a simple alternative
+ to permanent mounts, as permanent mounts should be listed in the
+ <filename>/etc/fstab</filename>.</para>
<para><application>amd</application> operates by attaching
itself as an NFS server to the <filename>/host</filename> and
Only in handbook/advanced-networking: chapter.sgml.orig
Try this one now ;) Clean up of whitespace, and other little "picks"
--
Tom Rhodes
diff -ru handbook.old/advanced-networking/chapter.sgml handbook/advanced-networking/chapter.sgml
--- handbook.old/advanced-networking/chapter.sgml Fri Feb 22 16:16:17 2002
+++ handbook/advanced-networking/chapter.sgml Tue Feb 26 15:45:36 2002
@@ -648,6 +648,13 @@
<sect1info>
<authorgroup>
<author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
@@ -658,44 +665,41 @@
<indexterm><primary>NFS</primary></indexterm>
<para>Among the many different file systems that FreeBSD supports is
- the Network File System or NFS. NFS allows you
- to share directories and files on one machine with others
- via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
+ the Network File System, also known as <acronym>NFS</acronym>.
+ <acronym>NFS</acronym> allows a system to share directories and files
+ with others over a network. By using <acronym>NFS</acronym>, users and
+ programs can access files on remote systems almost as if they were local
files.</para>
- <para>NFS has several benefits:</para>
+ <para>Some of the most notable benefits that <acronym>NFS</acronym> can provide are:</para>
<itemizedlist>
<listitem>
- <para>Local workstations do not need as much disk space because
+ <para>Local workstations use less disk space because
commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
+ remain accessible to others over the network.</para>
</listitem>
<listitem>
<para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
+ on every network machine. Home directories could be setup on the
+ <acronym>NFS</acronym> server and made available throughout the network.</para>
</listitem>
<listitem>
- <para>Storage devices such as floppies and CDROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
+ <para>Storage devices such as floppy disks, CDROM drives, and ZIP drives
+ can be used by other machines on the network. This may reduce the number
+ of removable media drives.</para>
</listitem>
</itemizedlist>
<sect2>
- <title>How It Works</title>
+ <title>How <acronym>NFS</acronym> Works</title>
- <para>NFS is composed of two sides – a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running.</para>
+ <para><acronym>NFS</acronym> consists of at least two main parts: a server
+ and at least one client. The client remotely accesses the data that is stored
+ on the server machine. In order for this to function properly a few
+ processes have to be configured and running:</para>
<para>The server has to be running the following daemons:</para>
<indexterm>
@@ -723,141 +727,129 @@
<tbody>
<row>
<entry>nfsd</entry>
- <entry>The NFS Daemon which services requests from NFS
- clients.</entry>
+ <entry>The <acronym>NFS</acronym> daemon which services requests from
+ the <acronym>NFS</acronym> clients.</entry>
</row>
<row>
<entry>mountd</entry>
- <entry>The NFS Mount Daemon which actually carries out
- requests that &man.nfsd.8; passes on to it.</entry>
+ <entry>The <acronym>NFS</acronym> mount daemon which carries out
+ the requests that &man.nfsd.8; passes on to it.</entry>
</row>
<row>
<entry>portmap</entry>
- <entry> The <command>portmapper</command> daemon which
- allows NFS clients to find out which port the NFS server
- is using.</entry>
+ <entry> The portmapper daemon
+ allows <acronym>NFS</acronym> clients to discover which port the <acronym>NFS</acronym> server
+ is using.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para>The client side only needs to run a single daemon:</para>
- <indexterm>
- <primary>NFS</primary>
- <secondary>client</secondary>
- </indexterm>
- <indexterm>
- <primary><application>nfsiod</application></primary>
- </indexterm>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>nfsiod</entry>
- <entry>The NFS async I/O Daemon which services requests
- from its NFS server.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The <application>nfsiod</application>
+ daemon services the requests from the <acronym>NFS</acronym> server. This
+ is optional, and improves performance, but is not required for normal
+ and correct operation. See the &man.nfsiod.8; man page for more information.
+ </para>
</sect2>
<sect2 id="configuring-nfs">
- <title>Configuring NFS</title>
+ <title>Configuring <acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
+ <para><acronym>NFS</acronym> configuration is relatively straightforward
+ process. The processes that need to be running can all start at boot time with
a few modifications to your <filename>/etc/rc.conf</filename>
- file.</para>
+ file.</para>
- <para>On the NFS server make sure you have:</para>
+ <para>On the <acronym>NFS</acronym> server, make sure that the following options
+ are configured in the <filename>/etc/rc.conf</filename> file:</para>
<programlisting>portmap_enable="YES"
nfs_server_enable="YES"
-nfs_server_flags="-u -t -n 4"
mountd_flags="-r"</programlisting>
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
- serve UDP and TCP clients. The <option>-n 4</option> flag tells
- <command>nfsd</command> to start 4 copies of itself.</para>
+ <para><command>mountd</command> runs automatically whenever the
+ <acronym>NFS</acronym> server is enabled.
- <para>On the client, make sure you have:</para>
+ <para>On the client, make sure this option is present in
+ <filename>/etc/rc.conf</filename>:</para>
<programlisting>nfs_client_enable="YES"
-nfs_client_flags="-n 4"</programlisting>
-
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
- <command>nfsiod</command> to start 4 copies of itself.</para>
+ </programlisting>
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
- file but only a few will be mentioned here. You can find out
- about the rest in the &man.exports.5; manual page.</para>
+ <para>
+ The <filename>/etc/exports</filename>
+ file specifies which filesystems <acronym>NFS</acronym> should export (sometimes
+ referred to as <quote>share</quote>).
+ Each line in <filename>/etc/exports</filename> specifies a filesystem to be exported and
+ which machines have access to that filesystem. Along with what machines have access
+ to that filesystem, access options may also be specified. There are many such options
+ that can be used in this file but only a few will be mentioned here. You can easily discover
+ other options by reading over the &man.exports.5; manual page.
+ </para>
<para>Here are a few example <filename>/etc/exports</filename>
entries:</para>
<indexterm>
<primary>NFS</primary>
- <secondary>exporting filesystems</secondary>
+ <secondary>Examples of exporting filesystems</secondary>
</indexterm>
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
+
+ <para>The following examples give an idea of how to export filesystems,
+ although the settings may be different depending on
+ your environment and network configuration.
+ The following line exports <filename>/cdrom</filename> to
+ three example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in your
<filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the
- shared file system.</para>
+ flag makes the exported file system read-only. With this flag, the
+ remote system will not be able to write any changes to the
+ exported file system.</para>
- <programlisting>/cdrom -ro moe larry curly</programlisting>
+ <programlisting>/cdrom -ro host1 host2 host3</programlisting>
<para>The following line exports <filename>/home</filename> to three
hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
- the specified file system to be exported as well.</para>
+ private network without a <acronym>DNS</acronym> server configured.
+ Optionally the <filename>/etc/hosts</filename> file could be configured
+ for internal hostnames; please review &man.hosts.5; for more
+ information. The <option>-alldirs</option> flag allows the directories
+ below the specified filesystem to also be exported.</para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they will not
- be able to modify files on the shared file system.</para>
+ <para>The following line exports <filename>/a</filename> so that two
+ clients from different domains may access the filesystem. The
+ <option>-maproot=0</option> flag allows the <username>root</username>
+ user on the remote system to write data on the exported filesystem as
+ <username>root</username>. If the -maproot=0 flag is not specified, then even if
+ a user has <username>root</username> access on the remote system, they will not
+ be able to modify files on the exported filesystem.</para>
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
+ <programlisting>/a -maproot=0 host.example.com box.example.org</programlisting>
- <para>In order for a client to access- an exported file system it must
- have permission to do so. Make sure your client is listed in your
+ <para>In order for a client to access an exported filesystem, the client must
+ have permission to do so. Make sure the client is listed in your
<filename>/etc/exports</filename> file.</para>
<para>In <filename>/etc/exports</filename>, each line represents
the export information for one filesystem to one host. A
- remote host can only be specified once for each local
- filesystem, and you can only have one default entry per local
- filesystem. For example, let's assume that
- <filename>/usr</filename> is a single filesystem. The
- following <filename>/etc/exports</filename> is invalid:</para>
+ remote host can only be specified once per filesystem, and may only
+ have one default entry. For example, assume that <filename>/usr</filename>
+ is a single filesystem. The following <filename>/etc/exports</filename>
+ would be valid:</para>
<programlisting>/usr/src client
/usr/ports client</programlisting>
<para>One filesystem, <filename>/usr</filename>, has two lines
- specifying its exports to the same host,
- <hostid>client</hostid>. The correct format is:</para>
+ specifying exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
<programlisting>/usr/src /usr/ports client</programlisting>
@@ -874,40 +866,41 @@
# client01 has root privileges on it
/usr/src /usr/ports -maproot=0 client01
/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. Anyone inhe world can mount /exports/obj read-only
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=0 client01 client02
/exports/obj -ro</programlisting>
<para>You must restart
<command>mountd</command> whenever you modify
- <filename>/etc/exports</filename> to make changes take
- effect. This can be accomplished by sending the hangup signal
+ <filename>/etc/exports</filename> so the changes can take effect.
+ This can be accomplished by sending the hangup signal
to the <command>mountd</command> process:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time, or you can
- run the following commands as root:</para>
+ <para>Alternatively, a reboot will make FreeBSD set everything
+ up properly. A reboot is not necessary though.
+ Executing the following commands as <username>root</username>,
+ should start everything up.</para>
- <para>On the NFS server:</para>
+ <para>On the <acronym>NFS</acronym> server:</para>
<screen>&prompt.root; <userinput>portmap</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
- <para>On the NFS client:</para>
+ <para>On the <acronym>NFS</acronym> client:</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
- <para>Now you should be ready to actually mount a remote file
- system. This can be done one of two ways. In these examples the
+ <para>Now everything should be ready to actually mount a remote file
+ system. In these examples the
server's name will be <literal>server</literal> and the client's
- name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your configuration you can run a command like this as root on the
- client:</para>
+ name will be <literal>client</literal>. If you only want to
+ temporarily mount a remote file system or would rather test the
+ configuration, just execute a command like this as <username>root</username> on the
+ client:</para>
<indexterm>
<primary>NFS</primary>
<secondary>mounting filesystems</secondary>
@@ -916,56 +909,59 @@
<para>This will mount the <filename>/home</filename> directory
on the server at <filename>/mnt</filename> on the client. If
- everything is setup correctly you should be able to go into
- /mnt on the client and see all the files that are on the
- server.</para>
-
- <para>If you want to automatically mount a remote file system
- each time the computer boots, add the filesystem to
- <filename>/etc/fstab</filename>. Here is an example:</para>
+ everything is set up correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files
+ that are on the server.</para>
+
+ <para>If you want to automatically mount a remote filesystem
+ each time the computer boots, add the filesystem to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
- <para>Read the &man.fstab.5; manual page for more options.</para>
+ <para>The &man.fstab.5; manual page lists all the available options.</para>
</sect2>
<sect2>
<title>Practical Uses</title>
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
+ <para><acronym>NFS</acronym> has many practical uses. Some of the more common
+ ones are listed below:</para>
+
+ <note><para>The following <acronym>NFS</acronym> examples require
+ <acronym>NFS</acronym> to be correctly configured before actual use,
+ as previously discussed.</para>
+ </note>
+
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
- <para>Have several machines on a network and share a CDROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
+ <para>Set several machines to share a CDROM or
+ other media among them. This is cheaper and often
+ more convenient.</para>
</listitem>
<listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
+ <para>On large networks, it might be more convenient to configure a
+ central <acronym>NFS</acronym> server in which to store all the user
+ home directories. These home directories can then be exported to
+ the network so that users would always have the same home directory,
+ regardless of which workstation they log in to.</para>
</listitem>
<listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CDROM into your file server and away you go!</para>
+ <para>You can use an exported CDROM to install
+ software on multiple machines.</para>
</listitem>
<listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you have already installed on a different
- machine, you do not have to download the source all over
- again!</para>
+ <para>Several machines could have a common <filename>/usr/ports/distfiles</filename>
+ directory.
+ That way, when you need to install a port on several machines, you can
+ quickly access the source without downloading it on each machine.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -992,14 +988,15 @@
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>automatic mounter daemon</primary></indexterm>
- <para>&man.amd.8;, which is also known as the automatic mounter
- daemon, is a useful utility used for automatically mounting a
+ <para>&man.amd.8; (the automatic mounter daemon)
+ is a useful that automatically mounts a
remote filesystem whenever a file or directory within that
filesystem is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
<application>amd</application>. Using
- <application>amd</application> provides a simplistic alternative
- to static mounts.</para>
+ <application>amd</application> provides a simple alternative
+ to permanent mounts, as permanent mounts should be listed in the
+ <filename>/etc/fstab</filename>.</para>
<para><application>amd</application> operates by attaching
itself as an NFS server to the <filename>/host</filename> and
diff -ru handbook/advanced-networking/chapter.sgml handbook.new/advanced-networking/chapter.sgml
--- handbook/advanced-networking/chapter.sgml Wed Feb 27 00:08:02 2002
+++ handbook.new/advanced-networking/chapter.sgml Mon Mar 4 02:05:40 2002
@@ -648,6 +648,13 @@
<sect1info>
<authorgroup>
<author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
@@ -658,44 +665,41 @@
<indexterm><primary>NFS</primary></indexterm>
<para>Among the many different file systems that FreeBSD supports is
- the Network File System or NFS. NFS allows you
- to share directories and files on one machine with others
- via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
+ the Network File System, also known as <acronym>NFS</acronym>.
+ <acronym>NFS</acronym> allows a system to share directories and files
+ with others over a network. By using <acronym>NFS</acronym>, users and
+ programs can access files on remote systems almost as if they were local
files.</para>
- <para>NFS has several benefits:</para>
+ <para>Some of the most notable benefits that <acronym>NFS</acronym> can provide are:</para>
<itemizedlist>
<listitem>
- <para>Local workstations do not need as much disk space because
+ <para>Local workstations use less disk space because
commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
+ remain accessible to others over the network.</para>
</listitem>
<listitem>
- <para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
+ <para>There is no need for users to have separate home directories
+ on every network machine. Home directories could be setup on the
+ <acronym>NFS</acronym> server and made available throughout the network.</para>
</listitem>
<listitem>
- <para>Storage devices such as floppies and CDROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
+ <para>Storage devices such as floppy disks, CDROM drives, and ZIP drives
+ can be used by other machines on the network. This may reduce the number
+ of removable media drives throoughout the network.</para>
</listitem>
</itemizedlist>
<sect2>
- <title>How It Works</title>
+ <title>How <acronym>NFS</acronym> Works</title>
- <para>NFS is composed of two sides – a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running.</para>
+ <para><acronym>NFS</acronym> consists of at least two main parts: a server
+ and at least one client. The client remotely accesses the data that is stored
+ on the server machine. In order for this to function properly a few
+ processes have to be configured and running:</para>
<para>The server has to be running the following daemons:</para>
<indexterm>
@@ -723,141 +727,127 @@
<tbody>
<row>
<entry>nfsd</entry>
- <entry>The NFS Daemon which services requests from NFS
- clients.</entry>
+ <entry>The <acronym>NFS</acronym> daemon which services requests from
+ the <acronym>NFS</acronym> clients.</entry>
</row>
<row>
<entry>mountd</entry>
- <entry>The NFS Mount Daemon which actually carries out
- requests that &man.nfsd.8; passes on to it.</entry>
+ <entry>The <acronym>NFS</acronym> mount daemon which carries out
+ the requests that &man.nfsd.8; passes on to it.</entry>
</row>
<row>
<entry>portmap</entry>
- <entry> The <command>portmapper</command> daemon which
- allows NFS clients to find out which port the NFS server
- is using.</entry>
+ <entry> The portmapper daemon
+ allows <acronym>NFS</acronym> clients to discover which port the <acronym>NFS</acronym> server
+ is using.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para>The client side only needs to run a single daemon:</para>
- <indexterm>
- <primary>NFS</primary>
- <secondary>client</secondary>
- </indexterm>
- <indexterm>
- <primary><application>nfsiod</application></primary>
- </indexterm>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>nfsiod</entry>
- <entry>The NFS async I/O Daemon which services requests
- from its NFS server.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The <application>nfsiod</application>
+ daemon services the requests from the <acronym>NFS</acronym> server. This
+ is optional, and improves performance, but is not required for normal
+ and correct operation. See the &man.nfsiod.8; manual page for more information.
+ </para>
</sect2>
<sect2 id="configuring-nfs">
- <title>Configuring NFS</title>
+ <title>Configuring <acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
+ <para><acronym>NFS</acronym> configuration is relatively straightforward
+ process. The processes that need to be running can all start at boot time with
a few modifications to your <filename>/etc/rc.conf</filename>
- file.</para>
+ file.</para>
- <para>On the NFS server make sure you have:</para>
+ <para>On the <acronym>NFS</acronym> server, make sure that the following options
+ are configured in the <filename>/etc/rc.conf</filename> file:</para>
<programlisting>portmap_enable="YES"
nfs_server_enable="YES"
-nfs_server_flags="-u -t -n 4"
mountd_flags="-r"</programlisting>
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
- serve UDP and TCP clients. The <option>-n 4</option> flag tells
- <command>nfsd</command> to start 4 copies of itself.</para>
-
- <para>On the client, make sure you have:</para>
-
- <programlisting>nfs_client_enable="YES"
-nfs_client_flags="-n 4"</programlisting>
-
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
- <command>nfsiod</command> to start 4 copies of itself.</para>
-
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
- file but only a few will be mentioned here. You can find out
- about the rest in the &man.exports.5; manual page.</para>
+ <para><command>mountd</command> runs automatically whenever the
+ <acronym>NFS</acronym> server is enabled.</para>
+
+ <para>On the client, make sure this option is present in
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>nfs_client_enable="YES"</programlisting>
+
+ <para>
+ The <filename>/etc/exports</filename>
+ file specifies which filesystems <acronym>NFS</acronym> should export (sometimes
+ referred to as <quote>share</quote>).
+ Each line in <filename>/etc/exports</filename> specifies a filesystem to be exported and
+ which machines have access to that filesystem. Along with what machines have access
+ to that filesystem, access options may also be specified. There are many such options
+ that can be used in this file but only a few will be mentioned here. You can easily discover
+ other options by reading over the &man.exports.5; manual page.</para>
<para>Here are a few example <filename>/etc/exports</filename>
entries:</para>
<indexterm>
<primary>NFS</primary>
- <secondary>exporting filesystems</secondary>
+ <secondary>Examples of exporting filesystems</secondary>
</indexterm>
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
+
+ <para>The following examples give an idea of how to export filesystems,
+ although the settings may be different depending on
+ your environment and network configuration.
+ For instance, to export the <filename>/cdrom</filename> directory to
+ three example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in your
<filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the
- shared file system.</para>
+ flag makes the exported file system read-only. With this flag, the
+ remote system will not be able to write any changes to the
+ exported file system.</para>
- <programlisting>/cdrom -ro moe larry curly</programlisting>
+ <programlisting>/cdrom -ro host1 host2 host3</programlisting>
<para>The following line exports <filename>/home</filename> to three
hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
- the specified file system to be exported as well.</para>
+ private network without a <acronym>DNS</acronym> server configured.
+ Optionally the <filename>/etc/hosts</filename> file could be configured
+ for internal hostnames; please review &man.hosts.5; for more
+ information. The <option>-alldirs</option> flag allows the directories
+ below the specified filesystem to also be exported.</para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they will not
- be able to modify files on the shared file system.</para>
+ <para>The following line exports <filename>/a</filename> so that two
+ clients from different domains may access the filesystem. The
+ <option>-maproot=0</option> flag allows the <username>root</username>
+ user on the remote system to write data on the exported filesystem as
+ <username>root</username>. If the -maproot=0 flag is not specified, then even if
+ a user has <username>root</username> access on the remote system, they will not
+ be able to modify files on the exported filesystem.</para>
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
+ <programlisting>/a -maproot=0 host.example.com box.example.org</programlisting>
- <para>In order for a client to access- an exported file system it must
- have permission to do so. Make sure your client is listed in your
+ <para>In order for a client to access an exported filesystem, the client must
+ have permission to do so. Make sure the client is listed in your
<filename>/etc/exports</filename> file.</para>
<para>In <filename>/etc/exports</filename>, each line represents
the export information for one filesystem to one host. A
- remote host can only be specified once for each local
- filesystem, and you can only have one default entry per local
- filesystem. For example, let's assume that
- <filename>/usr</filename> is a single filesystem. The
- following <filename>/etc/exports</filename> is invalid:</para>
+ remote host can only be specified once per filesystem, and may only
+ have one default entry. For example, assume that <filename>/usr</filename>
+ is a single filesystem. The following <filename>/etc/exports</filename>
+ would be valid:</para>
<programlisting>/usr/src client
/usr/ports client</programlisting>
<para>One filesystem, <filename>/usr</filename>, has two lines
- specifying its exports to the same host,
- <hostid>client</hostid>. The correct format is:</para>
+ specifying exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
<programlisting>/usr/src /usr/ports client</programlisting>
@@ -874,40 +864,41 @@
# client01 has root privileges on it
/usr/src /usr/ports -maproot=0 client01
/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. Anyone inhe world can mount /exports/obj read-only
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=0 client01 client02
/exports/obj -ro</programlisting>
<para>You must restart
<command>mountd</command> whenever you modify
- <filename>/etc/exports</filename> to make changes take
- effect. This can be accomplished by sending the hangup signal
+ <filename>/etc/exports</filename> so the changes can take effect.
+ This can be accomplished by sending the hangup signal
to the <command>mountd</command> process:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time, or you can
- run the following commands as root:</para>
+ <para>Alternatively, a reboot will make FreeBSD set everything
+ up properly. A reboot is not necessary though.
+ Executing the following commands as <username>root</username>,
+ should start everything up.</para>
- <para>On the NFS server:</para>
+ <para>On the <acronym>NFS</acronym> server:</para>
<screen>&prompt.root; <userinput>portmap</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
- <para>On the NFS client:</para>
+ <para>On the <acronym>NFS</acronym> client:</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
- <para>Now you should be ready to actually mount a remote file
- system. This can be done one of two ways. In these examples the
+ <para>Now everything should be ready to actually mount a remote file
+ system. In these examples the
server's name will be <literal>server</literal> and the client's
- name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your configuration you can run a command like this as root on the
- client:</para>
+ name will be <literal>client</literal>. If you only want to
+ temporarily mount a remote file system or would rather test the
+ configuration, just execute a command like this as <username>root</username> on the
+ client:</para>
<indexterm>
<primary>NFS</primary>
<secondary>mounting filesystems</secondary>
@@ -916,56 +907,59 @@
<para>This will mount the <filename>/home</filename> directory
on the server at <filename>/mnt</filename> on the client. If
- everything is setup correctly you should be able to go into
- /mnt on the client and see all the files that are on the
- server.</para>
-
- <para>If you want to automatically mount a remote file system
- each time the computer boots, add the filesystem to
- <filename>/etc/fstab</filename>. Here is an example:</para>
+ everything is set up correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files
+ that are on the server.</para>
+
+ <para>If you want to automatically mount a remote filesystem
+ each time the computer boots, add the filesystem to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
- <para>Read the &man.fstab.5; manual page for more options.</para>
+ <para>The &man.fstab.5; manual page lists all the available options.</para>
</sect2>
<sect2>
<title>Practical Uses</title>
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
+ <para><acronym>NFS</acronym> has many practical uses. Some of the more common
+ ones are listed below:</para>
+
+ <note><para>The following <acronym>NFS</acronym> examples require
+ <acronym>NFS</acronym> to be correctly configured before actual use,
+ as previously discussed.</para>
+ </note>
+
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
- <para>Have several machines on a network and share a CDROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
+ <para>Set several machines to share a CDROM or
+ other media among them. This is cheaper and often
+ a more convenient method to install software on multiple machines.</para>
</listitem>
<listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
+ <para>On large networks, it might be more convenient to configure a
+ central <acronym>NFS</acronym> server in which to store all the user
+ home directories. These home directories can then be exported to
+ the network so that users would always have the same home directory,
+ regardless of which workstation they log in to.</para>
</listitem>
<listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CDROM into your file server and away you go!</para>
+ <para>You can use an exported CDROM to install
+ software on multiple machines.</para>
</listitem>
<listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you have already installed on a different
- machine, you do not have to download the source all over
- again!</para>
+ <para>Several machines could have a common
+ <filename>/usr/ports/distfiles</filename> directory.
+ That way, when you need to install a port on several machines, you can
+ quickly access the source without downloading it on each machine.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -992,14 +986,15 @@
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>automatic mounter daemon</primary></indexterm>
- <para>&man.amd.8;, which is also known as the automatic mounter
- daemon, is a useful utility used for automatically mounting a
+ <para>&man.amd.8; (the automatic mounter daemon)
+ is a useful that automatically mounts a
remote filesystem whenever a file or directory within that
filesystem is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
<application>amd</application>. Using
- <application>amd</application> provides a simplistic alternative
- to static mounts.</para>
+ <application>amd</application> provides a simple alternative
+ to permanent mounts, as permanent mounts should be listed in the
+ <filename>/etc/fstab</filename>.</para>
<para><application>amd</application> operates by attaching
itself as an NFS server to the <filename>/host</filename> and
diff -ru handbook/advanced-networking/chapter.sgml handbook.new/advanced-networking/chapter.sgml
--- handbook/advanced-networking/chapter.sgml Wed Feb 27 00:08:02 2002
+++ handbook.new/advanced-networking/chapter.sgml Tue Mar 5 18:33:28 2002
@@ -648,6 +648,13 @@
<sect1info>
<authorgroup>
<author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
@@ -658,44 +665,41 @@
<indexterm><primary>NFS</primary></indexterm>
<para>Among the many different file systems that FreeBSD supports is
- the Network File System or NFS. NFS allows you
- to share directories and files on one machine with others
- via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
+ the Network File System, also known as <acronym>NFS</acronym>.
+ <acronym>NFS</acronym> allows a system to share directories and files
+ with others over a network. By using <acronym>NFS</acronym>, users and
+ programs can access files on remote systems almost as if they were local
files.</para>
- <para>NFS has several benefits:</para>
+ <para>Some of the most notable benefits that <acronym>NFS</acronym> can provide are:</para>
<itemizedlist>
<listitem>
- <para>Local workstations do not need as much disk space because
+ <para>Local workstations use less disk space because
commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
+ remain accessible to others over the network.</para>
</listitem>
<listitem>
- <para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
+ <para>There is no need for users to have separate home directories
+ on every network machine. Home directories could be setup on the
+ <acronym>NFS</acronym> server and made available throughout the network.</para>
</listitem>
<listitem>
- <para>Storage devices such as floppies and CDROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
+ <para>Storage devices such as floppy disks, CDROM drives, and ZIP drives
+ can be used by other machines on the network. This may reduce the number
+ of removable media drives throughout the network.</para>
</listitem>
</itemizedlist>
<sect2>
- <title>How It Works</title>
+ <title>How <acronym>NFS</acronym> Works</title>
- <para>NFS is composed of two sides – a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running.</para>
+ <para><acronym>NFS</acronym> consists of at least two main parts: a server
+ and one or more clients. The client remotely accesses the data that is stored
+ on the server machine. In order for this to function properly a few
+ processes have to be configured and running:</para>
<para>The server has to be running the following daemons:</para>
<indexterm>
@@ -723,141 +727,129 @@
<tbody>
<row>
<entry>nfsd</entry>
- <entry>The NFS Daemon which services requests from NFS
- clients.</entry>
+ <entry>The <acronym>NFS</acronym> daemon which services requests from
+ the <acronym>NFS</acronym> clients.</entry>
</row>
<row>
<entry>mountd</entry>
- <entry>The NFS Mount Daemon which actually carries out
- requests that &man.nfsd.8; passes on to it.</entry>
+ <entry>The <acronym>NFS</acronym> mount daemon which carries out
+ the requests that &man.nfsd.8; passes on to it.</entry>
</row>
<row>
<entry>portmap</entry>
- <entry> The <command>portmapper</command> daemon which
- allows NFS clients to find out which port the NFS server
- is using.</entry>
+ <entry> The portmapper daemon
+ allows <acronym>NFS</acronym> clients to discover which port the <acronym>NFS</acronym> server
+ is using.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para>The client side only needs to run a single daemon:</para>
- <indexterm>
- <primary>NFS</primary>
- <secondary>client</secondary>
- </indexterm>
- <indexterm>
- <primary><application>nfsiod</application></primary>
- </indexterm>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>nfsiod</entry>
- <entry>The NFS async I/O Daemon which services requests
- from its NFS server.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The <application>nfsiod</application>
+ daemon services the requests from the <acronym>NFS</acronym> server. This
+ is optional, and improves performance, but is not required for normal
+ and correct operation. See the &man.nfsiod.8; manual page for more information.
+ </para>
</sect2>
<sect2 id="configuring-nfs">
- <title>Configuring NFS</title>
+ <title>Configuring <acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
+ <para><acronym>NFS</acronym> configuration is a relatively straightforward
+ process. The processes that need to be running can all start at boot time with
a few modifications to your <filename>/etc/rc.conf</filename>
- file.</para>
+ file.</para>
- <para>On the NFS server make sure you have:</para>
+ <para>On the <acronym>NFS</acronym> server, make sure that the following options
+ are configured in the <filename>/etc/rc.conf</filename> file:</para>
<programlisting>portmap_enable="YES"
nfs_server_enable="YES"
-nfs_server_flags="-u -t -n 4"
mountd_flags="-r"</programlisting>
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
- serve UDP and TCP clients. The <option>-n 4</option> flag tells
- <command>nfsd</command> to start 4 copies of itself.</para>
-
- <para>On the client, make sure you have:</para>
-
- <programlisting>nfs_client_enable="YES"
-nfs_client_flags="-n 4"</programlisting>
-
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
- <command>nfsiod</command> to start 4 copies of itself.</para>
-
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
- file but only a few will be mentioned here. You can find out
- about the rest in the &man.exports.5; manual page.</para>
+ <para><command>mountd</command> runs automatically whenever the
+ <acronym>NFS</acronym> server is enabled.</para>
+
+ <para>On the client, make sure this option is present in
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>nfs_client_enable="YES"</programlisting>
+
+ <para>
+ The <filename>/etc/exports</filename>
+ file specifies which filesystems <acronym>NFS</acronym> should export (sometimes
+ referred to as <quote>share</quote>).
+ Each line in <filename>/etc/exports</filename> specifies a filesystem to be exported and
+ which machines have access to that filesystem. Along with what machines have access
+ to that filesystem, access options may also be specified. There are many such options
+ that can be used in this file but only a few will be mentioned here. You can easily discover
+ other options by reading over the &man.exports.5; manual page.</para>
<para>Here are a few example <filename>/etc/exports</filename>
entries:</para>
<indexterm>
<primary>NFS</primary>
- <secondary>exporting filesystems</secondary>
+ <secondary>Examples of exporting filesystems</secondary>
</indexterm>
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
+
+ <para>The following examples give an idea of how to export filesystems,
+ although the settings may be different depending on
+ your environment and network configuration.
+ For instance, to export the <filename>/cdrom</filename> directory to
+ three example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in your
<filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the
- shared file system.</para>
+ flag makes the exported file system read-only. With this flag, the
+ remote system will not be able to write any changes to the
+ exported file system.</para>
- <programlisting>/cdrom -ro moe larry curly</programlisting>
+ <programlisting>/cdrom -ro host1 host2 host3</programlisting>
<para>The following line exports <filename>/home</filename> to three
hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
- the specified file system to be exported as well.</para>
+ private network without a <acronym>DNS</acronym> server configured.
+ Optionally the <filename>/etc/hosts</filename> file could be configured
+ for internal hostnames; please review &man.hosts.5; for more
+ information. The <option>-alldirs</option> flag allows the subdirectories
+ to be mount points. In other words, it will not mount the subdirectories
+ but permit the client to mount only the directories that are required or
+ needed.</para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they will not
- be able to modify files on the shared file system.</para>
+ <para>The following line exports <filename>/a</filename> so that two
+ clients from different domains may access the filesystem. The
+ <option>-maproot=root</option> flag allows the <username>root</username>
+ user on the remote system to write data on the exported filesystem as
+ <username>root</username>. If the -maproot=root flag is not specified, then even if
+ a user has <username>root</username> access on the remote system, they will not
+ be able to modify files on the exported filesystem.</para>
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
+ <programlisting>/a -maproot=root host.example.com box.example.org</programlisting>
- <para>In order for a client to access- an exported file system it must
- have permission to do so. Make sure your client is listed in your
+ <para>In order for a client to access an exported filesystem, the client must
+ have permission to do so. Make sure the client is listed in your
<filename>/etc/exports</filename> file.</para>
<para>In <filename>/etc/exports</filename>, each line represents
the export information for one filesystem to one host. A
- remote host can only be specified once for each local
- filesystem, and you can only have one default entry per local
- filesystem. For example, let's assume that
- <filename>/usr</filename> is a single filesystem. The
- following <filename>/etc/exports</filename> is invalid:</para>
+ remote host can only be specified once per filesystem, and may only
+ have one default entry. For example, assume that <filename>/usr</filename>
+ is a single filesystem. The following <filename>/etc/exports</filename>
+ would be valid:</para>
<programlisting>/usr/src client
/usr/ports client</programlisting>
<para>One filesystem, <filename>/usr</filename>, has two lines
- specifying its exports to the same host,
- <hostid>client</hostid>. The correct format is:</para>
+ specifying exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
<programlisting>/usr/src /usr/ports client</programlisting>
@@ -872,42 +864,43 @@
<programlisting># Export src and ports to client01 and client02, but only
# client01 has root privileges on it
-/usr/src /usr/ports -maproot=0 client01
+/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. Anyone inhe world can mount /exports/obj read-only
-/exports -alldirs -maproot=0 client01 client02
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
+/exports -alldirs -maproot=root client01 client02
/exports/obj -ro</programlisting>
<para>You must restart
<command>mountd</command> whenever you modify
- <filename>/etc/exports</filename> to make changes take
- effect. This can be accomplished by sending the hangup signal
+ <filename>/etc/exports</filename> so the changes can take effect.
+ This can be accomplished by sending the hangup signal
to the <command>mountd</command> process:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time, or you can
- run the following commands as root:</para>
+ <para>Alternatively, a reboot will make FreeBSD set everything
+ up properly. A reboot is not necessary though.
+ Executing the following commands as <username>root</username>
+ should start everything up.</para>
- <para>On the NFS server:</para>
+ <para>On the <acronym>NFS</acronym> server:</para>
<screen>&prompt.root; <userinput>portmap</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
- <para>On the NFS client:</para>
+ <para>On the <acronym>NFS</acronym> client:</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
- <para>Now you should be ready to actually mount a remote file
- system. This can be done one of two ways. In these examples the
+ <para>Now everything should be ready to actually mount a remote file
+ system. In these examples the
server's name will be <literal>server</literal> and the client's
- name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your configuration you can run a command like this as root on the
- client:</para>
+ name will be <literal>client</literal>. If you only want to
+ temporarily mount a remote file system or would rather test the
+ configuration, just execute a command like this as <username>root</username> on the
+ client:</para>
<indexterm>
<primary>NFS</primary>
<secondary>mounting filesystems</secondary>
@@ -916,56 +909,54 @@
<para>This will mount the <filename>/home</filename> directory
on the server at <filename>/mnt</filename> on the client. If
- everything is setup correctly you should be able to go into
- /mnt on the client and see all the files that are on the
- server.</para>
-
- <para>If you want to automatically mount a remote file system
- each time the computer boots, add the filesystem to
- <filename>/etc/fstab</filename>. Here is an example:</para>
+ everything is set up correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files
+ that are on the server.</para>
+
+ <para>If you want to automatically mount a remote filesystem
+ each time the computer boots, add the filesystem to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
- <para>Read the &man.fstab.5; manual page for more options.</para>
+ <para>The &man.fstab.5; manual page lists all the available options.</para>
</sect2>
<sect2>
<title>Practical Uses</title>
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
+ <para><acronym>NFS</acronym> has many practical uses. Some of the more common
+ ones are listed below:</para>
+
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
- <para>Have several machines on a network and share a CDROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
+ <para>Set several machines to share a CDROM or
+ other media among them. This is cheaper and often
+ a more convenient method to install software on multiple machines.</para>
</listitem>
<listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
+ <para>On large networks, it might be more convenient to configure a
+ central <acronym>NFS</acronym> server in which to store all the user
+ home directories. These home directories can then be exported to
+ the network so that users would always have the same home directory,
+ regardless of which workstation they log in to.</para>
</listitem>
<listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CDROM into your file server and away you go!</para>
+ <para>You can use an exported CDROM to install
+ software on multiple machines.</para>
</listitem>
<listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you have already installed on a different
- machine, you do not have to download the source all over
- again!</para>
+ <para>Several machines could have a common
+ <filename>/usr/ports/distfiles</filename> directory.
+ That way, when you need to install a port on several machines, you can
+ quickly access the source without downloading it on each machine.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -992,14 +983,15 @@
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>automatic mounter daemon</primary></indexterm>
- <para>&man.amd.8;, which is also known as the automatic mounter
- daemon, is a useful utility used for automatically mounting a
+ <para>&man.amd.8; (the automatic mounter daemon)
+ is a useful daemon that automatically mounts a
remote filesystem whenever a file or directory within that
filesystem is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
<application>amd</application>. Using
- <application>amd</application> provides a simplistic alternative
- to static mounts.</para>
+ <application>amd</application> provides a simple alternative
+ to permanent mounts, as permanent mounts should be listed in the
+ <filename>/etc/fstab</filename>.</para>
<para><application>amd</application> operates by attaching
itself as an NFS server to the <filename>/host</filename> and
State Changed From-To: open->closed Committed, thanks! Changes may take up to 24 hours to appear on www.FreeBSD.org |