Kernel
          Configuration
        
        
          Enable the following options in the kernel configuration (choose
          client and/or server support as appropriate) and recompile the
          kernel if necessary:
        
        File systems --->
  [*] Network File Systems --->                            [NETWORK_FILESYSTEMS]
    <*/M> NFS client support                                            [NFS_FS]
    <*/M> NFS server support                                              [NFSD]
        
          Select the appropriate sub-options that appear when the above
          options are selected.
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            In BLFS we assume that nfs v3 will be used. If the server offers nfs v4 (for linux,
            CONFIG_NFSD_V4) then auto-negotiation for v3 will fail and you
            will need to add nfsver=3 to the
            mount options. This also applies if that option is enabled in the
            client's kernel, for
            example in a distro trying to mount from a BLFS v3 server.
          
          
            Even if neither end of the connection supports nfs v4, adding
            nfsver=3 is still beneficial because
            it prevents an error message "NFS: bad mount option value
            specified: minorversion=1" being logged on every mount.
          
         
       
      
        
          Installation
          of NFS Utilities
        
        
          Install NFS Utilities by running
          the following commands:
        
        ./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --sbindir=/usr/sbin    \
            --disable-nfsv4        \
            --disable-gss          \
            LIBS="-lsqlite3 -levent_core" &&
make
        
          Now, as the root user:
        
        make install                       &&
chmod u+w,go+r /usr/sbin/mount.nfs &&
chown nobody:nogroup /var/lib/nfs
        
          The tests for this package require that the package be installed.
          In addition, the rpc.statd daemon must not be running and the tests
          need to be run as the root user.
        
        
          To test the results, issue, as root:
        
        make check
       
      
        
          Command Explanations
        
        
          --disable-gss: Disables
          support for RPCSEC GSS (RPC Security).
        
        
          LIBS="-lsqlite3
          -levent_core": is required for the fsidd program.
        
        
          chown nobody:nogroup
          /var/lib/nfs: The rpc.statd program uses the
          ownership of this directory to set it's UID and GID. This command
          sets those to unprivileged entries.
        
       
      
        
          Configuring NFS Utilities
        
        
          
            Server Configuration
          
          
            /etc/exports contains the exported
            directories on NFS servers. Refer to the exports.5 manual page for the syntax of this
            file. Also refer to the "NFS HowTo" available at https://nfs.sourceforge.net/nfs-howto/
            for information on how to configure the servers and clients in a
            secure manner. For example, for sharing the /home directory over the local network, the
            following line may be added:
          
          cat >> /etc/exports << EOF
/home 192.168.0.0/24(rw,subtree_check,anonuid=99,anongid=99)
EOF
          
            ![[Note]](../images/note.png) 
            
              Note
            
            
              Be sure to replace the directory, network address. and prefix
              above to match your network. The only space in the line above
              should be between the directory and the network address.
            
           
          
            
            
              Install the /etc/rc.d/init.d/nfs-server init
              script included in the blfs-bootscripts-20240416 package to
              start the server at boot.
            
            make install-nfs-server
            
              Now create the /etc/sysconfig/nfs-server configuration file:
            
            cat > /etc/sysconfig/nfs-server << "EOF"
PORT="2049"
PROCESSES="8"
KILLDELAY="10"
EOF
            
              ![[Note]](../images/note.png) 
              
                Note
              
              
                The above parameters may be optionally placed in /etc/sysconfig/rc.site.
              
             
           
         
        
          
            Client Configuration
          
          
            /etc/fstab contains the directories
            that are to be mounted on the client. Alternately the partitions
            can be mounted by using the mount command with the proper
            options. To mount the /home and
            /usr partitions, add the following
            to the /etc/fstab:
          
          <server-name>:/home  /home nfs   rw,_netdev 0 0
<server-name>:/usr   /usr  nfs   ro,_netdev 0 0
          
            The options which can be used are specified in man 5 nfs . If both the client
            and server are running recent versions of linux, most of the
            options will be negotiated (but see the Note above on nfsver=3).
            You can specify either rw or
            ro, _netdev if the filesystem is to be automatically
            mounted at boot, or noauto (and
            perhaps user) for other filesystems.
          
          
            If the fileserver is not running a recent version of linux, you
            may need to specify other options.
          
          
            
            
              ![[Note]](../images/note.png) 
              
                Note
              
              
                The following boot script is not
                required if the nfs-server script
                is installed.
              
             
            
              Install the /etc/rc.d/init.d/nfs-client init
              script included in the blfs-bootscripts-20240416 package to
              start the client services at boot.
            
            make install-nfs-client
            
              To automatically mount nfs
              filesystems, clients will also need to install the netfs bootscript as described in Configuring for Network
              Filesystems.
            
           
         
       
      
        
          Contents
        
        
          
            
              Installed Programs:
              exportfs, fsidd, mountstats, mount.nfs,
              mount.nfs4 (link to mount.nfs), nfsconf, nfsdclnts, nfsiostat,
              nfsstat, rpc.mountd, rpc.nfsd, rpc.statd, rpcdebug, showmount,
              sm-notify, start-statd, umount.nfs (link to mount.nfs), and
              umount.nfs4 (link to mount.nfs)
            
            
              Installed Libraries:
              None
            
            
              Installed Directories:
              /var/lib/nfs
            
           
         
        
          
            Short Descriptions
          
          
            
              
              
            
            
              
                | 
                    exportfs
                   | 
                    maintains a list of NFS exported file systems
                   | 
              
                | 
                    fsidd
                   | 
                    offers a local UNIX domain socket interface for all NFS
                    userspace to query the reexport database
                   | 
              
                | 
                    mountstats
                   | 
                    displays NFS client per-mount statistics
                   | 
              
                | 
                    mount.nfs
                   | 
                    is used to mount a network share using NFS
                   | 
              
                | 
                    mount.nfs4
                   | 
                    is used to mount a network share using NFSv4
                   | 
              
                | 
                    nfsconf
                   | 
                    can be used to test for and retrieve configuration
                    settings from a range of nfs-utils configuration files
                   | 
              
                | 
                    nfsdclnts
                   | 
                    prints information about NFS clients
                   | 
              
                | 
                    nfsiostat
                   | 
                    reports input/output statistics for network filesystems
                   | 
              
                | 
                    nfsstat
                   | 
                    displays statistics kept about NFS client and server
                    activity
                   | 
              
                | 
                    rpc.mountd
                   | 
                    implements the NFS mount protocol on an NFS server
                   | 
              
                | 
                    rpc.nfsd
                   | 
                    implements the user level part of the NFS service on the
                    server
                   | 
              
                | 
                    rpc.statd
                   | 
                    is used by the NFS file locking service. Run on both
                    sides, client as well as server, when you want file
                    locking enabled
                   | 
              
                | 
                    rpcdebug
                   | 
                    sets or clears the kernel's NFS client and server debug
                    flags
                   | 
              
                | 
                    showmount
                   | 
                    displays mount information for an NFS server
                   | 
              
                | 
                    sm-notify
                   | 
                    is used to send Network Status Monitor reboot messages
                   | 
              
                | 
                    start-statd
                   | 
                    is a script called by nfsmount when mounting a filesystem
                    with locking enabled, if statd does not appear to be
                    running. It can be customised with whatever flags are
                    appropriate for the site
                   | 
              
                | 
                    umount.nfs
                   | 
                    is used to unmount a network share using NFS
                   | 
              
                | 
                    umount.nfs4
                   | 
                    is used to unmount a network share using NFSv4
                   |