在使用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下面介紹一種簡單有效的方法解決這個問題。
參數含義介紹: -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.)
查看占用進程
$ fuser –m –v /home/lanyang/nfs_mountUSER PID access COMMAND/home/lanyang/nfs_mount:….lanyang 21691 .rce. lskill占用進程,必須加-9.
$ kill -9 21691kill掉占用進程后,就可以保證順利重新mount。
經過以上兩個步驟,就可以成功解決umount的問題了。
有同學可能會有疑問,為什么不是先kill占用進程,再強制umount? 原因是如果首先執行fuser命令會一直卡住,無法操作,必須強制umount后,才可以繼續執行fuser命令。
參考: http://www.linuxidc.com/Linux/2013-12/93758.htm
新聞熱點
疑難解答