配置nfs服务器用了好几天,本来是一个这么简单的东西却把自己搞得如此狼狈,特以写下配置过程,以大家共勉之:
网上有很多关于这个方面的文章,当然,这个可能要因人而异了,因为每个人的系统都不同,我的系统是Ubuntu7.10,和网上其他兄弟说的可能差不多,但是,事实上,这个配置过程确实也是差不多的,如果你按照我所说的步骤没有成功的话请你先看看nfs服务器的一些基本原理,或者把提示的错误拿到百度上找找,相对来说我还是建议初学者把nfs的基本原理看一下的,因为这样可能理解那些莫名其妙的错误更加容易点。
如果你以前没有装过nfs服务的话那么首先要下载几个包,在Ubuntu下面很简单,输入命令:
#apt-get install nfs-kernel-server
#apt-get install nfs-common
安装nfs-kernel-server的时候系统会自动下载另外一个包portmap
安装结束后,开始配置nfs,配置文件是/etc/exports,主要是设置服务器的共享目录以及权限的,
#sudo vim /etc/exports
在后面加上你的共享目录即可。我的配置文件如下:
lmz@lmz-desktop:~/arm9$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/arm9test 127.0.0.3(rw,sync,no_root_squash)
/arm9test 127.0.0.2(rw,sync,no_root_squash)
其中/arm9test表示服务器要共享的目录,把这个改成你要共享的目录就可以了,127.0.0.1和127.0.0.2都是服务器所允许访问的主机名,就是说你可以设置哪台主机可以访问你的共享目录,如果用一个“*”来代替这个ip地址的话就是允许所有的主机访问你的共享目录,后面的几个参数就不说了,大家可以参考鸟哥私房菜的那个解析。
设置好配置文件后,保存退出,执行
#sudo exportfs -r 更新exportfs
执行这个命令的时候可能会提示一些错误,如下:
lmz@lmz-desktop:~/arm9$ sudo exportfs -r
exportfs: /etc/exports [1]: Neither ‘subtree_check’ or ‘no_subtree_check’ specified for export “218.192.161.80:/arm9test”.
Assuming default behaviour (‘no_subtree_check’).
NOTE: this default has changed since nfs-utils version 1.0.x
exportfs: /etc/exports [2]: Neither ‘subtree_check’ or ‘no_subtree_check’ specified for export “218.192.161.65:/arm9test”.
Assuming default behaviour (‘no_subtree_check’).
NOTE: this default has changed since nfs-utils version 1.0.x
具体原因我也不清楚是为什么,待以后搞明白了再上来说清楚,要指出的是,这些问题并不影响后面的使用。
然后重启nfs服务,执行下面命令
#sudo /etc/init.d/portmap restart
#sudo /etc/init.d/nfs-kernel-server restart
成功启动后,执行
#showmount -e
查看NFS server的export list.
我的机器上的输出是:
lmz@lmz-desktop:~/arm9$ showmount -e
Export list for lmz-desktop:
/arm9test 127.0.0.3,127.0.0.2
至此,可以在自己的机子上测试一下nfs服务了,具体过程如下:
#mount serverip:/arm9test /mnt
其中serverip实际上就是服务器的ip,千万不要少了serverip后面的那个“:”哦,会出错的
如果挂载成功的话进到/mnt是可以看到/arm9test下面的文件的,如果出错的话就要查找一下原因了,最好去鸟哥那里看一下,因为上面讲得很清楚。
在自己电脑上测试通过以后就要把宿主机的共享目录挂载到目标板上了,这样调试程序非常方便,不用把程序传过去就可以直接调试了。挂载过程如下:
首先开机启动2410,进入linux,进入shell,配置板子的ip地址,
#ifconfig eth0 ipaddr
ipaddr就是上面所设置的允许访问共享目录的ip,在这里可以设为127.0.0.2,然后执行嗯命令:
#mount serverip:/arm9test /mnt/ext1
把serverip改为你自己的主机的ip就可以了,这个时候要确认你的主机的nfs服务已经启动,并且网线已经连接好,正常情况下等一下就可以完成挂载了