#sudo apt-get install nfs-kernel-server
-------------------------------------------
打开/etc/exports文件,在末尾加入:

/home/xgc *(rw,sync,no_root_squash)

注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:

/home/xgc:要共享的目录

* :允许所有的网段访问

rw :读写权限

sync:资料同步写入内在和硬盘

no_root_squash:nfs客户端共享目录使用者权限

重启服务:
#sudo service portmap restart
#sudo service nfs-kernel-server restart
#showmount -e

现在可以在本机上试一下:

#sudo mount -t nfs localhost:/home/xgc /mnt

#sudo umount /mnt

如果用在嵌入式设备上挂载,要加上参数-o nolock


另外,要注意的是,由于NFS要依靠portmap服务才能通讯的,www.linuxidc.com而由于Ubuntu10.10中默认好像是没有安装打开portmap服务的,所以,如果客户机要连到这台NFS Server上的话,最好在客户机上也安装一下服务,同时启动一下protmap。
-----------
附注,在网上下来的NFS资料 
-----------
Nfs服务器的配置,配置文件/etc/exports:

Exports文件中一些选项的含义

选项                            说明

Ro                        该主机对该共享目录有只读权限

Rw                       该主机对该共享目录有读写权限

Root_squash          客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

No_root_squash     客户机用root访问该共享文件夹时,不映射root用户

All_squash             客户机上的任何用户访问该共享目录时都映射成匿名用户

Anonuid                将客户机上的用户映射成指定的本地用户ID的用户

Anongid                将客户机上的用户映射成属于指定的本地用户组ID

Sync                     资料同步写入到内存与硬盘中

Async                   资料会先暂存于内存中,而非直接写入硬盘

Insecure                允许从这台机器过来的非授权访问

例/  zhang (rw) wang (rw,no_root_squash)   表示共享服务器上的根目录(/)只有zhang和wang两台主机可以访问,且有读写权限;zhang主机用root用户身份访问时,将客户机的root用户映射成服务器上的匿名用户(root_squash,该参数为缺省参数),相当于在服务器使用nobody用户访问目录;wang主机用root用户身份访问该共享目录时,不映射root用户(no_root_squash),即相当于在服务器上用root身份访问该目录

/root/share/  192.168.1.20 (rw,insecure,sync,all_squash)  表示共享服务器上的/root/share/目录只有192.168.1.20主机可以访问,且有读写权限;此主机用任何身份访问时,将客户机的用户都映射成服务器上的匿名用户(all_squash),相当于在服务器上用nobody用户访问该目录(若客户机要在该共享目录上保存文件(即写操作),则服务器上的nobody用户对该目录必须有写的权限)

/home/ljm/  *.gdfs.edu.cn (rw,insecure,sync,all_squash)   表示共享/home/ljm/目录,*.gdfs.edu.cn域中所有的主机都可以访问该目录,且有读写权限

/home/share/  .gdfs.edu.cn (ro,sync,all_squash,anonuid=student,anongid=math)     表示共享目录/home/share/,*.gdfs.edu.cn域中的所有主机都可以访问,但只有只读的权限,所有用户都映射成服务器上的uid为student、gid为math的用户

启动nfs后又修改了/etc/exports,不用重启该服务,使用exports命令即可:

Exports [-aruv]

-a    全部mount或umount文件/etc/exports中的内容

-r     重新mount文件/etc/exports中的共享内容

-u   umount目录

-v    在export的时候,将详细的信息输出到屏幕上

例[root@localhost ~]#exports –rv        全部重新export一次

  [root@localhost ~]#exports –au              全部卸载

Nfs客户端的配置:

若是临时使用可直接执行mount命令:mount servername(or IP): 共享目录 本地挂载目录

若客户机启动就自动挂载服务器的共享目录,则需修改客户机上的/etc/fstab文件

/etc/fstab格式:(192.168.233.139:/share  /mnt    nfs      defaults        0       2)

                  Fs_spec                    fs_file  fs_type     fs_options   fs_dump  fs_pass

Fs_spec:定义希望加载的文件系统所在的设备或远程文件系统,对于nfs则设为IP:/共享目录

Fs_file:本地挂载点

Fs_type:挂载类型

Fs_options:挂载参数

Fs_dump:该选项被“dump”命令使用来检查一个文件系统该以多快频率进行转储,若不需转储即为0

Fs_pass:该字段被fsck命令使用来决定在启动时需要被扫描的文件系统的顺序,根文件系统“/” 对应该字段值为1,其他文件系统为2,若该文件系统无需在启动时被扫描则为0

安全提醒:确保网络安全,使用nfs时结合tcp_wrappers来限制使用范围(如只想192.168.5.123主机可挂载nfs服务器上的共享目录),另外还可结合iptables来加强安全性。

[root@localhost ~]#vi /etc/hosts.allow

Portmap:192.168.5.123:allow

[root@localhost ~]#vi /etc/hosts.deny

Portmap:ALL:deny

关机时若nfs server上有client联机时,先关掉portmap与nfs两个系统服务。若无法正确将此2项服务关掉,用netstat –utlp找出PID,然后用kill杀掉进程才关机

Nfsstat查看NFS的运行状态,调整NFS运行大有帮助

Rpcinfo查看rpc执行信息,用于检测rpc运行情况

挂载格式:mount –t nfs hostname(or IP):/directory  /mount point

卸载:umount  /本地挂载目录(本地client卸载方法,但用exports –au为server卸载)

Showmount –e IP(查看NFS服务器上共享了那些目录)
Showmount –a IP(用于nfs server上,显示已经mount上本机NFS服务器的client(客户机))