Linux下NFS服务器的配置
网络文件系统(NFS,NetworkFileSystem)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。
在嵌入式Linux的开发过程中,开发者需要在Linux服务器上进行所有的软件开发,交叉编译后,通用FTP方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试。因此,可以通过建立NFS,把Linux服务器上的特定分区共享到待调试的嵌入式目标系统上,就可以直接在嵌入式目标系统上操作Linux服务器,同时可以在线对程序进行调试和修改,大大的方便了软件的开发。因此,NFS的是嵌入式Linux开发的一个重要的组成部分,本部分内容将详细说明如何配置嵌入式Linux的NFS开发环境。
嵌入式Linux的NFS开发环境的实现包括两个方面:一是Linux服务器端的NFS服务器支持;二是嵌入式目标系统的NFS客户端的支持。因此,NFS开发环境的建立需要配置Linux服务器端和嵌入式目标系统端。
NFS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFSserver也可以看作是一个FILESERVER,用于在UNIX类系统之间共享文件,可以轻松的挂载(mount)到一个目录上,操作起来就像本地文件一样的方便。=========================================================================
类型:SystemV-launchedService
软件包:nfs-utils
进程:nfsd,lockd,rpciod,rpc.{mounted,rquotad,statd}
脚本:nfs,nfslock
端口:由portmap服务指派端口(111)
配置文件:/etc/exports
辅助工具:portmap(必须)
相关命令:rpcinfo-p[IPADD]:查看服务器提供的rpc服务
showmount-e:查看服务共享的目录
Server端:
1./etc/exports格式:
目录选项
例:共享/share目录给192.168.0.x的用户
/share192.168.0.0/24(rw)
/home/haiouc/haioucshare*(rw,sync,all_squash)
/mnt/cdrom192.168.0.*(ro)
====>*指的是允许所有的ip访问;
对目录/home/haiouc/haioucshare要给出一定的权限;
可以加载本地的光盘,然后用nfs共享给他人
2.启动portmap服务:
serviceportmapstart[restart]
3.启动NFS服务:
servicenfsstart[restart]
Client端:
1.启动portmap服务:
serviceportmapstart[restart]
2.挂载服务器端的共享目录(假设服务器端192.168.0.1):
mkdir/mnt/localshare
mount-tnfs192.168.0.1:/share/mnt/localshare
=========================================================================
showmount//显示关于NFS服务器文件系统挂载的信息
showmount-e//显示NFS服务器的输出清单
=========================================================================
chkconfig--level35nfson//设置NFS自动启动方式;
=========================================================================
通过修改/etc/fstab文件可以实现开机自动挂载nfs目录
[root@server6nfs1]#cat/etc/fstab
#Thisfileiseditedbyfstab-sync-see'manfstab-sync'fordetails
LABEL=//ext3defaults11
none/dev/ptsdevptsgid=5,mode=62000
none/dev/shmtmpfsdefaults00
none/procprocdefaults00
none/syssysfsdefaults00
LABEL=SWAP-hdc2swapswapdefaults00
192.168.1.10:/home/haiouc/haioucshare/mnt/nfs1nfsdefaults00
=========================================================================
NFS参数信息:
访问权限选项
•设置输出目录只读ro
•设置输出目录读写rw
用户映射选项
•all_squash将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
•no_all_squash与all_squash取反(默认设置);
•root_squash将root用户及所属组都映射为匿名用户或用户组(默认设置);
•no_root_squash与rootsquash取反;
•anonuid=xxx将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
•anongid=xxx将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
•secure限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
•insecure允许客户端从大于1024的tcp/ip端口连接服务器;
•sync将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
•async将数据先保存在内存缓冲区中,必要时才写入磁盘;
•wdelay检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
•no_wdelay若有写操作则立即执行,应与sync配合使用;
•subtree若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
•no_subtree即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
=========================================================================
=====>在配置中再遇到其他的问题,请百度一下!