The /etc/fstab file is referenced by
the netfs service at boot time, so lines
referencing NFS shares have the same effect as manually typing the
mount command during the boot process.
A sample /etc/fstab line to mount an
NFS export looks like the following example:
<server>:</remote/export> </local/directory> <nfs-type> <options> 0 0
|
Replace <server> with the hostname, IP
address, or fully qualified domain name of the server exporting the
file system.
Replace </remote/export> with the path to
the exported directory.
Replace </local/directory> with the local
file system on which the exported directory is mounted. This mount
point must exist before /etc/fstab is
read or the mount fails.
Replace <nfs-type> with either nfs for NFSv2 or NFSv3 servers, or nfs4 for NFSv4 servers.
Replace <options> with a
comma separated list of options for the NFS file system (refer to
Section
9.4.3 Common NFS Mount Options for details). Refer to
the fstab man page for additional
information.
One drawback to using /etc/fstab is
that, regardless of how infrequently a user accesses the NFS
mounted file system, the system must dedicate resources to keep the
mounted file system in place. This is not a problem with one or two
mounts, but when the system is maintaining mounts to a dozen
systems at one time, overall system performance can suffer. An
alternative to /etc/fstab is to use the
kernel-based automount utility, which can
mount and unmount NFS file systems automatically, saving
resources.
The autofs service is used to control
the automount command through the
/etc/auto.master primary configuration
file. While automount can be specified on
the command line, it is more convenient to specify the mount
points, hostname, exported directory, and options in a set of files
rather than typing them manually.
The autofs configuration files are
arranged in a parent-child relationship. The main configuration
file (/etc/auto.master) lists mount
points on the system that are linked to a particular map type, which takes the form of other
configuration files, programs, NIS maps, and other less common
mount methods. The auto.master file
contains lines referring to each of these mount points, organized
in the following manner:
The <mount-point> element specifies the
location of the mount on the local file system. The <map-type>
specifies how the mount point is mounted. The most common method
for auto mounting NFS exports is to use a file as the map type for
the particular mount point. The map file is usually named
auto.<mount-point>, where <mount-point>
is the mount point designated in auto.master. A line within map files to mount an
NFS export looks like the following example:
</local/directory> -<options> <server>:</remote/export>
|
Replace </local/directory;> with the local
file system on which the exported directory is mounted. This mount
point must exist before the map file is read, else the mount
fails.
Replace <options> with a
comma separated list of options for the NFS file system (refer to
Section
9.4.3 Common NFS Mount Options for details). Be sure to
include the hyphen character (-)
immediately before the options list.
Replace <server> with the hostname, IP
address, or fully qualified domain name of the server exporting the
file system.
Replace </remote/export> with the path to
the exported directory.
Replace <options> with a
comma separated list of options for the NFS file system (refer to
Section
9.4.3 Common NFS Mount Options for details).
While autofs configuration files can be
used for a variety of mounts to many types of devices and file
systems, they are particularly useful in creating NFS mounts. For
example, some organizations store a user's /home/ directory on a central server via an NFS
share, then configure the auto.master
file on each of the workstations to point to an auto.home file containing the specifics for how to
mount the /home/ directory via NFS. This
allows the user to access personal data and configuration files in
their /home/ directory by logging in
anywhere on the network. The auto.master
file in this situation would look similar to this:
This sets up the /home/ mount point on
the local system to be configured by the /etc/auto.home file, which looks similar to the
example below:
* -fstype=nfs4,soft,intr,rsize=32768,wsize=32768,nosuid server.example.com:/home
|
This line states that any directory a user tries to access under
the local /home/ directory (due to the
asterisk character) should result in an NFS mount on the
server.example.com system on
the mount point /home/. The mount options
specify that each /home/ directory NFS
mounts should use a particular collection of settings. For more
information on mount options, including the ones used in this
example, refer to Section
9.4.3 Common NFS Mount Options.
For more information about the autofs
configuration files, refer to the auto.master man page.
Beyond mounting a file system via NFS on a remote host, other
options can be specified at the time of the mount to make it easier
to use. These options can be used with manual mount commands, /etc/fstab
settings, and autofs.
The following are options commonly used for NFS mounts:
-
fsid=num — Forces the file handle
and file attributes settings on the wire to be num, instead of a
number derived from the major and minor number of the block device
on the mounted file system. The value 0
has special meaning when used with NFSv4. NFSv4 has a concept of a
root of the overall exported file system. The export point exported
with fsid=0 is used as this root.
-
hard or soft
— Specifies whether the program using a file via an NFS
connection should stop and wait (hard) for
the server to come back online, if the host serving the exported
file system is unavailable, or if it should report an error
(soft).
If hard is specified, the user cannot
terminate the process waiting for the NFS communication to resume
unless the intr option is also
specified.
If soft is specified, the user can set
an additional timeo=<value> option, where <value>
specifies the number of seconds to pass before the error is
reported.
-
intr — Allows NFS requests to be
interrupted if the server goes down or cannot be reached.
-
nfsvers=2 or nfsvers=3 — Specifies which version of the NFS
protocol to use. This is useful for hosts that run multiple NFS
servers. If no version is specified, NFS uses the highest supported
version by the kernel and mount command.
This option is not supported with NFSv4 and should not be used.
-
noacl — Turns off all ACL
processing. This may be needed when interfacing with older versions
of Red Hat Enterprise Linux, Red Hat Linux, or Solaris, since the
most recent ACL technology is not compatible with older
systems.
-
nolock — Disables file locking.
This setting is occasionally required when connecting to older NFS
servers.
-
noexec — Prevents execution of
binaries on mounted file systems. This is useful if the system is
mounting a non-Linux file system via NFS containing incompatible
binaries.
-
nosuid — Disables
set-user-identifier or set-group-identifier bits. This prevents
remote users from gaining higher privileges by running a setuid
program.
-
port=num — Specifies the numeric
value of the NFS server port. If num is 0 (the
default), then mount queries the remote
host's portmapper for the port number to use. If the remote host's
NFS daemon is not registered with its portmapper, the standard NFS
port number of TCP 2049 is used instead.
-
rsize=num and wsize=num — These settings speed up NFS
communication for reads (rsize) and writes
(wsize) by setting a larger data block
size, in bytes, to be transferred at one time. Be careful when
changing these values; some older Linux kernels and network cards
do not work well with larger block sizes. For NFSv2 or NFSv3, the
default values for both parameters is set to 8192. For NFSv4, the
default values for both parameters is set to 32768.
-
sec=mode — Specifies the type of
security to utilize when authenticating an NFS connection.
sec=sys is the default setting, which
uses local UNIX UIDs and GIDs by means of AUTH_SYS to authenticate
NFS operations.
sec=krb5 uses Kerberos V5 instead of
local UNIX UIDs and GIDs to authenticate users.
sec=krb5i uses Kerberos V5 for user
authentication and performs integrity checking of NFS operations
using secure checksums to prevent data tampering.
sec=krb5p uses Kerberos V5 for user
authentication, integrity checking, and encrypts NFS traffic to
prevent traffic sniffing. This is the most secure setting, but it
also has the most performance overhead involved.
-
tcp — Specifies for the NFS mount
to use the TCP protocol.
-
udp — Specifies for the NFS mount
to use the UDP protocol.
Many more options are listed on the mount and nfs man
pages.