macOS“磁盘正在使用”错误:排查指南
一份修复 Mac 上“磁盘正在使用”错误的全面指南。一站式涵盖所有原因和解决方案。
你点按外置驱动器上的推出,macOS 却说不行。“磁盘未能推出,因为可能有一个或多个程序正在使用它。”你已经关掉了所有正在处理的东西。没有任何明显的程序在运行。到底是什么在使用你的磁盘?
本指南涵盖“磁盘正在使用”错误的每一个常见原因,以及如何逐一修复。我们先从快速修复开始,再逐步深入到更复杂的解决方案。
先试试快速修复
在排查之前,先试试这些:
关闭所有显示着该驱动器的访达窗口。 这是最常见的肇事者。如果有任何访达窗口打开在驱动器上的某个文件夹,甚至只是在边栏中选中了该驱动器,访达就会对它持有一把锁。关闭那些窗口,或切换到别的位置。
等几秒钟再试。 有时某个进程只是在收尾。聚焦可能正在结束索引,或某个应用程序可能正在保存一个缓存文件。给它 30 秒,再试着推出。
试着从边栏而不是桌面推出。 点按访达边栏中驱动器名称旁边的推出图标。一些用户报告说,当右键点按桌面图标不奏效时,这样做却管用。
如果这些都不奏效,那就该弄清究竟是什么在占用着驱动器了。
找出阻止的进程
macOS 不会告诉你是哪个程序在使用驱动器,但 Terminal 会。打开 Terminal 并运行:
sudo lsof /Volumes/YourDriveName
将“YourDriveName”替换为驱动器的实际名称。如果它含有空格,就用引号把路径括起来:sudo lsof “/Volumes/My Drive”
你需要输入密码。输出会显示每一个在该驱动器上打开着文件的进程。查看 COMMAND 列以了解进程名称。
你会看到的常见进程:
mds、mds_stores、mdworker:聚焦索引Finder:一个访达窗口或文件操作QuickLookUIService:缩略图或预览生成backupd:正在进行的时间机器备份fsevents:文件系统变化监测bash或zsh:一个当前目录位于驱动器上的 Terminal shell
聚焦索引
聚焦是推出问题最常见的原因。当你连接外置驱动器时,macOS 会立即开始为它编制索引,以便你能搜索其内容。所涉及的进程(mds、mds_stores、mdworker)在工作时会保持文件打开。
等待索引完成。 在一个新的或有变动的驱动器上,索引可能需要从几分钟到几小时不等,取决于上面有多少文件。如果索引处于活动状态,你会在聚焦的搜索结果中看到一个进度条。
为这个宗卷禁用索引。 如果你不需要用聚焦搜索这个驱动器,你可以把它排除:
sudo mdutil -i off /Volumes/YourDriveName
这告诉聚焦忽略该驱动器。运行该命令后,再试着推出。
添加到聚焦隐私列表。 要获得永久的解决方案,打开系统设置,前往 Siri 与聚焦,滚动到聚焦隐私,并添加你的驱动器。在你把它从这个列表中移除之前,它都不会再被编制索引。
终止聚焦进程。 作为最后手段,你可以在活动监视器中强制退出 mds 进程。搜索“mds”,选择每一个正在访问驱动器的进程,并点按 X 按钮来强制退出。聚焦会自动重启,但你的驱动器应该会被释放。
访达与文件浏览
访达会以一些不那么显眼的方式占用驱动器。
关闭所有访达窗口。 即便没有窗口明显地显示着你的驱动器,访达也可能在一个后台标签页中打开着它,或将它作为某个窗口的默认位置。
重新打开访达。 按住 Option 键并右键点按程序坞中的访达图标,然后选择“重新打开”。这会关闭所有访达窗口,并释放访达持有的任何锁。
检查拷贝操作。 如果你最近往驱动器拷贝过文件、或从驱动器拷出过文件,访达可能仍在后台清理。打开访达,看看是否还有正在进行的进度条。
快速查看与预览
当你浏览文件时,macOS 会为它们生成缩略图和预览。快速查看系统(QuickLookUIService、quicklookd)即便在你离开文件夹之后,也可能保持文件句柄打开。
重置快速查看。 运行这条命令以清除快速查看的缓存并重启它:
qlmanage -r cache
终止快速查看进程。 在活动监视器中搜索“QuickLook”,并强制退出任何正在访问驱动器的进程。
Terminal 与 shell 会话
如果你用 Terminal 进入了外置驱动器的目录,那个 shell 会话就会让该驱动器处于使用中。进程名称会显示为 bash、zsh,或你正在运行的任何 shell。
检查你的当前目录。 在每个 Terminal 窗口中运行 pwd 以查看你所在的位置。如果它显示的是你外置驱动器上的某个路径,运行 cd ~ 回到你的个人文件夹。
关闭 Terminal 窗口。 如果你有多个 Terminal 窗口或标签页,关闭它们,或把每一个都切换到驱动器以外的位置。
打开着最近文件的应用程序
许多应用程序会保留对最近打开文件的引用。即便你关闭了一个文稿,应用程序也可能仍与它保持着连接。
退出那些访问过驱动器上文件的应用程序。 想想你从驱动器打开过哪些文稿,并彻底退出那些应用程序(Command+Q),而不只是关闭它们的窗口。
检查“最近使用的项目”。 一些 App 会在一个菜单中列出最近打开的文件。打开那个菜单可能会重新建立与文件的连接。如果某个 App 看似是肇事者、但退出它却没用,试着把它从程序坞中移除,然后退出它,再重新打开它。
时间机器
如果你的驱动器是一个时间机器备份驱动器,backupd 进程会管理备份,并可能在备份操作期间及之后占用该驱动器。
等待备份完成。 检查菜单栏中的时间机器图标,看看是否有备份正在进行。等它完成后再试着推出。
跳过当前备份。 点按时间机器图标并选择“跳过此次备份”,以取消一个进行中的备份。等一分钟让它清理,然后再试着推出。
临时停用时间机器。 前往系统设置,点按时间机器,并将它关闭。片刻之后,驱动器应该会被释放。
系统进程与守护进程
一些系统级进程会监视已装载宗卷上的变化。这些包括 fsevents、fseventsd 以及各种内核任务。
这些通常不会单独阻止推出,但它们可能与其他问题叠加。如果你已处理了其他一切、在 lsof 输出中却仍看到系统进程,试试:
注销再登录。 这会重启大多数用户级进程,并能清除顽固的锁。
重新启动你的 Mac。 如果其他办法都不奏效,重启肯定会释放驱动器。完全关机,然后断开驱动器,再启动回来。
何时强制推出
强制推出告诉 macOS 不管什么在访问驱动器都把它卸载。你可以通过按住 Option 键并右键点按驱动器、然后选择“强制推出”来做这件事。
如果阻止的进程只是在从驱动器读取,这通常是安全的。如果有东西正在积极写入,那就更有风险。如果你不确定,请先试着辨认并退出阻止的进程。
绝不要在一个可见的拷贝或存储操作进行期间强制推出(或物理断开)驱动器。那正是文件损坏的由来。
预防今后的问题
把驱动器排除在聚焦之外。 如果你不搜索外置驱动器,就把它们添加到聚焦隐私列表。推出会近乎瞬时。
推出前关闭 App。 养成在尝试推出之前退出那些访问过驱动器上文件的应用程序的习惯。
使用边栏的推出按钮。 养成使用访达边栏而非桌面图标的习惯。一些用户觉得它更可靠。
让你的 Terminal 保持整洁。 如果你使用 Terminal,要留意你身处哪个目录。别让 shell 停留在外置驱动器的目录里。
更好的工作流程
诊断推出问题需要理解 Unix 进程、记住 Terminal 命令,有时还得猜测哪里可能出了错。对于本该和拔个驱动器一样简单的事来说,这摩擦实在不小。
Ejecta 消除了那份摩擦。它驻留在菜单栏中,告诉你哪些驱动器可以推出、哪些被阻止,明确辨认出究竟是什么在阻止它们,并让你一键解决问题。无需 Terminal,无需活动监视器,无需猜测。
底层的问题(macOS 含糊的错误消息和缺乏诊断工具)不会消失。但你不必每次需要拔驱动器时都去破解同一个谜题。
如果你不想每次都动用终端,Ejecta 会准确告诉你是哪个进程在占用硬盘——只需在菜单栏中点击一下即可退出它。
立即购买 — $9.99