指南/磁盘推不出

Mac推不出外置驱动器?如何找出是什么在使用它

Atta 🐬

Vitals创始人

发布于

简要回答

只要有进程在磁盘上打开着文件或文件夹,磁盘就推不出。退出用过它的App,关闭停在它的文件夹中的“终端”窗口,然后再试。如果还是不行,在“终端”中运行sudo lsof /Volumes/NAME,列出占用它的每个进程,再退出它们。“聚焦”和时间机器会自行放手,通常不到一分钟。“强制推出”是最后的办法,因为正在写入的文件可能会损坏。Vitals是一款Mac活动监视器和进程检查器,会列出每个磁盘及在上面占用文件的App,它的“退出并推出”会在你确认后退出它们并推出磁盘。

如何用“终端”找出是什么在使用磁盘

  1. 01 打开“终端”,它在“应用程序”→“实用工具”中。
  2. 02 输入sudo lsof和一个空格,然后把磁盘从访达拖到窗口中以填入路径,再按下Return键。
  3. 03 输入你的密码。每一行是一个打开的文件:第一列是进程,第二列是它的PID,最后一列是文件。
  4. 04 退出列表中的每个App。对于没有窗口的进程,用它的PID运行kill <PID>。
  5. 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会说明漏掉了多少。
  • “打开的文件”在窗口中,不在菜单栏下拉面板中。
购买Vitals $29 首发期间$29即可终身使用,首发期后$49,一次付款,14天内可退款。或一年更新$15。

常见问题

为什么我的Mac提示磁盘未推出,因为一个或多个程序可能正在使用它?

还有进程在磁盘上打开着文件或文件夹。可能是某个App、“终端”窗口、“聚焦”或时间机器。运行sudo lsof /Volumes/NAME即可看到是哪个。

在Mac上,如何找出是哪个程序在使用我的外置驱动器?

在“终端”中运行sudo lsof /Volumes/NAME。每一行是一个进程和它在磁盘上打开的一个文件。Vitals在“打开的文件”中按App显示同样的内容。

在Mac上强制推出磁盘安全吗?

只有没有东西在写入时才安全。“强制推出”可能会让文件不完整,或让资料库需要修复。先找到占用者并退出它。

能直接拔下驱动器吗?

装载着的时候不行。macOS可能还在写入,之后磁盘可能需要修复。先推出它,或先把Mac关机。

为什么“聚焦”在使用我的外置驱动器?

“聚焦”会为磁盘建立索引,以便搜索。它会自行完成。要彻底停止,在“系统设置”→“聚焦”→“搜索隐私”中添加这个磁盘。

有没有能显示是什么让磁盘无法推出的App?

Vitals可以。它的“打开的文件”部分列出每个磁盘及在上面占用文件的App,“退出并推出”会在确认后退出它们并推出磁盘。

术语表中的相关条目

更多指南