`
king_tt
  • 浏览: 2108250 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Ubuntu12.04下配置安装NFS图解

 
阅读更多

以前就听说过nfs服务,但是一直没有用,在学习制作根文件系统的时候,才算是真正用上它了,我感觉它还不错,通过它“挂载”制作好的根文件系统。它在嵌入式中的角色就用下面的一张图说明吧!

用网线将主机与开发板连接起来,主机开启nfs服务后,就可以像tftp一样传文件到开发板了,有的人会问,不如直接用tftp好了,但是nfs还可以挂载根文件系统啊!我等屌丝先这样比较吧(本文主要是记录安装使用步骤)!下面介绍安装步骤

1、执行命令:sudo apt-get install nfs-kernel-server 我之前安装了,之所以写下来是防止重装系统后,这些东西都怎么安装。


2、执行命令:mkdir /home/song/nfs 建立一个nfs服务的专有的文件夹,这里路径依自己喜好而定!不过要记得这个路径


3、建立好文件夹后,接着执行命令:sudo vim /etc/exports 配置nfs


4、在文章的最后一行添加:/home/song/nfs *(rw,sync,no_root_squash,no_subtree_check)


/home/song/nfs *(rw,sync,no_root_squash,no_subtree_check)这一行的含义是:

/home/song/nfs:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!

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

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

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

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

no_subtree_check:不检查父目录的权限。更多的参数说明我在文章下面贴出来了!

5、修改完上述配置文件保存退出。

6、执行命令:sudo /etc/init.d/portmap restart 重启portmap服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定。


7、执行命令:sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务。


8、到这里,你就可以使用nfs服务了。可是怎么用呢?我之前是将自己移植的uboot、内核下载到开发板上后,然后利用nfs服务在开发板上启动自己制作的根文件系统的,可是由于刚整理完内核移植,现在我的mini2440的开发板上还是他自带的supervivi、linux2.6.32.2内核和rootfs_qtopia_qt4.img根文件系统。并且接下来,我还会写一篇利用nfs启动自己制作的根文件系统的文章,在这里先用自带说一下怎么使用吧!那篇文章写完之后再把链接贴过来。

使用步骤(下面的步骤看看就行了哈,不用做实验的)

9、首先最重要的就是用网线将你的开发板和电脑相连!然后打开串口终端执行superviv中的 f 命令,格式化你的nand flash,这是为了确保nand flash里边没有根文件系统了。


你看,启动不起来了吧!界面一直停留在这里!


10、通过supervivi的 v命令和k命令,分别将supevivi和内核下载到nand flash的分区,下载过程是要结合这dnw的哈!(注意这里dnw的configuretion地址是0x3000 0000)

下载supervivi到nand flash对应的分区



下载内核到nand flash对应的分区



11、到这里,我不打算利用supervivi自带的y命令将根文件系统下载到nand flash了,现在正式开始介绍利用nfs挂载根文件系统。

12、将根文件系统放在咱们创建的文件里,如下图


13、在supevivi上输入q,进入supervivi的命令模式

14、在命令模式下,输入:param set linux_cmd_line "console=ttySAC0,115200n8 root=/dev/nfs nfsroot=211.64.20.161:/home/song/nfs/rootfs_qtopia_qt4 ip=211.64.20.167",按回车键


上图只需要修改的地方为 :nfsroot=你的主机IP:根文件系统路径 ip=你的开发板ip地址,注意开发板的ip地址只要和主机ip地址在一个网段内就可。

15、接着在命令行模式下输入:boot,按回车键就可以启动系统了!



下文转自:http://www.linuxidc.com/Linux/2012-05/61527.htm

NFS服务的主配置文件:
/etc/exports:
格式:[共享的目录] [主机名或IP(参数,参数)]
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
第一列:欲共享出去的目录,也就是想共享到网络中的文件系统;
第二列:可访问主机
192.168.152.13 指定IP地址的主机
nfsclient.test.com 指定域名的主机
192.168.1.0/24 指定网段中的所有主机
*.test.com 指定域下的所有主机
* 所有主机
第三列:共享参数
下面是一些NFS共享的常用参数:
下面是一些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
例如可以编辑/etc/exports为:
/tmp     *(rw,no_root_squash)
/home/public 192.168.0.*(rw)   *(ro)
/home/test  192.168.0.100(rw)
/home/linux  *.the9.com(rw,all_squash,anonuid=40,anongid=40)


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics