解决 umount時出現的 “Device is busy”

解决 umount時出現的 “Device is busy”

Filed under: 东写西读 |  

 

在 Linux 系列 OS 安装好之后,都会有支持一个 fuser 这一个指令,那有时候在 linux 底下 mount CDROM,或者是其它硬件的时候,有时候没办法让您移除,会出现:『Device is busy』,那这个讯息是在保护确保你的数据有储存到该装置,有时候如果没有正确移除,会造成数据遗失,或者是数据不完整,那基本上装上任何一套 Linux 操作系统,都会有支持了,所以不必在另外安装。

fuser可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细讯息。

假设无法卸载的设备为/var,运行下列命令即可:
$ fuser -m -v /var

用户进程号权限命令

[root@tet ~]# fuser -m -v /var                                                                                  

                     USER       PID  ACCESS  COMMAND
/var:              root       2003  F….  auditd
                     root       2037 F…. syslogd
                     root       2114 F…m pcscd
                     root       2230 F.c.. master
                     postfix    2241 F.c.. qmgr
                     root       2248 F.c.. crond
                     root       2568 F.c.. atd
                     root       2659 ..c.. named
                     postfix    4230 F.c.. pickup

-m 参数显示所有使用指定文件系统的进程,后面可以跟挂载点,或是dev设备,-v参数给出详细的输出,可以看出,原来是gqview这个程序还在霸占着移动设备,fuser还给出了程序的进程号,知道了进程号,你就可以随便怎么处置这个程序了。

另外你也可以添加一个-k参数:
fuser -m -k /var

这招自动把霸占着/var的程序杀死。如果你不是很明确是否要杀死所有霸占设备的程序,你还可以加一个-i参数,这样每杀死一个程序前,都会询问:
$ fuser -m -v -i -k /var

用户进程号权限命令
/var: galeki 2659 ..c.. named

杀死进程2659 ? (y/N)

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

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


Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

If you want to leave a feedback to this post or to some other user´s comment, simply fill out the form below.

(required)

(required)