如何处理Linux启动时NFS无法自动挂载问题? (linux开机不启动nfs)

Linux系统中使用NFS(Network File System)可以让不同的机器之间共享文件,并提供文件的读取、写入、修改等操作。但有时候在Linux服务器启动的时候,NFS会出现无法自动挂载的问题,导致我们无法访问共享的文件。本文将就如何在Linux中处理这个问题进行介绍,希望对大家有所帮助。

1. 确认NFS服务器是否正常启动

在对NFS无法自动挂载进行解决之前,首先需要确认一下NFS服务器是否已经正常启动。如果NFS服务器没有启动,则导致客户机无法挂载共享资源。可以通过以下命令查看是否已经正常启动:

systemctl status nfs

如果输出状态为active,则表示NFS服务器已经正常启动,否则需要先启动NFS服务器。

2. 检查NFS挂载点的设置

如果确认NFS服务器已经正常启动,那么就需要检查NFS挂载点的设置是否正确。在Linux系统中,可以通过修改/etc/fstab文件来设置NFS的挂载点。可以使用以下命令来查看/etc/fstab文件内容:

cat /etc/fstab

如果出现了定义NFS挂载点的语句,则需要确认路径和IP地址是否正确。如果路径和IP地址出现了错误的话,则需要进行修改,例如:

192.168.1.3:/opt/nfs/share /mnt nfs rw 0 0

需要确认的地方包括IP地址、路径、挂载点等。如果NFS的挂载点已经被正确设置,但是仍然无法自动挂载,可以尝试使用mount命令手动挂载:

mount -t nfs 192.168.1.3:/opt/nfs/share /mnt

3. 检查系统服务的设置

如果NFS挂载点的设置已经正确,但是仍然无法自动挂载,有可能是系统服务的设置出现了问题。可以使用systemctl命令来检查NFS相关的服务是否已经启动。可以使用以下命令来检查NFS服务是否已经启动:

systemctl list-unit-files | grep nfs

如果输出的结果中没有相关的服务,则表示需要手动启动这些服务。可以使用以下命令来启动NFS的相关服务:

systemctl start nfs.service

systemctl start rpcbind.service

systemctl start nfs-client.target

启动服务之后,可以再次使用systemctl list-unit-files | grep nfs命令来检查NFS相关的服务是否已经启动。

4. 检查NFS的权限设置

如果以上所有方式都无法解决自动挂载的问题,可以尝试检查NFS的权限设置。可以使用以下命令来查看NFS的权限设置:

vim /etc/exports

在这个文件中可以设置共享目录的访问权限。可以设置为所有用户都可以读取,也可以设置为只有特定的用户可以读取。如果权限设置不正确,则可能导致自动挂载失败。

NFS无法自动挂载是比较常见的问题。我们可以通过确认NFS服务器是否正常启动、检查NFS挂载点的设置、检查系统服务的设置和检查NFS的权限设置等方式,来解决这个问题。希望以上介绍对于大家有所帮助。

相关问题拓展阅读:

linux配置nfs步骤

NFS的配置过程很简单。在服务器端中编辑

/etc/exports

文件,添加如下内容: /home/nfs-share.168.1.122 (rw,sync)

之一项是要共享的目录,后者为共享的配置参数一般为: (rw,sync,no_root_squash,no_all_squash,no_subtree_check)

然后开启NFS和portmap服务:

/etc/init.d/nfs start//用service nfs start也可以 /etc/init.d/portmap start//用service portmap stasrt也可以

在centos6.5中portmap已经改为rpcbind 在客户端,用mount –t nfs 192.168.123:/home/nfs-share /home/remote_file挂载服务器端的共享目录到本地的/home/remote-file挂载点,然后我们就可以在客户端上应用到远程主机上的/home/nfs-share目录了。想要系统在开机时自动挂载,修改/etc/fstab文件,把NFS服务器的共享目录添加进去就可以了,这个不用多说。

如何知道远程主机上的共享目录情况呢?使用showmount命令,这个命令需要root权限。它有三个选项(记住这三个选项代表的含义: showmount –a IP 显示指定NFS服务器的客户端以及服务器端在客户端的挂载点 showmount –d IP 显示指定NFS服务器在客户端的挂载点 showmount –e IP 显示指定NFS服务器上的共享目录列表(或者叫输出列表) 我们输入命令showmount –a 192.168.1.123:

图片客户端中出现的mount clntudp_create: RPC: Program not registered错误是怎么回事?噢,我刚才重启了一下服务器端,重启后NFS服务没有开启。 我们开启服务器端的NFS服务,再从客户端上查看一下NFS服务器的情况:

Showmount –a显示出NFS服务器192.168.1.123的共享目录被客户端192.168.122挂载到/home中;

在showmount -e IP,出现clnt_create: RPC: Port mapper failure – Timed out报错

解决方案:

被访问的NFS服务器上的防火墙没有添加规则,向iptables里面添加以下查看的所有端口即可(目前解决的方法,当然你也可以关闭防火墙,不过这样是比较不安全的,如果你的nfs作用不大,建议你另选别的应用来替代吧!毕竟开那么多的端口,比较不安全呀!)

通过#rpcinfo -p 10.10.209.148

# rpcinfo -p 10.10.209.148program vers proto port servicetcp 111 portmappertcp 111 portmappertcp 111 portmapperudp 111 portmapperudp 111 portmapperudp 111 portmapperudpstatustcpstatusudp 875 rquotadudp 875 rquotadtcp 875 rquotadtcp 875 rquotadtcp 2023 nfstcp 2023 nfstcp 2023 nfstcp 2023 nfs_acltcp 2023 nfs_acludp 2023 nfsudp 2023 nfsudp 2023 nfsudp 2023 nfs_acludp 2023 nfs_acludpnlockmgrudpnlockmgrudpnlockmgrtcpnlockmgrtcpnlockmgrtcpnlockmgrudpmountdtcpmountdudpmountdtcpmountdudpmountdtcpmountd

#

刚才在重启NFS服务的时候,细心的话可以注意到,我们在输入命令/etc/init.d/nfs start开启nfs服务时,系统还自作主张地开启了NFS quotas等其它3个服务。

怎么回事?我们只输入了一条启动NFS服务的命令,它怎么额外的启动了3个服务?后面的启动portmap服务又是怎么回事? 我们首先要了解一点:NFS文件系统要提供服务单靠本身的NFS服务是不够的,还需要调用其它服务,这个其它服务就是RPC(remote procedure call,远程过程调用)服务和portmap服务。由于NFS服务本身不提供文件传输功能,我们要远程使用NFS文件系统就需要RPC服务的支持;而portmap服务用来为RPC服务进行动态端口分配和映射,所以portmap服务也是NFS服务所必须的。

我们查看一下服务的启动情况:

所遇错误:

/etc/init.d/nfs-kernel-server: 没有那个文件或目录

解决方案:

没有配置、安装NFS

Linux 下配置NFS服务

1、安装

2、配置

3、客户端

所遇问题:centos6.5

portmap: 未被识别的服务

解决方案:

由于在6系列里面,portmap已经改名了 ,6系列需要使用 service rpcbind start启动# service portmap start

portmap: 未被识别的服务

# service rpcbind status

rpcbind (pid 1312) is running…

#

好文共赏:

linux nfs文件共享

◆一、概念

NFS是网络文件系统(Network File System)的简称,是分布式计算机系统的一个组成部分,可实现在异构网络上共享和装配远程文件系统。

NFS由SUN公司开发,目前已成为文件服务的一种标准(RFC1904,RFC1813)。其更大的功能就是可以通过网络,让不同 操作系统 的计算机可以共享数据,所以也可以看作是一个文件服务器。NFS是除了SAMBA之外Windows与Linux及Unix与Linux之间通信的方法。

理想条件下的NFS 网络拓扑结构

1、设置Linux系统之间的文件共享(Linux与Windows中间文件共享采用SAMBA服务);

2、NFS只是一种文件系统,本身没有传输功能,是基于RPC协议实现的,才能达到两个Linux系统之间的文件目录共享;

3、NFS为C/S 架构 ;

◆二、服务器配置

1、配置文件

主要配置文件为:/etc/exports

格式为: 共享目录 可mount主机IP(参数1,参数2,……)

如:/var/nfs 172.20. . (rw,sync,no_rootl_squash)

说明:必须注意nfs/目录的访问权限,必须设置成777权限;父目录/var权限无要求,普通的755即可;

2、启动相关服务

然后依次启动相关服务:portmap,nfslock,nfs

service portmap start

service nfslock start

service nfs start

关闭顺序相反。

3、检查共享目录

随后可以采用showmount –e查看一下,看看共享的目录情况:

# showmount -e

Export list for ns.osserver:

/var/nfs 172.20. .

OK,到此为止,NFS服务器搭建完毕;

◆三、客户端配置

1、确保portmap运行

客户端必须确保RPC协议相应的portmap正常运行,否则mount将失败;

2、挂载/var/nfs目录(本地挂载点为/mnt/nfs)

mount -t nfs 172.20.65.16:/var/nfs /mnt/nfs

成功mount以后,即可同本地目录一样随意操作;

◆四、其它相关命令

1、当修改了/etc/exports文件后,可以不用重新启动nfs服务,直接采用exports –rv 即可重新导出共享目录;

该命令格式如下:

exportfs

-a :全部mount或者unmount /etc/exports中的内容

-r :重新mount /etc/exports中分享出来的目录

-u :umount 目录

-v :在 export 的时候,将详细的信息输出到屏幕上。

具体例子:

# showmount -e

Export list for ns.osserver:

/var/nfs 172.20. .

# exportfs –au #全部卸载

# showmount -e

Export list for ns.osserver:

# exportfs –rv #全部重新 export 一次

exporting 172.20. . :/var/nfs

#

2、showmout命令对于NFS的操作和查错有很大的帮助,所以我们先来看一下showmount的用法

showmout

-a :这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器。

-e :显示指定的NFS SERVER上export出来的目录。

例如:

# showmount -e 172.20.16.139

Export list for 172.20.16.139 :/root/share 172.20.16.137

# showmount -a

All mount points on localhost.localdomain: :/root/share,172.20. . :/root/share,172.20.16. :/root/share,172.20.16.139:/nfsshare,172.20.16.139:/root/share172.20.16.137: 172.20.16.137:,172.20. . 172.20.16.137:,172.20.16. 172.20.16.137:/root/share172.20.16.139: 172.20.16.139:,172.20. . 172.20.16.139:,172.20.16. 172.20.16.139:,172.20.16.139172.20.16.139:DEFAULT

◆五、常见问题解答

1、提示:mount to NFS server ‘172.20.67.203’ failed: server is down.

解决方案:可能是NFS服务器的防火墙有问题;

2、提示:mount: RPC: Timed out

解决方案:由于RPC协议没运行;启动portmap服务;

linux开机不启动nfs的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux开机不启动nfs,如何处理Linux启动时NFS无法自动挂载问题?,linux配置nfs步骤的信息别忘了在本站进行查找喔。


数据运维技术 » 如何处理Linux启动时NFS无法自动挂载问题? (linux开机不启动nfs)