NFS-Utils-2.6.4

NFS Utilities の概要

NFS Utilities パッケージは、カーネルの NFS 機能を利用するために必要な、ユーザー空間のサーバーおよびクライアントツールを提供します。 NFS は、ネットワーク越しにファイルシステムを共有するためのプロトコルです。

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

NFS Utilities の依存パッケージ

必須

libtirpc-1.3.4, libevent-2.1.12, rpcsvc-proto-1.4.4, SQLite-3.44.2

任意

Cyrus SASL-2.1.28 (for SASL authentication), LVM2-2.03.23 (libdevmapper for NFSv4 support), libnsl-2.0.1 (for NIS client support), OpenLDAP-2.6.6 (for LDAP authentication), MIT Kerberos V5-1.21.2 or libgssapi , and librpcsecgss (for GSS and RPC security support), and libcap-2.69 with PAM

必須 (実行時)

rpcbind-1.2.6

カーネルの設定

カーネル設定として以下のオプションを (クライアント、サーバーのサポートを適宜選択し) 有効にしておくことが必要です。 もしこれを行っていない場合はカーネルを再コンパイルします。

File systems --->
  [*] Network File Systems --->                            [NETWORK_FILESYSTEMS]
    <*/M> NFS client support                                            [NFS_FS]
    <*/M> NFS server support                                              [NFSD]

上記のオプションを選択する際には、そこに現れるサブオプションについても適切なものを選択してください。

[注記]

注記

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.

NFS Utilities のインストール

以下のコマンドを実行して NFS Utilities をビルドします。

./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --sbindir=/usr/sbin    \
            --disable-nfsv4        \
            --disable-gss          \
            LIBS="-lsqlite3 -levent_core" &&
make

root ユーザーになって以下を実行します。

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

コマンド説明

--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
[注記]

注記

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.

Systemd Units

Install the NFSv4 server units included in the blfs-systemd-units-20231205 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.

Systemd Units
[注記]

注記

The following systemd units are not required if the nfs-server units are installed.

Install the units included in the blfs-systemd-units-20231205 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