在Linux 服务器上配置好NFS 根文件系统后,在单板侧挂载NFS 文件系统,具体操作
如下:
ifconfig eth0 hw ether 00:10:85:18:01:84 /*配置MAC地址*/
ifconfig eth0 10.85.180.184 netmask 255.255.254.0 /*配置IP地址和子网掩码*/
route add default gw 10.85.180.1 /*配置默认网关*/
mount -t nfs -o nolock 10.85.180.133:/home/c54122/glibc-nfs /mnt /*挂
载NFS目录至JFFS2文件系统的mnt目录下*/
 
参考文档:
http://www.cnblogs.com/hicjiajia/archive/2012/07/09/2583683.html
http://www.54xue.com/w/96/n-34196.html
http://blog.csdn.net/michaelyue526/article/details/7668008
1.安装NFS
     nfs原理是通过网络,将远程主机共享的文件系统,挂载到本机。Ubuntu 12.04上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
   #  sudo apt-get install nfs-kernel-server
(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap) 这样,宿主机就相当于NFS Server。

2   宿主机NFS的配置
   2.1  修改配置文件/etc/exports
          在终端下用 # vi  /etc/exports打开exports文件。
          如果你没有配置过这个文件的话此文件应该是空的。

      在开始部分写入 /opt/nfsroot * (rw,sync,no_root_squash)
      /opt/nfsroot/  -- 与客户机共享的目录;
     *        -- 表示允许任意用户使用,也可以使用具体IP;
    (rw,sync,no_root_squash)  -- rw,挂载此目录的客户机对此目录有读写权利;
    sync,……;
    no_root_squash,挂载此目录的客户机享有主机root的权利;
    我是将主机的根目录设置为共享目录  /  *(rw,sync,no_root_squash)
    OK,保存,退出。
    修改完成之后输入:#  exportfs –rv来使配置文件生效
  2.3   启动宿主机NFS服务
         安装完NFS服务后就可以通过 #  /etc/init.d/nfs-kernel-server restart(/etc/init.d/nfs-kernel-server                start)来重新开启网络文件系统服务,以便后面的开发板挂载。也可以通过#  /etc/init.d/nfs-kernel-server          stop来停止。

3   目标板的挂载操作
      目标机上电,目标板上的Linux操作系统起来以后,在PC机上Ubuntu操作系统上打开minicom,通过串口向目       标板发送shell命令。
      像主机操作一样,首先检查目标板(宿主机)的IP是否与宿主机的IP再同一个地址段上,否则用上面用过的命令         进行检查和设置本地IP。
     设置完IP之后可以ping一下检查网卡、网线是否连接正确。
     既在minicom中输入# ping 192.168.1.101 (宿主机IP地址)连接成功会不断的打印信息。
     接下来就是在开发板上进行挂载mount
    # mount  -onolock 192.168.1.101:/opt/nfsroot    /mnt 
    其中:/opt/nfsroot 是 宿主机的共享目录;  /mnt是开发板的挂载目录
    如果你想取消挂在可以使用命令# umount  /mnt就可以了

其它nfs常用的参数有:

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_squas 
root用户具有根目录的完全管理访问权限 
anonuid=xxx 
指定nfs服务器/etc/passwd文件中匿名用户的UID 
anongid=xxx 
指定nfs服务器/etc/passwd文件中匿名用户的GID

3、重启服务 
$sudo /etc/init.d/portmap restart 
$sudo /etc/init.d/nfs-kernel-server restart

4、测试nfs 
此时可以运行以下命令来显示一下共享出来的目录: 
$showmount -e

关于NFS配置错误

 

ubuntu测试本机nfs出错:mount.nfs:access denied by server while mounting...

相信出现这种错误的应该有一些人吧,没关系,一会就帮你搞定。 
首先运行:sudo vim /etc/exports 
在其文本后添加 
/home/work 192.168.1.*(rw,sync,no_root_squash) 
然后保存退出。

注意,上面的主机IP可能不能使用*来通配,否则在客户机上会出现访问拒绝,但是如果我们要设置局域网访问呢?怎么办,使用子网掩码例如:10.1.60.0/255.255.254.0即可让10.1.60.*和10.1.61.*都可以访问,还可以使用10.1.60/23这种方式类确定子网。

上面设置了只要在192.168.1.*这个网段的所有IP地址用户都可以访问共享目录,但我只想让一个IP地址访问,比如 192.168.1.101(把刚才192.168.1.*直接换成192.168.1.101不行么?应该可以吧,没试过),那么就可以这样设置了。 
可以通过设定/etc/hosts.deny和/etc/hosts.allow文件来限制网络服务的存取权限。 
***/etc/hosts.deny*** 
portmap:ALL 
lockd:ALL 
mountd:ALL 
rquotad:ALL 
statd:ALL 
***/etc/hosts.allow*** 
portmap:192.168.1.101 
lockd:192.168.1.101 
mountd:192.168.1.101 
rquotad:192.168.1.101 
statd:192.168.1.101 
同时使用这两个文件就会使得只有ip为192.168.1.101的机器使用NFS服务。你的target 
board的ip地址设定为192.168.1.101,这样就可以了。
 
 
启用新的配置

  exportfs 指令主要的三个作用:

  1. exportfs -rv 重新读取共享配置文件,马上生效

  2. exportfs -auv 马上停止所有本机上的NFS共享,并不改变 /etc/exports 文件的内容,只是当前停止共享

  3. exportfs -av 显示所有当前机器上的NFS共享目录信息

我的/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/yingc/work *(rw,async,no_root_squash)

/home/yingc/work/durian/solution/output *(rw,async,no_root_squash)
/home/yingc/work/durian1/solution/output *(rw,async,no_root_squash)
/home/yingc/work/durian/buildroot/package/netscript/sbin1 *(rw,async,no_root_squash)
#

 
开发板中自启动脚本挂载文件:
############################################################                    
# mount host dir                                                                
############################################################                    
mount -t nfs -o rw,nolock,udp 192.168.110.10:/home/yingc/work/durian/solution/ob
                                                                                
mount -t nfs -o rw,nolock,udp 192.168.110.10:/home/yingc/work/durian/buildroot/t
     
 
ubuntu14.10的相关配置:
yingc@yingc:~$ sudo apt-get install portmap
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
注意,选取 rpcbind 而非 portmap
sudo apt-get install nfs-kernel-server
sudo vim /etc/exports 添加:
/opt/nfs *(rw,sync,all_squash,no_subtree_check)
注意:使用上面这个,碰到了权限问题,开发板上不能创建文件等,
但是在pc的对应目录上可以直接创建(不需要sudo权限)
此时可以使用:
/opt/nfs *(rw,async,no_root_squash) 再restart即可:
sudo /etc/init.d/nfs-kernel-server restart

Ubuntu 12.04 LTS 及ubuntu14.10 -- NFS安装的更多相关文章

  1. ubuntu 12.04 LTS(64位)安装apache2

    在网上找了很多文章,说法不一,不知道应该用哪种方法,后来想就用其中最简单的吧,装不好再卸了重装, 然后就...装上了,用的是tar包源码安装,下面是步骤 1.去官网下载apache2.2.25源码包, ...

  2. 如何让Ubuntu 12.04 LTS更炫更具吸引力

    Ubuntu 12.04 LTS震撼发布   适逢七周岁生日之际,Ubuntu正式推出了第四个LTS长期支持版本,开发代号Precise Pangolin的Ubuntu 12.04在2012年4月26 ...

  3. Installing OpenCV 2.4.10 in Ubuntu 12.04 LTS

    转自 http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/ EDIT: I published a ...

  4. (转)Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

    本文的英文版本链接是 http://www.mrxuri.com/index.php/2013/11/20/install-mysql-cluster-on-ubuntu-12-04-lts.html ...

  5. Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

    本文的英文版本链接是 http://xuri.me/2013/11/20/install-mysql-cluster-on-ubuntu-12-04-lts.html MySQL Cluster 是 ...

  6. Ubuntu 12.04 LTS(64 bit) + RTL8188CU无线网卡驱动

    . . . . . 之前家里台式机上安装的是win7+CentOS双系统,但是CentOs的无线网卡驱动不知为何无论如何都安装不上,再加上这段时间一直很忙,所以一直使用着win.这几天事情忙得差不多了 ...

  7. Lamp(Ubuntu 12.04 LTS) 之 htaccess的使用

    环境说明:Ubuntu 12.04 LTS Lamp (以apt方式分别安装) 一.明确目标:要确保.htaccess文件起作用,只需要三个重要点: 1.开启apache rewrite模块: (1) ...

  8. MOUNT MACBOOK DISK (OSX / HFS+) ON UBUNTU 12.04 LTS WITH READ/WRITE

    MOUNT MACBOOK DISK (OSX / HFS+) ON UBUNTU 12.04 LTS WITH READ/WRITE So you want to mount your HFS+ ( ...

  9. 【转】ubuntu 12.04 LTS将关闭最大化最小化移动到右上角

    原文网址:http://www.4byte.cn/learning/114801.html ubuntu 12.04 LTS将关闭最大化最小化移动到右上角   还是按下“ALT +F2”组合键,输入g ...

随机推荐

  1. sublime text3083 破解 插件汉化

      sublime text  注册码 1. Sublime Text 2.x 版本 —– BEGIN LICENSE —– Andrew Weber Single User License EA7E ...

  2. HTML标签自定义属性(转)

    HTML标签可以自定义属性 HTML标签可以自定义属性,但是我们要考虑其在IE.Firefox以及chrome下的兼容性问题.例如: <div id="newTest" my ...

  3. delete 类对象指针的注意事项]

    http://blog.csdn.net/infoworld/article/details/45560219 场景:1. C++类有构造和析构函数,析构函数是在类对象被delete时(或局部变量自动 ...

  4. 关于struts 2中的日期问题

    struts 2中引入了大量的jquery的内容 其中日期问题总结一下: 步骤: 1.当然不用说,先建一个web项目 2.导入struts2所需要的jar包,以及此插件的包(当然你也可以用:strut ...

  5. SecureCRT乱码

    http://jingyan.baidu.com/article/948f59245be128d80ff5f9aa.html

  6. js 抽奖转盘实现

    今天用js实现转盘抽奖功能,从后台返回的值可以固定转盘选择停止的任意位置 实现代码如下: js: <script> , i = ;//auto:时间对象 count:计数器 ,i : 计数 ...

  7. keytool生成证书与Tomcat SSL配置

    转自:http://tomhat.iteye.com/blog/2087673 一.Keytool介绍 Keytool是一个Java数据证书的管理工具.Keytool将密钥(key)和证书(certi ...

  8. 那些年不错的Android开源项目

    那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...

  9. Effective C++笔记:构造/析构/赋值运算

    条款05:了解C++默默编写并调用哪些函数 默认构造函数.拷贝构造函数.拷贝赋值函数.析构函数构成了一个类的脊梁,只有良好的处理这些函数的定义才能保证类的设计良好性. 当我们没有人为的定义上面的几个函 ...

  10. 导入/导出Excel

    --从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*============================================================ ...