生成环境下nfs挂载完毕后并不能一帆风顺,nfs时常会出现挂载问题。但只要有方法,
是非常容易解决的。
首先我们需要判断出是nfs服务端问题,还是客户端问题。
如果是单纯的客户端问题,则可以使用fuser命令轻松解决。
具体如下:
fuser -mv /mnt 可以查看到当前占用/mnt目录的进程。
使用fuser -mk /mnt 直接杀死这个进程。
如果你不是很明确是否要杀死所有霸占设备的程序,你还可以加一个-i 参数,
这样每杀死一个程序前,都会询问,(如fuser -mv -i -k /mnt)
还有一种是服务端有问题,如nfs服务器死掉了。笔者就因为这种情况跟nfs做了长时间的斗争。
主要有如下解决方法:
1:修改/etc/mtab将对应的挂载条目删除。
这种方法,不仅耗时耗力,而且你若再挂载别的nfs服务器到这个目录下,
就挂载不进去。可谓是治标不治本,属于下下策。
2:使用umount命令
经过对官方文档的研读,使用umount -f /mnt ,umount -l /mnt ,umount -f -l /mnt
命令均可轻松解决服务端的挂载,并且能使用别的nfs服务器二次挂载到相同的路径,
这种方法可用于对应nfs的灾备方案中。
目录无法进入的解决方法:
root@pts/6 # cd /mn #/mnt目录无法进入,直接导致会话卡死
1:杀死所有霸占设备的程序:
root@pts/4 # fuser -mk /mnt #命令再次卡死,汗~
2:强制执行卸载命令(即使df -h命令显示此目录没有挂载):
root@pts/4 # umount -f -l /mnt
3:再次杀死所有霸占设备的程序:
root@pts/4 # fuser -mk /mnt
命令执行完有可能会结束当前会话,跳出终端
4:执行命令验证:
root@pts/6 # cd /mnt
tips:
正常的非挂载目录,执行卸载的时候会提示“not mounted”
root@pts/4 # umount -f -l /mnt
umount: /mnt: not mounted