umount device is busy

解决umount.nfs: /data: device is busy 问题

2017年03月29日 17:52:31 漫步111 阅读数:5869更多

个人分类: linux维护

有时候我们需要umount某个挂载目录时会遇到如下问题:

1

2

[root@localhost /]# umount /data/

umount.nfs: /data: device is busy

通过这条命令查看:

1

2

3

4

[root@localhost /]# fuser -m -v /data/

                     用户     进程号 权限   命令

/data/:              root       2798 ..c.. bash

                     root       2996 ..c.. su

-v 表示 verbose 模式。进程以 ps 的方式显示,包括 PID、USER、COMMAND、ACCESS 字段

-m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。

如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。

1

2

3

4

[root@localhost /]# kill -9 2798

[root@localhost /]# kill -9 2996

[root@localhost /]# umount /data/

[root@localhost /]#

成功!

fuser 概述

fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。

1

2

3

4

5

6

7

8

9

10

11

12

13

[root@gc-statis2 ]# fuser -m -v tests/

                     用户     进程号 权限   命令

tests/:              root       7300 F.ce. php-fpm

                     www        7301 ..ce. php-fpm

                     www        7302 ..ce. php-fpm

                     www        7303 ..ce. php-fpm

                     www        7304 ..ce. php-fpm

                     www        7305 ..ce. php-fpm

                     www        7306 ..ce. php-fpm

                     www        7307 ..ce. php-fpm

                     www        7308 ..ce. php-fpm

                     www        7309 ..ce. php-fpm              

                     root      18891 ..c.. bash

同时fuser 可以用来查找哪些进程正在使用指定的端口(network port).

1

2

3

4

[root@gc-statis2 ]# fuser -v -n tcp 80

                     用户     进程号 权限   命令

80/tcp:              root       7975 F.... nginx

                     www        7976 F.... nginx

fuser 常用场景

fuser通常被用在诊断系统的“resource busy”问题,通常是在你希望umount指定的挂载点得时候遇到。 如果你希望kill所有正在使用某一指定的file, file system or sockets的进程的时候,你可以使用-k option。

1

fuser –k  /path/to/your/filename  

这时fuser会向所以正在使用/path/to/your/filename的进程发送SIGKILL。如果你希望在发送之前得到提示,可以使用-i 选项。

1

fuser –k –i /path/to/your/filename

 

将信息写入fstab,让系统开启自动挂载

复制代码

vim /etc/fstab 

UUID=94e4e384-0ace-437f-bc96-157dd64642ee / ext4 defaults,barrier=0 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
UUID=97e89f17-1767-4ccd-a4b5-f2bd3737c0b1

//UUID=97e89f17-1767-4ccd-a4b5-f2bd3767c0b9  挂载的目录名称/路径 ext3 defaults 0 0

 # 有的挂载使用的是 UUID,如果你不知道你的UUID对应的设备名称往下看 ;

df -h #查看设备名

Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 2.9G 35G 8% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/vdb1 99G 2.3G 92G 3% /home/wwwroot

dumpe2fs -h /dev/vdb1 #查看挂载设备的uuid
  Filesystem UUID:          97e89f17-1767-4ccd-a4b5-f2bd3737c0b1

blkid # 使用这个命令更简洁 或者 blkid /dev/vdb1

/dev/vda1: UUID="94e4e384-0ace-437f-bc96-157dd64642ee" TYPE="ext4" 
/dev/vdb1: UUID="97e89f17-1767-4ccd-a4b5-f2bd3737c0b1" TYPE="ext3"

 

  最后wq退出保存即可

复制代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值