Linux系统下无法卸载挂载的目录怎么办?看这篇就够了

运维 系统运维
我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目录,这个时候我们是无法直接umount卸载掉的,所以今天就给大家分享一下如果遇到这种问题了,我们如何去合理的处理?

[[361048]]

 背景说明:

我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目录,这个时候我们是无法直接umount卸载掉的,所以今天就给大家分享一下如果遇到这种问题了,我们如何去合理的处理?

现象描述:这里我们需要将/mnt目录卸载掉,如下图所示:


执行卸载命令:umount /mnt后,发现卸载不了,提示资源被占用,如下图所示:


上面我们已经看到了,提示被占用,无法卸载,如何处理呢?方法很简单,可以使用强制卸载,命令如下:

  1. [root@docker /]# umount -f /mnt 
  2.   umount2: Device or resource busy 
  3.   umount: /mnt: device is busy 
  4.   umount2: Device or resource busy 
  5.   umount: /mnt: device is busy 

 -f参数为进行强制卸载,这里我们也发现了,上面使用的强制卸载并未生效,还是报错了,怎么办呢?不要着急,看下面!

使用fuser命令,先确认有哪些进程在占用该目录

  1. [root@docker /]# fuser -cu /mnt 
  2.  /mnt: 1112c(java) 

 上面查看发现是pid为1112的java进程目前在占用这此目录,所以无法卸载。

那么我们确认了是哪个进程占用着此目录后,我们可以kill 掉该进程,

这里有两种方法去kill进程:

第一种就是我们平常用到的直接命令:kill -9 1120;

第二种就是使用fuser -ck /mnt

  1. [root@docker /]# fuser -ck /mnt 
  2.   /mnt: 1120c 

 当我们需要知道哪个目录被哪个进程所占用的时候,也可以使用lsof 命令进行查看。

 

责任编辑:姜华 来源: 今日头条
相关推荐

2019-08-16 09:41:56

UDP协议TCP

2021-09-30 07:59:06

zookeeper一致性算法CAP

2023-11-22 07:54:33

Xargs命令Linux

2017-03-01 15:08:44

Linuxboot目录启动

2022-03-29 08:23:56

项目数据SIEM

2021-05-07 07:52:51

Java并发编程

2023-11-09 07:44:21

2023-12-07 09:07:58

2022-08-18 20:45:30

HTTP协议数据

2024-08-27 11:00:56

单例池缓存bean

2017-03-30 22:41:55

虚拟化操作系统软件

2020-03-11 08:40:51

红黑树平衡二叉B树

2019-10-09 10:06:48

容器监控软件

2021-12-13 10:43:45

HashMapJava集合容器

2023-09-25 08:32:03

Redis数据结构

2021-09-10 13:06:45

HDFS底层Hadoop

2023-11-07 07:46:02

GatewayKubernetes

2023-10-04 00:32:01

数据结构Redis

2021-07-28 13:29:57

大数据PandasCSV

2023-11-03 08:53:15

StrconvGolang
点赞
收藏

51CTO技术栈公众号