在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. php请求URL中的参数有空格

    url=http://www.123.com/abc.php?name=ku xiong ku xiong之间有一个空格,需要替换成%20或者+ url=http://www.123.com/abc. ...

  2. python基础——字符串和编码

    python基础——字符串和编码 字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用 ...

  3. 菜鸟学Linux命令:cat命令 查看文件内容

    cat命令的用途是连接文件或标准输入并打印. 这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. Linux下查看文件内容的方式很多:vi ...

  4. svn上想回滚代码怎么办?——svn merge 命令

    小博客断更了很久,最近想接着尝试建立写作的习惯,把自己工作生活遇到的有用知识沉淀下来.尽管微信公共账号比较火,但个人觉得这种不能用搜索引擎检索的东西完全就是历史的倒退,就像 RSS 这种提高信息传播效 ...

  5. 远程登录 - telnet、mstsc等工具的使用及遇到的问题

    刚开始是看到老师在用mstsc远程登录oj服务器桌面对“远程登录”一系列的方法开始感兴趣.下面是我的学习笔记及遇到的一些问题的整理. Mstsc - 百度百科:http://baike.baidu.c ...

  6. wp8 入门到精通 线程

    Dispatcher.BeginInvoke(() => MessageBox.Show(String.Format("A push notification {0} error oc ...

  7. SqlServer2000数据库字典--表结构.sql

    SELECT TOP 100 PERCENT --a.id,       CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名,       C ...

  8. kali实用链接

    1.Kali-linux安装之后的简单设置  :http://xiao106347.blog.163.com/blog/static/215992078201342410347137/ 2.kali文 ...

  9. win 8.1 安装framework3.5

    其实win8的iso上带着net 3.5的功能的,但是并没有随着系统安装二安装上去.所以只要你有跟你系统同个版本的iso文件,就可以实现不联网安装net3.5.首先把装载你的iso.Win8系统可以打 ...

  10. 克隆或拷贝的VMware虚拟机IP问题解决

    克隆的虚拟机或是将虚拟机通过快照回到过去某个状态后,会上不了网. 如果不想看细节,可直接跳到小结部分. 问题描述: 运行service network restart时 Device eth0 doe ...