NFS (简体中文)

From ArchWiki
Revision as of 02:42, 25 November 2012 by Fengchao (talk | contribs) (Clients: Update translation)
Jump to: navigation, search


附注: please use the first argument of the template to provide more detailed indications.


这篇文章的目标是让NFSv4 运行在Arch Linux.上
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.


服务器端和客户端都需要的软件包(from AUR):

  1. librpcsecgss
  2. nfs4-utils

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 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/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

ID mapping

Then, /etc/idmapd.conf needs to be edited. You'll need to at the very least specify your Domain there. Example:


Verbosity = 1
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain =


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.