首页 > 学院 > 操作系统 > 正文

umount.nfs: XXX: device is busy

2024-06-28 16:05:08
字体:
来源:转载
供稿:网友

在使用NFS 过程中,由于NFS server ip变化,或者NFS server宕机等原因,客户端umount经常会遇到问题,无法卸载NFS:

umount.nfs: XXX: device is busy”

例如

$ umount /home/lanyang/nfs_mountumount.nfs: /home/lanyang/nfs_mount: device is busyumount.nfs: /home/lanyang/nfs_mount: device is busy

查看mount挂载情况,可以看到有NFS过载

$ cat /PRoc/mounts rootfs / rootfs rw 0 0proc /proc proc rw,relatime 0 0sysfs /sys sysfs rw,seclabel,relatime 0 0……192.168.112.2:/d/work /home/lanyang/nfs_mount nfs rw,sync,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.112.2,mountvers=3,mountport=1058,mountproto=udp,local_lock=none,addr=192.168.112.2 0 0

此时,执行ls、df等命令都会卡住。

$ ls^C

下面介绍一种简单有效的方法解决这个问题。

1.强制umount

$ umount –lf /home/lanyang/nfs_mount

参数含义介绍: -f Force unmount (in case of an unreachable NFS system). (Requires kernel 2.1.116 or later.)

-l Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. (Requires kernel 2.4.11 or later.)

2.kill占用进程

查看占用进程

$ fuser –m –v /home/lanyang/nfs_mountUSER PID access COMMAND/home/lanyang/nfs_mount:….lanyang 21691 .rce. ls

kill占用进程,必须加-9.

$ kill -9 21691

kill掉占用进程后,就可以保证顺利重新mount。

经过以上两个步骤,就可以成功解决umount的问题了。

有同学可能会有疑问,为什么不是先kill占用进程,再强制umount? 原因是如果首先执行fuser命令会一直卡住,无法操作,必须强制umount后,才可以继续执行fuser命令。

参考: http://www.linuxidc.com/Linux/2013-12/93758.htm


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表