网络文件系统(NFS)是一种通过网络将远程主机上的分区(目录)挂载到本地系统的机制。在网络文件系统NFS的支持下,用户可以像操作本地分区一样操作本地系统上远程主机的共享分区(目录)。
在嵌入式Linux的开发过程中,开发者需要在Linux服务器上开发所有的软件。常见的FTP方式是交叉编译后,将可执行文件下载到嵌入式系统中运行,但这种方式不仅效率低,而且无法实现在线调试。因此,通过建立NFS,可以将Linux服务器上的特定分区共享给要调试的嵌入式目标系统。可以在嵌入式目标系统上直接操作Linux服务器,同时可以在线调试和修改程序,大大方便了软件开发。因此,NFS是嵌入式Linux开发的重要组成部分。这一部分将详细说明如何配置嵌入式Linux的NFS开发环境。
嵌入式Linux NFS开发环境的实现包括两个方面:一是Linux服务器端的NFS服务器支持;二是嵌入式目标系统NFS客户端的支持。因此,NFS开发环境的建立需要配置Linux服务器和嵌入式目标系统。
NFS由Sun公司开发,用于通过网络在不同机器和不同操作系统之间共享文件。NFS服务器也可以看作是在类UNIX系统之间共享文件的文件服务器,它可以很容易地挂载到一个目录中,像本地文件一样容易操作。
Type: system V- started service
软件包:nfs-utils
进程:nfsd、lockd、rpciod、rpc .{已安装,rquotad,statd}
脚本:nfs,nfslock
端口:端口映射服务分配的端口(111)。
辅助工具:端口映射(必需)
相关命令:rpcinfo -p [IPADD]:查看服务器提供的rpc服务。
Showmount -e:查看服务共享的目录。
Computer network server:
目录选项
示例:将/share目录共享给192.168.0.x的用户
/share 192.168.0.0/24 (rw)
/home/haiouc/haioucshare *(rw,sync,all_squash)
/mnt/cdrom 192.168.0.*(ro)
===*表示允许所有ip访问;
给目录/home/hai ou c/hai ou share一定的权限;
您可以加载本地CD,并使用nfs与其他人共享。
2.启动端口映射服务:
service portmap start[restart]
3.启动NFS服务:
service nfs start[restart]
Client:
1.启动端口映射服务:
service portmap start[restart]
2.在服务器端挂载共享目录(假设服务器端是192.168.0.1):
mkdir /mnt/localshare
mount -t nfs 192.168.0.1:/share /mnt/localshare
=========================================================================
Showmount //显示有关NFS服务器文件系统装载的信息。
Showmount -e //显示NFS服务器的输出列表。
=========================================================================
chkconfig-level 35 nfson//设置NFS自动启动模式;
=========================================================================
通过修改/etc/fstab文件,可以在启动时自动挂载nfs目录。
[root@server6 nfs1]# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=//ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=SWAP-hdc2 swap swap defaults 0 0
192.168.1.10:/home/haiouc/haioucshare /mnt/nfs1 nfs defaults 0 0
=========================================================================
NFS参数信息:
访问选项。设置输出目录只读ro。将输出目录设为读写rw
用户映射选项。all_squash将远程访问的所有普通用户及其组映射到匿名用户或用户组(NFS nobody);no_all_squash是all_squash的逆(默认设置);root_squash将root用户及其组映射到匿名用户或用户组(默认设置);
. Rootless pumpkin and pumpkin root take the opposite;anonymous=XXX将所有远程访问的用户映射到匿名用户,并将该用户指定为本地用户(UID=XXX);anongid=xxx将所有远程访问的用户组映射到匿名用户组帐户,并将匿名用户组帐户指定为本地用户组帐户(GID=XXX);
其他选项。安全限制客户端只能从小于1024(默认设置)的tcp/ip端口连接到nfs服务器;不安全允许客户端从大于1024的tcp/ip端口连接到服务器;sync将数据同步写入内存缓冲区和磁盘,效率较低,但可以保证数据的一致性;async先将数据保存在内存缓冲区,必要时再写入磁盘;wdelay检查是否有相关的写操作,如果有,就一起执行这些写操作,这样可以提高效率(默认设置);如果有写操作会立即执行no_wdelay,应该和sync一起使用;子树如果输出目录是子目录,nfs服务器会检查其父目录的权限(默认设置);no _ subtree即使输出目录是子目录,nfs服务器也不检查其父目录的权限,可以提高效率;