NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

  环境:Win7_64位+VMware11+Ubuntu1204

  1,下载安装

    sudo apt-get install nfs-kernel-server

  2,创建目录

    sudo mkdir /source/rootfs

    注:nfs只是一种文件目录共享模式,可以是任意目录,建议使用专门目录。

  3,配置共享资源

    sudo vi /etc/exports    #打开配置文件

    格式:<ShareDir> <Host1(args)> <Host2(args)> ...

    解释:ShareDir共享目录,Hostn客户端主机标识,args该客户端访问权限

    示例:/srouce/rootfs *(rw,sync,no_root_squash,no_subtree_check)

          *:允许所有的网段访问,也可以使用具体的IP

         rw:挂接此目录的客户端对该共享目录具有读写权限

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

         no_root_squash:root用户具有对根目录的完全管理访问权限。

         no_subtree_check:不检查父目录的权限。

    附具体参数说明如下:

参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

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

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID   

  4,启动服务

    重启portmap服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定。

      sudo /etc/init.d/portmap restart     

      sudo /etc/init.d/nfs-kernel-server restart

    或者

      sudo service portmap restart

      sudo service nfs-kernel-server restart

  5,查看NFS服务器的共享资源

    在客户端可以使用showmount命令查看NFS服务器上都有哪些共享资源,如果使用该命令需要安装nfs-kernel-server软件包。

    格式:showmount -e <nfsIP>

    示例:showmount -e localhost

  6,将NFS共享目录挂载到本地

    sudo mkdir -p /mnt/nfs  #创建本地目录用于挂载,像操作本地目录一样操作共享目录

    sudo mount -t nfs <nfsIP>:/source/rootfs /mnt/nfs  #-t 指定文件系统

    在启动脚本/etc/rc.local中写入挂载命令可实现开机启动挂载

  7,卸载共享资源

    sudo unmount -f /mnt/nfs  #-f 强制卸载,不推荐使用-f参数

最新文章

  1. Only one statement is allowed per batch. A batch separator, such as &#39;GO&#39;, might be required between statements.
  2. 二、JavaScript语言--JS基础--JavaScript进阶篇--函数
  3. .net 调用Oracle.Data.Access 组件提供的用于批量操作的方法
  4. 如何制定AxureRP设计体系
  5. hdu3038(并查集)
  6. 老李秘技:loadrunner回放脚本错误提示Error: &quot;HTTP Status-Code 500&quot;
  7. Java自学手记——注解
  8. APUE 3 -- 信号 (signal)&lt;II&gt;: 可靠信号
  9. SQL Server 2016 快照代理过程分析
  10. PHP能引起安全的函数
  11. scrollify - 滚动条方式的全屏滚动
  12. linux_nginx_rewrite
  13. 使用Flume消费Kafka数据到HDFS
  14. Practical Node.js (2018版) 第10章:Getting Node.js Apps Production Ready
  15. jar各个版本号的意义
  16. Beta冲刺——day2
  17. Big Spatio temporal Data(R-tree Index and NN &amp; RNN &amp; Skyline)
  18. java 多线程7: (suspend方法与resume方法) 挂起与恢复
  19. JAVA练手--String
  20. JVM理解

热门文章

  1. 不常见偏门的Bug,Spring Boot IDEA 静态资源 图片访问404,初学者之殇
  2. iOS WKWebView 加载进度条、导航栏返回&amp;关闭 (Swift 4)
  3. nginx媒体类型
  4. 洛谷 P3400 仓鼠窝
  5. LCA UESTC 92 Journey
  6. Kruskal &amp;&amp; Prim模板
  7. Mysql数据类型简介(大概了解)
  8. 491 Increasing Subsequences 递增子序列
  9. spoj GCJ1C09C Bribe the Prisoners
  10. arttemplate模板引擎有假数据返回数据多层内嵌的渲染方法