Linux下tftp 与nfs的搭建

前阵子重装了Linux系统,先前装的软件都没了,现在又要重新搭建Linux环境,真是麻烦,时间久了,以前怎么搭建的都不记得了。今天搞了一个大下午才把tftp和nfs,还有交叉编译器都安装好,为防止类似烦躁的时候再次发生,下面把搭建tftp和nfs的步骤及碰到的问题记录下来,由于交叉编译器的安装比较简单,一般不会碰到什么问题,故在这里不讲。

一:安装tftp
安装tftp先要安装xinetd,我安装的是xinetd-2.3.14-11.i386.rpm,用rpm即可快速安装,接下来安装tftp-server,由于s3c2410中的uboot上已经实现了tftp-client,故只需下载tftp-server软件包,我下载的是tftp-server-0.42-4.i386.rpm,也直接用rpm安装就行了。安装好后,就要配置/etc/xinetd.d/tftp文件了

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftp/tftpboot // tftp/tftpboot 可自己随便定义,不过不要写成/*****的形式
disable = no //这里把yes改成no
per_source = 11
cps = 100 2
flags = IPv4
}

最后启动tftp服务:service xinet restart

碰到的问题:在uboot下使用命令tftp 0x31000000 zImage.img时,然后一直出现TTTT,下载不了。当时我的server_args是设成/tftpboot,令我不解的是把server_args设成/tftp/tftpboot居然可以下载了,到现在还搞不懂是啥原因,先暂时这样写着,搞懂了再来改。

2. 安装nfs
FS的安装是非常简单的,只需要两个软件包即可,而且在通常情况下,是作为系统的默认包安装的,在配置使用NFS之前需要先查询所需的软件包是否已安装。

# rpm -q nfs-utils portmap

nfs-utils-1.0.6-70.EL4

portmap-4.0-63

//如果出现包的信息,则表示已安装了nfs-utils portmap两个软件包

我的系统是FC7,默认下只安装了nfs-utils,没有安装portmap,我下了个portmap-4.0-65.i386.rpm 用rpm很快就能装好。

接下来配置文件/etc/exports ,一开始里面什么都没有,输入:

/nfs/nfsroot *(rw,sync,no_root_squash)

其中/nfs/nfsroot 可自定义

现在可以启动nfs服务了,不过要先启动portmap(service protmap restart),再启动nfs(service nfs start),可以通过service nfs status查看nfs的当前状态。

碰到的问题:
[Tekkaman2410@UP-NETARM2410-S]#mount -t nfs 192.168.253.111:/nfs/nfsroot /mnt
RPC: sendmsg returned error 101
portmap: RPC call returned error 101
RPC: failed to contact portmap (errno -101).
RPC: sendmsg returned error 101
portmap: RPC call returned error 101
RPC: failed to contact portmap (errno -101).
lockd_up: makesock failed, error=-101
RPC: sendmsg returned error 101
portmap: RPC call returned error 101
RPC: failed to contact portmap (errno -101).

解决方法:重新启动portmap和nfs服务即可。

额外的问题还有:

1、fs type nfs no supported by kernel
kernel不支持nfs文件系统,重新编译一下KERNEL就可以解决。

2、cant contact portmapper: RPC: Remote system error - Connection refused
出现这个错误信息是由于SEVER端的PORTMAP没有启动。

3、mount clntudp_create: RPC: Program not registered
NFS没有启动起来,可以用showmout -e host命令来检查NFS SERVER是否正常启动起来。

4、mount: localhost:/home/test failed, reason given by server: Permission denied
这个提示是当client要mount nfs server时可能出现的提示,意思是说本机没有权限去mount nfs server上的目录。解决方法当然是去修改NFS SERVER咯。

5、被防火墙阻挡
这个原因很多人都忽视了,在有严格要求的网络环境中,我们一般会关闭linux上的所有端口,当需要使用哪个端口的时候才会去打开。而NFS默认是使用111端口,所以我们先要检测是否打开了这个端口,另外也要检查TCP_Wrappers的设定。