解决umount报错“Device is busy”的问题

发布时间:2019-11-15编辑:脚本学堂
本文介绍下,在umount挂载的光盘或移动硬盘时,出现device is busy报错,有遇到此问题的朋友,参考下本文给出的解决方法吧。

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

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

用户进程号权限命令:
 

复制代码 代码示例:

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)

通过fuser命令,完成进程的查找,继续停掉相关进程,然后umount,便不会出现Device is busy的提示了。