最近被老师拉去干活去了,所以自主学习的时间一下很少了,又加上时间紧迫,所以也就没来得及写博客了,想想做了两三天,并没有什么值得一说的长进和成果,不过最近碰到了一点小问题,以前一直用得好好的服务器居然不听使唤,mount不上去了,去忘了看了一下,就弄好了,就姑且把网上的资料再结合自己的实际总结一下。
碰到的问题如下:
mount: RPC: Unable to receive; errno = No route to host
mount: nfsmount failed: Bad file descriptor
mount: Mounting 192.168.1.190:/home/nsl/nfs on /mnt/nfs failed: Bad file descriptor
可是板子ping服务器是通的,服务器ping板子也是通的
用ifconfig看了一下板子的ip,发现和服务器也是同一个网段哈
mount
根据最新进展更新:
1:首先确保自己的服务器已经安装有nfs服务,测试方式可以为:
#service nfs status
没有unrecognized service之类的错误输出就表示已经安装
2:去服务器中编辑配置文件/etc/exports,比如可以为:
/home/nsl/nfs 192.168.*.*(rw,sync,no_root_squash)
添加的内容表示:允许ip 地址范围在192.168.*.*的计算机以读写的权限来访问/home/nsl/nfs目录。
括号内的参数意义描述如下:
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
3:重启或者启动对应的两个服务:
[root@localhost n300]# service portmap restart
Stopping portmap: [ OK ]
Starting portmap: [ OK ]
[root@localhost n300]# 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 ]
[root@localhost n300]#
4:本机测试或者其他客户端的测试:
>: mount -o nolock 10.78.28.103:/usr/n300 /mnt
mount: RPC: Unable to receive; errno = No route to host
mount: nfsmount failed: Bad file descriptor
mount: Mounting 10.78.28.103:/usr/n300 on /mnt failed: Bad file descriptor
如果有上面类似错误,有可能是如下原因
a:先ping客户端能否连通服务器ip
RPC: Unable to receive; errno = No route to host 的原因
b:nfs服务器是否有防火墙屏蔽了对应端口
c:/etc/hosts.deny /etc/hosts.allow 是否屏蔽了客户端ip
Bad file descriptor的原因
d:/etc/exports配置有问题,确保文件中的"()"是英文的,如果你从其他地方copy有可能出现如上问题
解决办法:
[root@localhost n300]# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
[root@localhost n300]# service iptables status
Firewall is stopped.
其实我后面的方法都没用着,我就只重启了portmap和nfs服务,就好了,剩下的事情我也不管了,呵呵
#service nfs status
没有unrecognized service之类的错误输出就表示已经安装
2:去服务器中编辑配置文件/etc/exports,比如可以为:
/home/nsl/nfs 192.168.*.*(rw,sync,no_root_squash)
添加的内容表示:允许ip 地址范围在192.168.*.*的计算机以读写的权限来访问/home/nsl/nfs目录。
括号内的参数意义描述如下:
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
3:重启或者启动对应的两个服务:
[root@localhost n300]# service portmap restart
Stopping portmap: [ OK ]
Starting portmap: [ OK ]
[root@localhost n300]# 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 ]
[root@localhost n300]#
4:本机测试或者其他客户端的测试:
>: mount -o nolock 10.78.28.103:/usr/n300 /mnt
mount: RPC: Unable to receive; errno = No route to host
mount: nfsmount failed: Bad file descriptor
mount: Mounting 10.78.28.103:/usr/n300 on /mnt failed: Bad file descriptor
如果有上面类似错误,有可能是如下原因
a:先ping客户端能否连通服务器ip
RPC: Unable to receive; errno = No route to host 的原因
b:nfs服务器是否有防火墙屏蔽了对应端口
c:/etc/hosts.deny /etc/hosts.allow 是否屏蔽了客户端ip
Bad file descriptor的原因
d:/etc/exports配置有问题,确保文件中的"()"是英文的,如果你从其他地方copy有可能出现如上问题
解决办法:
[root@localhost n300]# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
[root@localhost n300]# service iptables status
Firewall is stopped.
其实我后面的方法都没用着,我就只重启了portmap和nfs服务,就好了,剩下的事情我也不管了,呵呵
最新更新:有时候mount不上,怎么弄都mount不上,有可能是服务器的磁盘空间不够,删点东西吧
根据最新进展更新:
可能服务器中了病毒啥的,只好拔电源重启(reboot软重启并没有用),重启之后:
/etc/init.d/nfs restart (开启nfs服务)
iptables -F (关闭防火墙)
转载于:https://blog.51cto.com/nnssll/194614