Linux 下 NFS服务的搭建

   NFS是Network File System的简写,即网络文件系统。

   网络文件系统是许多操作系统都支持的文件系统中的一种,也被成为NFS。NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户可以像访问本地文件一样访问远端系统上的文件。

   NFS所提供的共享文件服务是建议在高度信任的基础上的,所以,向其他用户释放共享资源之前,一定要确保对方的可靠性。

   NFS的应用:在我们嵌入式开发过程中,NFS是一个重要环节,我们常常·把“根文件”系统放在主机上,然后在开发板启动的时候通过NFS来挂载主机上的根文件系统。这样省去了每次都要把文件系统烧写到存储设备上的步骤,可以说比tftp更方便。

下面我们将以Ubuntu为例,讲解一下NFS的配置过程:

Server: PC

CLient : ARM(这里博主是用同一台机器模拟的,主要是安装过程)

一、配置服务器端                                          

使用sudo apt-get install nfs-kernel-server命令,安装NFS服务器程序软件包。

fs@ubuntu:~$ sudo apt-get install nfs-kernel-server 
[sudo] password for fs: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
nfs-kernel-server is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 120 not upgraded.
fs@ubuntu:~$ 

博主这里以前安装好了NFS

二、配置NFS资源
       NFS允许挂载的目录和权限在文件/etc/exports 中记性了定义。配置NFS服务器的关键也就是配置这些文件。

fs@ubuntu:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#		to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home/fs/qiang  192.168.3.51(rw)
/home/fs/qiang  *(insecure,rw,async,root_squash)
fs@ubuntu:~$ 

其中/home/fs/qiang 是要共享的目录,这里必须用绝对路径;

* 代表允许所有的网络段访问;当然这里也可以/home/fs/qiang  192.168.3.51(rw)  设置允许访问的IP地址;

insecure:NFS通过1024以上的端口发送;

rw是可读可写权限;

async是NFS在写入数据前可以相应请求;

root_squash 是 root 用户具有根目录的完全管理访问权限;

当然,这里参数还有好多,大家可以查阅下资料;

 

三、手动启停NFS服务

1、启动NFS服务

fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  start
 * Exporting directories for NFS kernel daemon...                        exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.3.51:/home/fs/qiang".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/fs/qiang".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

                                                                  [ OK ]
 * Starting NFS kernel daemon                                     [ OK ] 
fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  start

2、停止NFS服务

fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  stop
 * Stopping NFS kernel daemon                                     [ OK ] 
 * Unexporting directories for NFS kernel daemon...               [ OK ] 
fs@ubuntu:~$ 

3、重新启动NFS服务

fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  restart
 * Stopping NFS kernel daemon                                     [ OK ] 
 * Unexporting directories for NFS kernel daemon...               [ OK ] 
 * Exporting directories for NFS kernel daemon...                        exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.3.51:/home/fs/qiang".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/fs/qiang".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

                                                                  [ OK ]
 * Starting NFS kernel daemon                                     [ OK ] 
fs@ubuntu:~$ 

4、查看NFS服务当前状态

fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  status
nfsd running
fs@ubuntu:~$ 


四、查看NFS服务器的共享资源

fs@ubuntu:~$ showmount -e 192.168.3.51
Export list for 192.168.3.51:
/home/fs/qiang (everyone)
fs@ubuntu:~$ 

 

五、挂载共享资源

这里应该在客户端那儿执行,使用mount命令

fs@ubuntu:~$ sudo mount -t nfs 192.168.3.51:/home/fs/qiang /mnt/nfs
fs@ubuntu:~$

-t 指类型,这里是NFS;

192.168.3.51是服务端的IP地址;

/home/fs/qiang 是服务端的共享目录;

/mnt/nfs是挂载点,是客户端的目录;

 当客户端使用mount命令讲NFS服务器上的到处文件系统挂载到本地后,接下来对挂载的文件系统的操作与使用本地文件系统没有任何区别。

 

六、卸载共享资源

fs@ubuntu:~$ sudo umount /mnt/nfs

需要说明的是,当有用户正在使用某个已加载的共享目录上的文件时,则不能卸载该文件系统,如果用户确认无误,可以使用“umount -f”命令强行卸载共享的目录。





 

你可能感兴趣的:(linux,nfs)