指南/磁盘推不出
Mac推不出外置驱动器?如何找出是什么在使用它
简要回答
只要有进程在磁盘上打开着文件或文件夹,磁盘就推不出。退出用过它的App,关闭停在它的文件夹中的“终端”窗口,然后再试。如果还是不行,在“终端”中运行sudo lsof /Volumes/NAME,列出占用它的每个进程,再退出它们。“聚焦”和时间机器会自行放手,通常不到一分钟。“强制推出”是最后的办法,因为正在写入的文件可能会损坏。Vitals是一款Mac活动监视器和进程检查器,会列出每个磁盘及在上面占用文件的App,它的“退出并推出”会在你确认后退出它们并推出磁盘。
如何用“终端”找出是什么在使用磁盘
- 01 打开“终端”,它在“应用程序”→“实用工具”中。
- 02 输入
sudo lsof和一个空格,然后把磁盘从访达拖到窗口中以填入路径,再按下Return键。 - 03 输入你的密码。每一行是一个打开的文件:第一列是进程,第二列是它的PID,最后一列是文件。
- 04 退出列表中的每个App。对于没有窗口的进程,用它的PID运行
kill <PID>。 - 05 在访达中再次推出磁盘,或用同一路径运行
diskutil eject。
如果列表是空的,磁盘却仍推不出,等一分钟再试:macOS可能还在完成写入。mdutil -s加上磁盘路径,可以查看这个磁盘是否打开了“聚焦”索引。
macOS拒绝推出正在使用的磁盘,因为在程序还在用时卸载磁盘,可能会丢掉程序正在写入的内容。访达中的提示有时会说出是哪个App,但常常不说。下表列出常见的占用者,以及怎样让它们放手。
是什么让磁盘无法推出
| 占用者 | 怎么判断 | 怎样让它放手 |
|---|---|---|
| 打开了文稿的App | 这个App出现在lsof列表中,或访达说出了它 | 关闭文稿,或退出这个App |
| “终端”窗口 | 列表中有zsh这样的shell,FD列为cwd | 在那个窗口中运行cd ~,或关闭它 |
| 聚焦 | 列表中有mds或mds_stores | 等待,或在“系统设置”→“聚焦”→“搜索隐私”中添加这个磁盘 |
| 时间机器 | 列表中有backupd,或菜单栏显示正在备份 | 等备份完成,或选取“跳过此备份” |
| 快速查看或“预览” | 列表中有QuickLookUIService或Preview | 关闭预览,或退出“预览” |
| 磁盘上有“照片”或“音乐”的资料库 | 列表中有Photos、photolibraryd或Music | 退出这个App,再给它的帮助程序几秒钟 |
| 从这个磁盘运行的App | App本身的路径在这个磁盘上 | 退出这个App |
推出提示是什么意思
访达会显示两种提示之一。“磁盘未推出,因为一个或多个程序可能正在使用它”表示有进程在磁盘上打开着东西,而macOS没说是哪个。如果它知道是哪个App,提示中就会改为说出这个App。两种情况下,“重试”都是安全的,而“强制推出”会不管打开着什么都卸载磁盘。
“强制推出”安全吗?
“强制推出”会在程序还在使用时卸载磁盘。只是在读取的文件不会受损。正在写入的文件可能会不完整,打开着的“照片”“音乐”或Final Cut资料库下次打开时可能需要修复。先找到占用者,确定它退不出之后再用,不要提前用。
用磁盘工具或diskutil推出
磁盘工具的“卸载”和“推出”遵循和访达相同的规则,有东西占用磁盘时也会同样失败。在“终端”中,diskutil eject /Volumes/NAME会推出磁盘,diskutil unmountDisk force /Volumes/NAME会强制推出,风险和“强制推出”一样。
看起来没有东西在使用它时
退出登录再重新登录,这会退出你的所有App和帮助程序,然后再推出。如果这样可以,说明是某个后台帮助程序占用了磁盘。如果还不行,就把Mac关机,关机后再拔下磁盘:关机会安全地卸载所有磁盘。
如何避免这种情况
大多数推不出的情况都来自那么几个习惯。
- 推出磁盘前,先退出在上面打开过文件的App
- 别让“终端”窗口停在磁盘的文件夹中,或者先关闭它们
- 如果你从不搜索这个磁盘,就把它添加到“聚焦”的“搜索隐私”中
- 等时间机器备份完成后再拔下它的磁盘
Vitals能多做什么
Vitals会说出是什么占用了磁盘,并替你推出。
- “开发者”标签页中的“打开的文件”:每个磁盘及上面打开了多少文件,以及“已使用”或“可以推出”
- 磁盘下面是占用它的每个App和程序,附上它工作所在的文件夹和打开的文件
- “退出并推出”:Vitals说出是哪些App,先问你,像⌘Q那样退出它们,然后推出磁盘
- “聚焦”和时间机器按正在做的事显示,在它们放手期间会再试
须知
- Vitals不会强制推出。如果有App退不出,它会说出是哪个,并让磁盘保持装载。
- 没有打开“完整系统指标”时,macOS自己的进程打开的文件不会列出,Vitals会说明漏掉了多少。
- “打开的文件”在窗口中,不在菜单栏下拉面板中。
常见问题
为什么我的Mac提示磁盘未推出,因为一个或多个程序可能正在使用它?
还有进程在磁盘上打开着文件或文件夹。可能是某个App、“终端”窗口、“聚焦”或时间机器。运行sudo lsof /Volumes/NAME即可看到是哪个。
在Mac上,如何找出是哪个程序在使用我的外置驱动器?
在“终端”中运行sudo lsof /Volumes/NAME。每一行是一个进程和它在磁盘上打开的一个文件。Vitals在“打开的文件”中按App显示同样的内容。
在Mac上强制推出磁盘安全吗?
只有没有东西在写入时才安全。“强制推出”可能会让文件不完整,或让资料库需要修复。先找到占用者并退出它。
能直接拔下驱动器吗?
装载着的时候不行。macOS可能还在写入,之后磁盘可能需要修复。先推出它,或先把Mac关机。
为什么“聚焦”在使用我的外置驱动器?
“聚焦”会为磁盘建立索引,以便搜索。它会自行完成。要彻底停止,在“系统设置”→“聚焦”→“搜索隐私”中添加这个磁盘。
有没有能显示是什么让磁盘无法推出的App?
Vitals可以。它的“打开的文件”部分列出每个磁盘及在上面占用文件的App,“退出并推出”会在确认后退出它们并推出磁盘。
术语表中的相关条目
更多指南
- Mac为什么这么卡
- 是什么在消耗Mac的电量
- 哪个App在占用CPU或内存
- Mac为什么无法睡眠
- Chrome占用内存过多
- Mac风扇为什么这么吵
- 如何控制Mac的风扇转速
- 如何释放Mac的内存
- Docker占用内存过多
- 如何停止Docker容器
- Mac音量混音器
- Cursor占用CPU过高
- Claude Code占用内存过多
- Claude Code和Codex的用量限额
- Claude App占用CPU过高
- Codex占用CPU过高
- Ollama占用内存过多
- 通过SSH使用Vitals
- 哪个App在使用某个文件
- 活动监视器替代品
- iStat Menus替代品
- Stats替代品
- Mac上的任务管理器
- 最佳Mac系统监控工具
- 最佳Mac菜单栏监控工具
- 最佳Mac音量混音器
- Mac上的htop
- Mac版Process Explorer
- 最好用的Mac进程监控工具
- 最好用的Mac温度监控工具