Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10348
  • 博文数量: 8
  • 博客积分: 440
  • 博客等级: 下士
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-03 10:39
文章存档

2010年(8)

我的朋友
最近访客

分类: LINUX

2010-11-11 03:01:38

    网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作.
    在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试.因此,可以通过建立NFS,把Linux 服务器上的特定分区共享到待调试的嵌入式目标系统上,就可以直接在嵌入式目标系统上操作Linux 服务器,同时可以在线对程序进行调试和修改,大大的方便了软件的开发.因此,NFS 的是嵌入式Linux 开发的一个重要的组成部分,本部分内容将详细说明如何配置嵌入式Linux 的NFS 开发环境.
    嵌入式Linux NFS 开发环境的实现包括两个方面:一是Linux 服务器端的NFS 服务器支持;二是嵌入式目标系统的NFS 客户端的支持.因此,NFS 开发环境的建立需要配置linux 服务器端和嵌入式目标系统端.
 
Linux NFS服务器端的配置

以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等.
执行如下命令编辑文件/etc/exports:
# vi /etc/exports
在该文件里添加如下内容:
/source/rootfs/ 172.16.29.128"(rw,sync,no_root_squash)"
然后保存退出.
其中,exports文件的内容表示:
/source/rootfs/ 是服务器输出共享目录,也就是服务器内被共享的目录,一般是自己设定。
ip 地址172.16.29.128是具有访问权限的计算机ip(范围),为了测试方便,这里选取了主机的局域网ip,这个ip可以通过命令ifconfig eth0来获取,以下是本人机器上执行这一命令的情况,必须要注意的是,这个ip地址不能通过windows下面的dos终端的ipconfig -all命令来获取,必须通过虚拟机下执行命令ifconfig eth0来获取,否则,在后面的进行NFS挂载的时候是不会成功的。
[root@localhost ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:BC:59:E5 
          inet addr:172.16.29.128  Bcast:172.16.29.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:febc:59e5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1619 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1082 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1690819 (1.6 MiB)  TX bytes:68399 (66.7 KiB)
          Interrupt:67 Base address:0x2024
[root@localhost ~]#
当然,如果是为了
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘.
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限.
为了检查export文件中的内容是否有语法错误,可以使用source命令来进行测试,一般来说,成功的测试会提示/source/rootfs/只是一个目录而并不会提示这个文件有什么语法错误。
[root@localhost ~]# source /etc/exports
bash: /source/rootfs/: is a directory
[root@localhost ~]#
另外,对于括号的内容必须在括号以外用双引号引起来。
 
接下来,必须把防火墙给停掉,可以使用命令serviceconf来进行可视化操作,也可以使用命令直接禁止,这里选择使用命令直接关闭防火墙服务。命令如下:
[root@localhost ~]# service iptables stop
[root@localhost ~]# service iptables status
防火墙已停
[root@localhost ~]#
 
然后通过以下命令启动端口映射。
[root@localhost ~]# /etc/init.d/portmap restart
[root@localhost ~]# /etc/init.d/portmap status
portmap (pid 5661) 正在运     
当然,也可以使用命令#service portmap start或者是#service portmap restar来完成这一操作。
接着启动nfs服务:
[root@localhost ~]# /etc/init.d/nfs restart
关闭 NFS mountd:                                          [确定]
关闭 NFS 守护进程:                                         [确定]
关闭 NFS quotas:                                          [确定]
关闭 NFS 服务:                                             [确定]
启动 NFS 服务:                                             [确定]
关掉 NFS 配额:                                             [确定]
启动 NFS 守护进程:                                         [确定]
启动 NFS mountd:                                          [确定]
[root@localhost ~]# /etc/init.d/nfs status
rpc.mountd (pid 5872) 正在运行
[root@localhost ~]#
同样,也可以使用命令#service nfs start或者是#service nfs restar来完成这一操作。
首先我们在Linux服务器端进行NFS服务器的会换测试,验证共享目录是否能在相应的访问权限下被访问。
在终端输入如下命令进行目录挂载,进行回环测试。
[root@localhost ~]# ls /source/rootfs/
test  test1  test2
[root@localhost ~]# ls /mountObj/
[root@localhost ~]#
[root@localhost ~]# mount -t nfs  172.16.29.128:/source/rootfs/ /mountObj/
[root@localhost ~]# ls /mountObj/
test  test1  test2
[root@localhost ~]#
自此,完成了Linux NFS 配置的服务器端的回环测试,如果测试成功,便可下面进行客户端的配置。
 
PS:在这里很是感谢涛哥师傅在11月7号下午为我一起折腾了一个下午,因为平台的差异,搞到查找解决问题的方法都变得有点飘忽了,呵呵。。此外,N多东西不懂,没头没脑的,还期待多多指导呀!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
阅读(400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~