Linux --- 卸载光盘提示 umount: /mnt: target is busy. 怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux --- 卸载光盘提示 umount: /mnt: target is busy. 怎么办?相关的知识,希望对你有一定的参考价值。

参考技术A 一、红色下划线:df -h 查看设备信息。/dev/sr0 是光盘,/mnt是挂载点的路径。
黄色下划线:umount /mnt 卸载的时候出现 umount: /mnt: target is busy. 提示设备忙。磁盘正在使用,无法直接卸载。需要将当前使用数据盘的进程杀掉,才能卸载。

二、安装 psmisc 工具
Psmisc 软件包包含三个帮助管理/proc目录的程序。

fuser 显示使用指定文件或者文件系统的进程的PID。
killall 杀死某个名字的进程,它向运行指定命令的所有进程发出信号。
pstree 树型显示当前运行的进程。

可以通过 rpm -qa psmisc 查看有没有安装,如果有系统会反馈安装程序的信息。

如果没有安装 psmisc 系统没有反馈。那么,就需要 yum -y install psmisc 安装一个 psmisc。

等待安装完成,安装完成后系统会反馈 psmisc 已经安装完毕。并且 通过 rpm -qa psmisc 可以查看到 psmisc 程序的信息。

三、红色划线:fuser -mv /mnt/ 查看 /mnt/ 的进程状态。可以看到 PID 1340 进程正在运行。
黄色下划线:fuser -kv /mnt/ 杀掉访问文件的进程。
蓝色下划线:再用 fuser -mv /mnt/ 查看 /mnt/ 。PID 1340 进程已经被杀掉。

-m:指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。所有访问这个文件或者文件系统的进程都会被列出来。
-v:详细模式。进程以 ps 的方式显示,包含PID,USER,COMMAND,如果是内核访问的 PID 为 kernel。
-k:指定 PID,就杀掉指定PID的进程。如果没有指定 PID 就会发送SIGKILL信号,杀掉所有进程。

四、此时用 umount /mnt。已经可以卸载了,df -h 查看设备状态 /mnt 也已经成功卸载。

linux卸载磁盘提示umount: /PT5/Docker/overlay2: target is busy

参考技术A 在Linux系统下卸载设备时,经常会遇到“Device is busy”的提示,报错的原因通常是由于待卸载磁盘正在使用,导致无法直接卸载,需要降当前使用数据盘的进程杀掉,才能卸载。如果贸然强行删除,可能会导致数据丢失或设备损坏。需要使用fuser命令查找和删除占用的程序。

例如:无法卸载的设备为/dev/vdd1,运行以下命令:

PS: 如果bash在使用此磁盘,会发现bash退出了,新开bash 并再次查看fuser -mv /dev/vdd1
确认是否还有占用进程。

找到PID对应的进程或者服务,然后杀死或者停止相应服务即可。

此案例中即使使用上述所有操作删除占用的进程,但还是提示磁盘busy,使用kill去杀进程,发现进程号一直在变化,惊觉可能是某个服务进程一直在运行,使用fuser -m -v /dev/vdd1 去查看详细的进程信息,发现是docker服务一直在占用。
解决方案:停止docker服务

以上是关于Linux --- 卸载光盘提示 umount: /mnt: target is busy. 怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

umount命令--Linux命令应用大词典729个命令解读

linux常用命令

linux卸载磁盘提示umount: /PT5/Docker/overlay2: target is busy

linux下强行umount卸载设备

linux下强行umount卸载设备

linux通过挂载系统光盘搭建本地yum仓库的方法