如何在 macOS Sequoia 和 Sonoma 上安全推出外置驱动器
Apple 在近期的 macOS 版本中改变了驱动器推出的运作方式。这里说明 Sequoia 和 Sonoma 中有什么不同,以及如何应对常见的推出问题。
如果你最近升级到了 macOS Sequoia 或 Sonoma,你可能注意到推出外置驱动器的感觉不一样了。这并非因为 Apple 重新设计了这个流程,而是因为系统的一些幕后改动影响了驱动器能否推出、以及何时能推出。
Sequoia 和 Sonoma 都对隐私控制、后台进程管理和系统服务引入了改动,从而在驱动器推出方面制造了新的摩擦。这里说明变了什么,以及如何应对。
Sonoma 和 Sequoia 中变了什么
从 Sonoma 起,Apple 扩大了后台进程限制。系统在管理哪些 App 可以运行后台任务、以及这些任务能持续多久方面更为积极。讽刺的是,这意味着一些进程攥着驱动器资源的方式与从前不同了。
Sequoia 在完全磁盘访问权限方面更进一步。App 需要明确的权限才能访问某些文件位置,而系统更严格地强制执行这些权限。当一个系统进程在访问你的外置驱动器时撞上权限边界,它有时会停滞而非干净地失败,从而留下一个打开的文件句柄。
通知系统也变了。在较旧的 macOS 版本中,“磁盘未正确推出”警告出现一次便消失。在 Sequoia 中,系统在警告你这件事上可能更为执着,而且在某些情况下,通知本身就会触发磁盘访问,因为系统在检查驱动器的状态。
系统设置的新位置
如果你在找驱动器和磁盘设置,Apple 又把东西挪了地方。
在 Sequoia 中,磁盘相关的设置位于“系统设置 > 通用 > 储存空间”下。但大多数与推出相关的控制仍在磁盘工具中,它没有太大变化。
至于聚焦排除(推出问题的常见修复方法),前往“系统设置 > Siri 与聚焦 > 聚焦隐私”。如果你经常遇到推出驱动器的麻烦,这是最值得一改、也最有效的设置之一。
Sequoia 上常见的推出问题
cloudd 后台服务通过 CloudKit 处理 iCloud 同步,它可能在 Sequoia 上引发推出问题。这个服务偶尔会持有对外置驱动器上文件的引用,尤其是当外置驱动器恰好是当前活动的访达窗口时,你曾打开过 iCloud 同步的文稿。
如果 cloudd 在阻止你的推出,你可以用以下命令检查:
lsof /Volumes/YourDriveName | grep cloudd
从活动监视器退出 cloudd 会暂时解决它,但该进程会自动重启。把与 iCloud 相关的工作流程从外置驱动器目录中移开,才是更长远的修复办法。
调度中心(在 Ventura 中引入,在 Sequoia 中仍然存在)也可能引发问题。启用时,它会维持对最近窗口及其内容的引用。如果你有一个显示着外置驱动器内容的访达窗口,调度中心可能在你关闭窗口之后仍攥着那个引用。
禁用调度中心(“系统设置 > 桌面与程序坞 > 调度中心”)可以解决这个问题,不过对于一个推出问题来说,这是个简单粗暴的解决方案。
Sonoma 特有的常见推出问题
Sonoma 的小组件系统扩展到了桌面,而如果桌面小组件引用了外置驱动器上的文件、或显示来自外置驱动器的信息,它就可能干扰驱动器推出。
更常见的 Sonoma 问题出在更新后的聚焦上。Sonoma 的聚焦比以往版本索引更多的文件类型和元数据。如果你连接一块含有大量文稿、照片或媒体文件的驱动器,聚焦会工作得更卖力、更久,让驱动器长时间处于忙碌状态。
Sonoma 还改变了 Terminal 处理宗卷路径的方式。一些使用 /Volumes/DriveName 路径的旧脚本可能表现不同。如果你有自动装载或访问外置驱动器的脚本,升级后请测试它们。
两个版本上都可靠的推出方法
无论你用的是哪个 macOS 版本,下面这套流程都一贯有效:
- 关闭任何显示着驱动器内容的访达窗口
- 退出任何你在用其处理驱动器上文件的应用程序
- 等待十秒钟,让后台进程释放
- 右键点按桌面上或访达边栏中的驱动器图标,并选择“推出”
如果那失败了,试试 Terminal:
diskutil unmount /Volumes/YourDriveName
如果 Terminal 也失败了,检查是什么在占用驱动器:
lsof /Volumes/YourDriveName
省去手动步骤: Ejecta 会准确告诉你是哪个进程在占用硬盘——只需在菜单栏中点击一下即可退出它。 了解更多 →
权限与完全磁盘访问权限
Sequoia 和 Sonoma 对哪些程序能访问你的驱动器都管得更严。如果你使用 Terminal 或第三方工具来管理驱动器,请确保 Terminal(或你偏好的终端 App)在“系统设置 > 隐私与安全性 > 完全磁盘访问权限”中拥有完全磁盘访问权限。
没有完全磁盘访问权限,lsof 命令不会向你显示所有使用该驱动器的进程。你会得到一份可能遗漏了真正阻止者的不完整列表。
这项权限要求也是为什么一些较旧的驱动器实用工具在升级到 Sonoma 或 Sequoia 后停止工作。它们需要更新以请求新的权限。
Apple 应该修复什么
macOS 上核心的推出体验多年来都没有实质性的改善。错误消息仍然说“磁盘未能推出,因为可能有一个或多个程序正在使用它”,却不告诉你是哪些程序。这在 Catalina 中毫无帮助,在 Sequoia 中依然毫无帮助。
Apple 掌握着这个信息。系统明明确切知道哪些进程在打开着文件句柄。它只是不把那个信息呈现给用户。
在 Apple 修复这一点之前,Ejecta 填补了这一空白。它在 macOS Sonoma 和 Sequoia 上都能工作,辨认出阻止你驱动器的具体进程,并让你直接退出它们。它能应对随这些操作系统版本而来的新系统服务和权限要求,这样你就不必去琢磨到底是 cloudd、调度中心,还是其他什么新的后台进程才是罪魁祸首。
升级你的 Mac 不该让基本任务变得更难。推出一个驱动器,已经是再基本不过的事了。
如果你不想每次都动用终端,Ejecta 会准确告诉你是哪个进程在占用硬盘——只需在菜单栏中点击一下即可退出它。
立即购买 — $9.99