热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux如何卸载光驱显示busy,关于linux卸载设备时的busy问题处理

常常我们对某个设备读写后,要卸载掉该设备,然后常常在这个时候会出现以下头疼的提示,这通常是因为有进程在对该设备进行读写操作,

常常我们对某个设备读写后,要卸载掉该设备,然后常常在这个时候会出现以下头疼的提示,这通常是因为有进程在对该设备进行读写操作,而该进程还在活跃状态

比如我将设备/dev/sde1 挂载在usb ,并且进入该目录,然后打开一个新的tty并且卸载该目录设备,就会有如下提示

umount: /mnt/lst/usb: device is busy.         (In some cases useful info about processes that use

the device is found by lsof(8) or fuser(1))

如果是有经验的人,会想到刚刚是否有开了别的程序,比如用winscp访问了该文件夹,又或者某个用户正在改设备挂载的目录下而没有退出等等。退出相应设备挂载目录后,就可以正常卸载了。这样比较安全。然后有时候确实不知道是什么进程占用了,那该怎么办呢。这时候要用到一个linux下的工具叫fuser

root@moyue-virtual-machine:/mnt/lst# fuser --help

fuser: Invalid option --help

Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...

fuser -l

fuser -V

Show which processes use the named files, sockets, or filesystems.

-a,--all              display unused files too

-i,--interactive      ask before killing (ignored without -k)

-k,--kill             kill processes accessing the named file

-l,--list-signals     list available signal names

-m,--mount            show all processes using the named filesystems or block device

-M,--ismountpoint     fulfill request only if NAME is a mount point

-n,--namespace SPACE  search in this name space (file, udp, or tcp)

-s,--silent           silent operation

-SIGNAL               send this signal instead of SIGKILL

-u,--user             display user IDs

-v,--verbose          verbose output

-w,--writeonly        kill only processes with write access

-V,--version          display version information

-4,--ipv4             search IPv4 sockets only

-6,--ipv6             search IPv6 sockets only

-                     reset options

udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

从帮助文档可以看出来,我们可以使用-m 参数来查看设备的占用情况

root@moyue-virtual-machine:/mnt/lst# fuser -mu usb

/mnt/lst/usb:        10926c(root)

可以看出该,有一个root用户占用了该设备,进程ID为10926,如果直接杀掉进程也是可以的,但是不是很安全,毕竟害怕数据丢失。

root@moyue-virtual-machine:/mnt/lst# ps xa | grep 10926

10926 pts/1    Ss+    0:00 bash

可以看出这是一个bash进程,应该知道cd命令为bash内置程序

查找出来并且退出该目录就可以正常卸载了。

如果真的找不到了,又要卸载设备,最好先执行下sync命令。然后再杀死那个进程,其实直接用fuser -k也可以杀进程,并且如果希望杀掉进程前询问你的话可以加个-i参数,如下

root@moyue-virtual-machine:/mnt/lst# fuser -ki usb /mnt/lst/usb:        10926c Kill process 10926 ? (y/N) y 然后再去卸载就会发现可以正常卸载设备了



推荐阅读
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • Docker 环境下 MySQL 双主同步配置指南
    本文介绍了如何在 Docker 环境中配置 MySQL 的双主同步,包括目录结构的创建、配置文件的编写、容器的创建与设置以及最终的验证步骤。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
author-avatar
蓝社
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有