先用lsof +d "/volumes/硬盘名"定位占用进程,再通过活动监视器退出mds、mdworker、quicklookuiservice、backupd等常见服务;若无效,用kill -term或-kill终止对应pid;还可执行killall批量结束相关进程组。

定位正在读写外接硬盘的进程
Mac系统提示“磁盘正在被使用”时,真正卡住你的往往不是你主动打开的文件,而是后台悄悄运行的索引、预览或同步服务。必须先看清谁在占用,才能精准结束。
打开“终端”,输入:lsof +D "/Volumes/你的硬盘名" → 回车执行(把“你的硬盘名”替换成实际显示在/Volumes下的文件夹名,注意大小写和空格)。
这条命令会列出所有当前访问该硬盘路径的进程。重点关注COMMAND列(如mdworker、QuickLookUIService、backupd、IINA、Dropbox等)和PID列(进程编号)。如果输出为空,说明没有进程正打开具体文件,但可能仍有挂载级锁定——此时跳过本阶段,直接用diskutil卸载整盘。
用活动监视器终止常见占用进程
Spotlight索引(mds/mdworker)、QuickLook预览、Time Machine备份(backupd)这三类进程占了外接硬盘弹出失败案例的80%以上。它们常驻后台,不弹窗、不提示,却死死攥着硬盘句柄。
按Command + 空格打开聚焦搜索 → 输入“活动监视器”并回车启动。
在顶部搜索栏依次输入:mds → 选中结果 → 点击左上角红色叉号 → 在弹出窗口中选择【退出】(不是“强制退出”,避免中断Spotlight全局服务)。
重复操作,分别搜索并【退出】mdworker、QuickLookUIService、backupd。每退出一个,立即回到桌面尝试右键弹出——很多情况下,退出mdworker后图标就消失了。
用终端kill命令终结顽固进程
当活动监视器里找不到对应进程,或lsof显示某PID仍在读写,但该PID在活动监视器中不可见时,说明它可能是子进程或已脱离图形会话。这时必须用kill直击PID。
第一步:从lsof输出中记下目标进程的PID(例如12345)。
第二步:在终端中执行:kill -TERM 12345(把12345换成实际PID)→ 回车。
第三步:若进程未退出,再执行:kill -KILL 12345 → 回车。-KILL信号无法被进程忽略,会立即终止,但可能造成其未保存的数据丢失。
⚠️ 注意:不要对PID小于100的系统核心进程执行kill -KILL,否则可能导致访达崩溃或系统不稳定。
一键终止全部相关进程组
当你反复遇到同一块硬盘被不同进程轮番占用,又不想逐个找PID时,可用killall批量清理关联服务。
在终端中依次执行以下三条命令:
killall mds mdworker
killall QuickLookUIService
killall backupd
每条命令执行后,系统会返回“No matching processes belonging to you were found”或直接无反馈。前者表示该服务当前未运行,后者说明已成功终止。执行完全部三条后,立即前往桌面尝试右键弹出——多数情况此时已可顺利推出。











