Introduction to NFS Utilities
        
        
          The NFS Utilities package contains
          the userspace server and client tools necessary to use the kernel's
          NFS abilities. NFS is a protocol that allows sharing file systems
          over the network.
        
        
          This package is known to build and work properly using an LFS 12.4
          platform.
        
        
          Package Information
        
        
        
          NFS Utilities Dependencies
        
        
          Required
        
        
          libevent-2.1.12, libnl-3.11.0, libtirpc-1.3.6,
          libxml2-2.14.5, rpcsvc-proto-1.4.4, and SQLite-3.50.4
        
        
          Optional
        
        
          Cyrus SASL-2.1.28 (for SASL
          authentication), libnsl-2.0.1 (for NIS client support), LVM2-2.03.34 (libdevmapper for NFSv4 support),
          OpenLDAP-2.6.10 (for LDAP authentication),
          MIT Kerberos V5-1.22.1 or libgssapi,
          and librpcsecgss
          (for GSS and RPC security support), and libcap-2.76
          with PAM
        
        
          Required (runtime)
        
        
          rpcbind-1.2.8
        
       
      
        
          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
          GSSAPI support in this package. If you need to use it, make sure
          that MIT Kerberos V5-1.22.1 is installed,
          and that you have GSSAPI support enabled in libtirpc-1.3.6 as well.
        
        
          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 NFSv4 server units
              included in the blfs-systemd-units-20241211 package to
              start the server at boot.
            
            make install-nfsv4-server
            
              If you have disabled NFSv4 support, run the following command
              as the root user to omit the
              NFSv4 specific systemd units:
            
            make install-nfs-server
            
              You can edit the /etc/default/nfs-utils file to change the
              startup options for NFS daemons. Defaults should be fine for
              most use cases.
            
           
         
        
          
            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.
          
          
            You may need to enable autofs v4 in your kernel, and add the
            option comment=systemd.automount.
            Some machines may need this because systemd tries to mount the
            external filesystems before the network is up. An alternative is
            to run mount -a as
            the root user after the system
            has started.
          
          
            
            
              ![[Note]](../images/note.png) 
              
                Note
              
              
                The following systemd units are
                not required if the nfs-server units
                are installed.
              
             
            
              Install the units included in the
              blfs-systemd-units-20241211
              package to start the client services at boot.
            
            make install-nfs-client
           
         
       
      
        
          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
                   |