在Linux环境中,有时候需要挂载外部目录或硬盘等,但当想umount时,却提示类似“umount:/home/oracle-server/backup:device is busy”这种提示。

出现这种提示的原因可能是该文件系统处于busy状态,不能卸载。

那么什么情况可能会导致文件系统处于“busy”状态呢,考虑一下三种情况:

1) 文件系统上面有打开的文件

2) 某个进程的工作目录在此文件系统上

3) 文件系统上面的缓存文件正在被使用

解决上述问题的方法是,可以使用fuser命令,fuser -km /home/oracle-server/backup(挂载文件系统)。关于fuser的使用,可以通过fuser --help查看详细参数。如下图

我们常用到的参数有两个:

-m  列出所有使用该文件系统的进程

-k  杀掉访问该文件系统的进程

所以对于我的环境来说,命令就是fuser -km /home/oracle-server/backup。这里要说明一下,执行这条命令时,要用正确的用户,那怎么知道正确的用户呢?可以查看所要umount目录的属性(使用ll命令查看)中的所属用户。

正常情况下,通过fuser命令之后,就可以使用umount命令卸载掉挂载目录了。

补充:

1  新挂载目录后原有目录中文件消失?

答案是原有文件并没有小时,只是隐藏了,看不到罢了。那这又是什么原因呢?

这个原因是由于Linux的VFS(虚拟文件系统)机制导致的,正常登录以后,所看到的各个目录,文件都是内核在加载时候构造在内存中的VFS目录树,而不是直接看到硬盘上的实际目录树。当你挂载某个设备到一个VFS挂载点上时(比如/home),系统就把VFS中的这个挂载点/home指向你最后所挂载的那个设备上。那么你现在访问该挂载点时,就会看到你最后挂载在此处的设备。而之前所挂载的设备依然在那里,只不过挂载点/home已经不再指向之前的设备。所以之前的数据是被隐藏了,但并没有删除,若umount挂载后,数据又重新回来了。

2 思考:为什么有时候会出现挂载某个光驱后umount会出现“umount: /mnt/cdrom: device is busy”

这是由于直接将/dev/cdrom mount 到了/mnt目录造成的。

正确挂载CD-ROM的方法应该如下:

#cd /mnt

# mkdir cdrom
# mount /dev/cdrom /mnt/cdrom
或者

# mount /dev/cdrom /media/cdrom

直接挂载在/mnt,/media等系统目录下,在umount时会出现出错信息“umount: /mnt/cdrom: device is busy”的情况。

Linux 环境下umount, 报 device is busy 的问题分析与解决方法的更多相关文章

  1. Linux 环境下思源黑体字体与 Java 之间的兼容性问题的解决(补充说明)

    在前一篇随笔中,我讲了一下有关 Linux 环境下思源黑体与 Java 之间的兼容性问题,后来经过测试发现,默认安装的思源黑体字体同时包含简体字体和繁体字体,并且其对应的语言编码也是不同的.尝试着把繁 ...

  2. Linux环境下使用n更新node版本失败的原因与解决

    Linux环境为CentOS 6.5 64位,阿里云低配服务器...学生优惠,然而下个月即将过期,真是个悲伤的故事 很久之前就安装了node,但是一直没有进行过升级,近日因为将部分异步代码更新为采用原 ...

  3. Windows环境下的RTKPlot_Qt版本编译时遇到的问题和解决方法

    在使用了 RTKLIB开源包自带的 rtkplot.exe后,知道了它所具有的功能,就想着如何模仿它做出一个 demo.一开始看的是之前下载的 2.4.2版本的 RTKLIB,里面是使用 Delphi ...

  4. 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】

      非常惭愧的说,由于之前一直使用的是windowservice,安装apache来进行服务器布置的,这种方式也是最简单最直接的方式, 但是由于php的服务大多都是linux栈的,咱们也不能落后呀,在 ...

  5. 服务器个人环境下pytorch0.4.1编译warp-ctc遇到的问题及解决方法

    一.关于warp-ctc CTC可以生成一个损失函数,用于在序列数据上进行监督式学习,不需要对齐输入数据及标签,经常连接在一个RNN网络的末端,训练端到端的语音或文本识别系统.CTC论文 CTC网络的 ...

  6. 关于 phpstudy环境下在MySQL中执行into outfile无法导入导出文件解决方法

    之前在做sqli-labs练习,需要用到into outfile 出现以下问题: 执行SQL语句后在指定的路径下无文件生成. 例如: 执行 select into outfile "C:\\ ...

  7. Win10环境下 HTTP 错误 500.19 - Internal Server Error 问题及其解决方法

    记一下今日份小bug... 明天要做软件架构实验了,今天打算测试下运行web项目,于是乎,找出了以前用JSP写的web项目测试运行不了,我再打开浏览器测试Tomcat服务器,在地址栏键入http:// ...

  8. Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法

    修改了lower_case_table_names=1 后,业务发有个库的表打不开了,看了表名以前是大写,查了一下如果设置不区分大小写, 以前的大小表名要改成小写.重启服务后可用! MYSQL在LIN ...

  9. Yii2 PHPExcel在linux环境下导出报500错误

    断点调试后发现是因为这句报错 header('Content-Type : application/vnd.ms-excel');删除后正常输出下载

随机推荐

  1. Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载

    1.简要说明: Apache Bench 是Apache的网站性能测试小程序,Windows平台下的程序名简称ab.exe,要想获得这个80k的可执行程序,用户需要下载整个Apache Httpd软件 ...

  2. Itext生成pdf文件

    来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...

  3. 记录Sql2012附加Sql2008的数据库出错的解决方案

    只需要对要附加的数据文件[右键]->[属性]->[安全]->(选择“Authenticated Users”用户)[编辑]->让“Authenticated Users”用户具 ...

  4. cmd非运行完再保存,结果显示&保存同时进行

    #coding:utf-8 """ fps信息获取到文件 """ import sys import subprocess class Lo ...

  5. React文档(十八)最佳性能

    在内部,React使用好几种聪明的技巧去最小化更新UI所需要的DOM操作.对于很多应用来说,使用React会使得构建用户界面非常之快而且不需要做太多专门的性能优化.虽然如此,还是有一些方法可以让你为R ...

  6. react component onClick 函数带参数

    <div onClick={this.toggleTip(true)}></div> toggleTip = shouldShowTip => () => { th ...

  7. C#使用RSA证书文件加密和解密

    public class EncrypHelp { static public byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKey ...

  8. [转]利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目

    环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得配置权限) JDK: 安装部署略. Maven: 安装部署略. 服务器免密 ...

  9. Dubbo常用配置解析

    一.多版本的支持 如何发布服务,需要将需要暴露的服务接口发布出去供客户端调用,需要在java同级目录新建一个resources目录,然后将resoureces目录标记成Test Resoureces ...

  10. Abp 中 模块 加载及类型自动注入 源码学习笔记

    注意 互相关联多使用接口注册,所以可以 根据需要替换. 始于 Startup.cs 中的  通过 AddApplication 扩展方法添加 Abp支持 1 services.AddApplicati ...