我系统为Ubuntu 8.10,现需要为嵌入式Linux开发搭建NFS环境。
1、NFS简介
所谓的NFS就是Network File System的缩写,最早之前是由Sun公司开发出来的。它最大的功能是可以透过网络,让不同的机器、不同的操作系统可以彼此分享各自的档案(share files),所以,可以简单地将它看作是一个file server。这个NFS Server可以让你的PC来将网络中远程的NFS主机分享的目录,挂载到本地端的机器当中,所以,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个partition一样。
2、安装配置NFS和Portmap服务
首先,Ubuntu默然没有安装NFS和portmap,所以我们需要从源中安装NFS以及portmap:
jimmy@jimmy-laptop:sudo apt-get install nfs-kernel-server portmap
安装完后,在/etc目录中就多了一个exports的文件,这个文件的作用是定义了那些文件夹需要在NFS中导出,以及这些文件夹的访问属性、使用权限等。我在~目录中新建了一个armnfs文件夹,整个路径为:
jimmy@jimmy-laptop:~/armnfs$ pwd
/home/jimmy/armnfs
用编辑器打开exports文件,在末尾添加如下导出命令:
/home/jimmy/armnfs *(rw,sync,no_root_squash)
rw表示该目录可读可写,sync表示读和写都要保持同步,no_root_squash表示登入到NFS主机的用户如果是root用户,他就拥有root的权限。这个参数很不安全,但是在开发的过程中却可以给我们带来极大的方便,所以这里我还是使用了这个参数。
保存文件后,需要重启portmap和nfs两个系统服务:
重启portmap服务
jimmy@jimmy-laptop:~/armnfs$ vim /etc/exports
jimmy@jimmy-laptop:~/armnfs$ sudo /etc/init.d/portmap restart
[sudo] password for jimmy:
* Stopping portmap daemon... [ OK ]
* Starting portmap daemon... [ OK ]
重启nfs服务
jimmy@jimmy-laptop:~/armnfs$ sudo /etc/init.d/nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon...
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/jimmy/armnfs".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
[ OK ]
* Starting NFS kernel daemon [ OK ]
3、嵌入式Linux上挂载NFS文件系统
由于嵌入式Linux的网卡一般初始化为固定IP地址,而我的主机使用DHCP自动获取IP地址,所以需要我的板子也自动获取IP地址。在PC串口终端上输入命令:
#dhclient eth0
这样,板子上的嵌入所Linux系统就自动获取IP地址,从而保证了板子上的系统和PC上的系统处于同一个网段中。
然后,在嵌入所Linux上新建一个文件夹,并挂载PC上的NFS文件夹:
#mkdir nfs
#mount -t nfs 219.216.101.50:/home/jimmy/armnfs /nfs
这样就挂载上去了。
阅读(937) | 评论(0) | 转发(0) |