不需路由器、交换机搭建NFS服务
申明:本博文绝对原创,请转载本博文注明出处:http://blog.csdn.net/fly928sky/article/details/7723993
在学习ARM嵌入式Linux开发的时候,需要搭建NFS服务来读写一些Linux下的文件的。其实搭建NFS是件很简单的事情,但是有很多新手一只为这个问题所烦扰,我在这里向大家介绍一种既快捷又方便的方法。
准备条件:
1.一台笔记本或一台台式机(至少有一块空余的网卡),系统为Windows
2.笔记本(台式机)自带串口,或者使用USB转串口线
3.开发板一块(包含一根串口线)
4.网线一根
步骤:
1.在你的电脑上面安装VMware,然后在VMware中安装你在开发时需要使用的Linux系统。并且要配置好NFS服务。
NFS的配置如下:
[root@localhost ~]# cat /etc/exports
/home/FriendlyARM 172.16.10.*(rw,sync,no_root_squash)
2.将网线一头连接到开发板上,另一头连接到你电脑的那个空余网卡的接口上。
3.配置你电脑的那个空余网卡的IP地址,配置IP地址为172.16.10.254(也可以配置成其他的内网IP地址,例如192.168.1.1,但是要注意不要和你电脑上的其他网卡的IP地址处于同一网段,那样可能会造成冲突),子网掩码为255.255.255.0,网关为空。
如果你想那块空余网卡也连接到Internet上(前提是你有一块其他的网卡已经连接到Internet上了),那么请把连接到Internet上的那块网卡共享给那块空余网卡,一般共享后系统会自动分配一个IP地址(192.168.0.1)。务必不要自行修改。
此网卡的设置,其实是后来开发板或VMware中Linux的网关。具体怎么操作,我就不累述了。
4.启动开发板和VMware中Linux(在开发板启动之前先连接好开发板和你电脑之间的串口线,以方便你用串口配置你开发板网卡的IP地址),并配置他们的IP地址,开发板网卡IP、VMware中Linux的IP和前面配置的空余网卡IP要属于同一网段,IP地址千万不要冲突,子网掩码为255.255.255.0,网关填写前面配置的空余网卡IP地址。配置完后一定要重启网卡。
Linux环境下的IP地址配置命令为:
[root@localhost ~]#ifconfig eth0 172.16.10.101 netmask 255.255.255.0 gw 172.16.10.254
[root@localhost ~]#echo GATEWAY=172.16.10.254 >> /etc/sysconfig/network
[root@localhost ~]#ifconfig eth0 down
[root@localhost ~]#ifconfig eth0 up
对于RedHat系统,网卡重启也可以使用
a)[root@localhost ~]#service network restart
b)[root@localhost ~]#/etc/init.d/network restart
开发板的IP配置方法类似,这里就不累述了。
5.用PING命令测试开发板网卡IP、VMware中Linux的IP和前面配置的空余网卡IP是否互通。如果能互通,直接执行下一步,否则从步骤3开始重新配置。
6.打开开发板的超级终端界面,输入如下命令。
[root@FriendlyARM /]# mount -o nolock -t nfs 172.16.10.101:/home/FriendlyARM /mnt/nfs
如果连接成功,请使用下面命令查看效果。
开发板超级终端
[root@FriendlyARM /]# ls -l /mnt/nfs/
Linux系统
[root@localhost ~]# ls -l /home/FriendlyARM/
如果两个显示的文件和目录的数目相同,那么恭喜你NFS服务已经搭建成功。
在mount远程NFS的时候,往往有些人使用的是如下命令,并提示timeout。
[root@FriendlyARM /]# mount -t nfs 172.16.10.101:/home/FriendlyARM /mnt/nfs/
rpcbind: server localhost not responding, timed out
此时,只要你细心的看就会发现前后两条命令相差一个参数“-o nolock”,在mount远程NFS时是千万不要忘写这个参数,否则就会出现上面的超时信息。如果加了这个参数还是mount不上,请先检查NFS服务是否启动或有无NFS相关进程,检查后没有,请启动NFS服务。 NFS服务已经启动了,请重启NFS服务。NFS服务相关命令如下。
查看NFS服务是否启动命令:
[root@localhost ~]# netstat -a |grep nfs
tcp 0 0 *:nfs *:* LISTEN
udp 0 0 *:nfs *:*
查看NFS服务进程命令:
[root@localhost ~]# ps -e |grep nfs
21414 ? 00:00:00 nfsd4
21415 ? 00:00:00 nfsd
21416 ? 00:00:00 nfsd
21417 ? 00:00:00 nfsd
21418 ? 00:00:00 nfsd
21419 ? 00:00:00 nfsd
21420 ? 00:00:00 nfsd
21421 ? 00:00:00 nfsd
21422 ? 00:00:00 nfsd
重启NFS服务命令(RedHat系统):
a)[root@localhost ~]# service nfs restart
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
b)[root@localhost ~]# /etc/init.d/nfs restart
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
如果mount远程NFS还是有问题,请参考《挂载NFS错误排解》