Linux 下 NFS服务的搭建

来源:互联网 发布:怎么用手机禁网络 编辑:程序博客网 时间:2024/06/04 19:13

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服务器程序软件包。

[cpp] view plain copy
  1. fs@ubuntu:~$ sudo apt-get install nfs-kernel-server   
  2. [sudo] password for fs:   
  3. Reading package lists... Done  
  4. Building dependency tree         
  5. Reading state information... Done  
  6. nfs-kernel-server is already the newest version.  
  7. 0 upgraded, 0 newly installed, 0 to remove and 120 not upgraded.  
  8. fs@ubuntu:~$   

博主这里以前安装好了NFS

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

[cpp] view plain copy
  1. fs@ubuntu:~$ cat /etc/exports  
  2. # /etc/exports: the access control list for filesystems which may be exported  
  3. #       to NFS clients.  See exports(5).  
  4. #  
  5. # Example for NFSv2 and NFSv3:  
  6. # /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)  
  7. #  
  8. # Example for NFSv4:  
  9. # /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)  
  10. # /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)  
  11. #  
  12. /home/fs/qiang  192.168.3.51(rw)  
  13. /home/fs/qiang  *(insecure,rw,async,root_squash)  
  14. 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服务

[cpp] view plain copy
  1. fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  start  
  2.  * 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".  
  3.   Assuming default behaviour ('no_subtree_check').  
  4.   NOTE: this default has changed since nfs-utils version 1.0.x  
  5.   
  6. exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/fs/qiang".  
  7.   Assuming default behaviour ('no_subtree_check').  
  8.   NOTE: this default has changed since nfs-utils version 1.0.x  
  9.   
  10.                                                                   [ OK ]  
  11.  * Starting NFS kernel daemon                                     [ OK ]   
  12. fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  start  

2、停止NFS服务

[cpp] view plain copy
  1. fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  stop  
  2.  * Stopping NFS kernel daemon                                     [ OK ]   
  3.  * Unexporting directories for NFS kernel daemon...               [ OK ]   
  4. fs@ubuntu:~$   

3、重新启动NFS服务

[cpp] view plain copy
  1. fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  restart  
  2.  * Stopping NFS kernel daemon                                     [ OK ]   
  3.  * Unexporting directories for NFS kernel daemon...               [ OK ]   
  4.  * 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".  
  5.   Assuming default behaviour ('no_subtree_check').  
  6.   NOTE: this default has changed since nfs-utils version 1.0.x  
  7.   
  8. exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/fs/qiang".  
  9.   Assuming default behaviour ('no_subtree_check').  
  10.   NOTE: this default has changed since nfs-utils version 1.0.x  
  11.   
  12.                                                                   [ OK ]  
  13.  * Starting NFS kernel daemon                                     [ OK ]   
  14. fs@ubuntu:~$   

4、查看NFS服务当前状态

[cpp] view plain copy
  1. fs@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server  status  
  2. nfsd running  
  3. fs@ubuntu:~$   


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

[cpp] view plain copy
  1. fs@ubuntu:~$ showmount -e 192.168.3.51  
  2. Export list for 192.168.3.51:  
  3. /home/fs/qiang (everyone)  
  4. fs@ubuntu:~$   

 

五、挂载共享资源

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

[cpp] view plain copy
  1. fs@ubuntu:~$ sudo mount -t nfs 192.168.3.51:/home/fs/qiang /mnt/nfs  
  2. fs@ubuntu:~$  

-t 指类型,这里是NFS;

192.168.3.51是服务端的IP地址;

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

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

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

 

六、卸载共享资源

[cpp] view plain copy
  1. fs@ubuntu:~$ sudo umount /mnt/nfs  

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

0 0
原创粉丝点击