Mac 磁盘“正在使用”无法推出怎么办

当你推出外置磁盘时,macOS 回答“磁盘未能推出,因为一个或多个程序可能正在使用它”,说明这个磁盘上仍有文件被打开。macOS 拒绝卸载,是为了不让数据在写入途中丢失。解决办法始终如一:找出占用磁盘的东西,关闭它,再次推出;强制推出只作为最后手段。
下面介绍如何用 macOS 自带的工具找出元凶,以及 Folia Files 如何直接告诉你它的名字。
macOS 为什么说磁盘正在使用
只要有进程在磁盘上打开着文件、文件夹或工作目录,磁盘就无法卸载。常见的原因有:
- 打开了磁盘上文稿的 App:播放器里的视频、编辑器里的项目、照片图库。
- 聚焦(Spotlight):正在为刚发现的磁盘建立索引(进程名为
mds_stores或mdworker)。刚接上的磁盘常常会忙上几分钟。 - 时间机器:正在向这个磁盘备份或检查它。
- 快速查看:正在为你刚浏览过的文件生成缩略图。
- 终端窗口:当前文件夹位于该磁盘上。看起来什么都没打开,其实是 shell 本身占着磁盘。
- 仍在进行的拷贝:有时在另一个 App 里。
访达有时会在提示中写出 App 的名字,但更多时候只有一句笼统的提示,看不出是谁。
先关掉明显的,再试一次
- 存储并关闭磁盘上的所有文稿。如果不确定是哪个 App 在用,就退出打开过该磁盘文件的 App。
- 关闭显示该磁盘的访达窗口。在终端里,对每个在该磁盘上工作的窗口输入
cd ~。 - 如果磁盘刚刚接上,或时间机器正在备份,请等一分钟。
- 再次推出:在访达边栏中选中磁盘并按 ⌘E,或点按名称旁的推出按钮。
大多数情况到这里就解决了。如果磁盘仍然拒绝推出,就来精确查明是谁占着它。
用终端找出正在使用磁盘的程序
lsof(list open files,列出打开的文件)是 macOS 自带的。打开终端,输入下面的命令,把 MyDisk 换成访达中显示的磁盘名称:
lsof /Volumes/MyDisk
指定磁盘的装载点后,lsof 会列出该磁盘上所有打开的文件。如果名称中有空格,请加上引号:lsof "/Volumes/My Disk"。
如何看结果
每一行是一个打开的文件。需要关注的列:
- COMMAND:进程名,例如
QuickTime、zsh或mds_stores。 - PID:进程编号,活动监视器中显示的也是它。
- FD:
cwd表示该进程的当前文件夹在磁盘上(通常是终端窗口)。 - NAME:文件本身。
如果什么都没显示,磁盘却仍然拒绝推出,就用 sudo lsof /Volumes/MyDisk 再运行一次并输入密码:聚焦和时间机器等系统服务以另一个用户身份运行,只有管理员才能看到它们打开的文件。
找到之后,先存储工作,再正常退出该 App,然后再次推出。不要强行结束正在向磁盘写入的进程:拒绝推出所防止的,正是这种数据丢失。
不想输入命令,就用活动监视器
在活动监视器中连按一个进程,打开列出其打开的文件和端口的标签页:如果其中出现 /Volumes/MyDisk 下的路径,就是它。这样可行,但你得猜该查哪个进程,一个一个地看。lsof 一次就能给出答案。
如果是聚焦或时间机器
如果 lsof 显示 mds、mds_stores 或 mdworker,说明聚焦正在为磁盘建立索引。等它完成;如果是从不需要搜索的磁盘,可以用 sudo mdutil -i off /Volumes/MyDisk 关闭索引(或在系统设置中把磁盘加入聚焦的隐私列表)。
如果显示 backupd,说明时间机器正在使用这个磁盘。等备份完成,或在推出前从时间机器中停止它:备份进行到一半时拔下备份磁盘,可能会损坏备份。
强制推出:何时用,有何风险
实在没办法时,访达可能会提供强制推出,终端也能做到:
diskutil unmount force /Volumes/MyDisk
强制推出会在 App 不知情的情况下关闭文件:尚未存储到磁盘的内容会丢失,正在进行的拷贝会被中断。只对确定没有任何程序在写入的磁盘使用,例如卡住的磁盘映像;切勿用于正在拷贝或备份的磁盘。
让 Folia Files 告诉你是谁占着磁盘
Folia Files 是一款 macOS 文件管理器,它把推出失败当作一个需要回答的问题,而不是死胡同。当磁盘无法推出时,横幅会显示 无法推出“MyDisk”,并用一看就懂的名字列出正在使用它的东西:App 本身、聚焦(正在索引磁盘)、Time Machine 或 快速查看。消息下方有:
- 退出“App”:退出占用磁盘的 App(最多提供两个),然后自动再次推出。
- 重试:只是再试一次,例如在聚焦完成之后。
- 强制推出…:先请你确认,并说明会有什么风险。

要一次推出全部,在左侧边栏中右键点按一个磁盘,选择 推出 3 个磁盘(数字随已连接的磁盘而变),或使用菜单栏中 Folia Files 菜单里的同一命令。它推出外置磁盘和磁盘映像,从不推出网络共享。
睡眠前推出(网站版)
在笔记本电脑睡眠时拔下磁盘,通常会引来 macOS 关于磁盘未正确推出的警告。在 设置 › 文件与网络 › 外置磁盘 中打开 睡眠前推出外置磁盘,唤醒后重新装载,Mac 会在睡眠前卸载这些磁盘(仍保持连接),并在唤醒后重新装载。那一刻正在使用的磁盘会保持装载,唤醒后 Folia Files 会告诉你。

指出占用磁盘的程序、强制推出… 和睡眠前推出,都属于 Folia Files 的网站版。App Store 版的沙盒看不到其他 App 打开的文件:在那里,横幅显示 macOS 的提示和 重试 按钮,要找出元凶仍需使用终端中的 lsof。
快速清单
- 存储并关闭磁盘上的文稿;在终端中输入
cd ~。 - 如果聚焦或时间机器可能在工作,等一分钟。
- 先运行
lsof /Volumes/MyDisk,再运行sudo lsof /Volumes/MyDisk,看是谁占着它。 - 退出该 App,再按 ⌘E 推出。
- 只对没有程序在写入的磁盘使用强制推出。
如果你更想不打开终端就知道答案,下载 Folia Files:下一个拒绝推出的磁盘会告诉你原因。


