NFSv4 是 NFS 的一个新版本(对旧的NFSv3来说, see Nfs) with new features like strong authentication and integrity via Kerberos and SPKM-3, improved performance, safe file caching, lock migration, UTF-8, ACLs and better support for Windows file sharing semantics.
Note: currently pacman doesn't seem to handle replacing when invoked with pacman -U. Therefore, you'll need to remove nfs-utils before installing nfs4-utils (which is a complete drop-in replacement).
首先我们需要编辑文件 /etc/exports. 一个典型的 NFSv4 export 应该象这样：
/export 192.168.0.12(rw,fsid=0,no_subtree_check,async,no_root_squash) /export/music 192.168.0.12(rw,no_subtree_check,async,no_root_squash)
/export is the NFS root here (due to the fsid=0 entry). Everything else that you want to be shared over NFS must be accessible under /export.
For exporting directories outside the NFS root, see below.
Note: the no_root_squash option means that root on the client is also considered root on the server. This is of course a security risk. Remove it if you don't need it.
Exporting directories outside your NFS root
To do this, you'll need to use bind mounts. For example, to bind /home/john to /export/john:
mount --bind /home/john /export/john
Then, /export/john needs to be added to /etc/exports:
/export 192.168.0.12(rw,fsid=0,no_subtree_check,async,no_root_squash) /export/music 192.168.0.12(rw,no_subtree_check,async,no_root_squash) /export/john 192.168.12(rw,no_subtree_check,async,no_root_squash,nohide)
The nohide option is required, because the kernel NFS server automatically hides mounted directories. To add the bind mount to /etc/fstab:
/home/john /export/john none bind 0 0
Then, /etc/idmapd.conf needs to be edited. You'll need to at the very least specify your Domain there. Example:
[General] Verbosity = 1 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = archlinux.org [Mapping] Nobody-User = nobody Nobody-Group = nobody
Add the following lines to /etc/fstab:
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0 nfsd /proc/fs/nfsd nfsd rw,nodev,noexec,nosuid 0 0
Starting the server
To start the NFS server, just
/etc/rc.d/portmap start /etc/rc.d/nfs-common start /etc/rc.d/nfs-server start
If you want to tweak the configuration, feel free to edit /etc/conf.d/nfs-server.conf to your needs.