umount: device is busy时怎么办?

本文介绍了解决Linux系统中umount命令卸载磁盘分区时遇到的deviceisbusy错误的方法。通过使用fuser命令可以找出占用挂载点的进程,并提供了umount命令的-l选项来实现懒惰卸载。

执行mount -o loop ramdisk.image mnt_ramdisk/,将当前目录下的ramdisk映像挂载到mnt_ramdisk目录下,使用完后退出此目录,执行umount mnt_ramdisk/,可总是说device is busy,可我又不知道什么程序在使用,用google搜了一下,找到了网上高人解决此问题的方法.以下转载于品可的blog:

================

linux下的磁盘分区通过挂载(mount)的方式连到一个目录下,打开此目录就可以看到磁盘分区中的内容了。与挂载相反的操作是umount,他将磁盘分区与目录的关联关系解除。

但有时候umount时会报错误,例如

Code:
# umount /usr/local/
umount: /usr/local: device is busy

这说明还有某个程序正在是用此目录,为了保证程序的运行,默认情况下umount不能卸载。但是umount又没有说究竟哪个程序在使用,觉得这也算是设计的一个缺陷。

幸好有个程序叫fuser,man fuser的介绍是:

Code:
fuser - identify processes using files or sockets

fuser后加需要查的资源就可以知道有哪些进程正在使用了,例如:

Code:
#fuser -m /
/: 8892r 8916r 8932r 8959r 8992rc 8996rc 8997rc 8999rc 9006rc
9007rc 9010rc 9013r 9015rc 9025r 9029r 9033rc 9035r 9039rc 9058rc 9107rc
9109rc 9126rc 9130r 9366r 9375r 9439r

接下来需要做的就是将相关进程停掉,再umount即可。

PS: 多谢pnt的提醒,原来umount 还有一个-l选项,作用是当需卸载文件系统的引用不繁忙时直接卸载:

Code:

 

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

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值