快速查看正在扣押你的驱动器
你浏览了一些文件,关闭了文件夹,现在驱动器却无法推出。罪魁祸首很可能是快速查看。这里说明正在发生什么,以及如何修复。
你往外置驱动器拷贝了一些文件。你关闭了访达窗口。你点按推出,macOS 却说不行。你已经五分钟没碰过那个驱动器了。是什么在使用它?
在活动监视器中查找 QuickLookUIService。它很可能就是罪魁祸首。
快速查看在做什么
快速查看是为 macOS 中的文件预览提供支持的系统。在访达中选中一个文件按空格键,就会弹出一个预览窗口。在分栏视图中浏览文件,你会看到缩略图。打开一个存储对话框,那些预览又出现了。快速查看无处不在。
当你浏览一个文件夹时,快速查看会开始为它认为你可能想看的文件生成预览。它会读取文件、提取缩略图,并把它们缓存起来以便日后更快访问。对于图像、PDF、视频和文稿,这意味着打开文件并处理它的内容。
问题在于,快速查看在用完文件之后可能迟迟不释放它们。你已经转到了另一个文件夹。你已经彻底关闭了访达窗口。但 QuickLookUIService 仍在你的外置驱动器上打开着文件句柄。
为什么这会阻止推出
只要有任何进程在驱动器上打开着文件,macOS 就不会让你推出它。这是一项安全功能。如果有东西正在积极读取或写入,推出可能损坏数据或让应用程序崩溃。
此刻快速查看并没有在读取或写入任何重要的东西。它只是攥着一些它已不再需要的文件句柄。但 macOS 不区分“正在积极使用一个文件”和“忘了关闭一个文件”。句柄就是句柄。
结果就是,你因为五分钟前瞥过的几个预览而无法推出驱动器。
如何修复它
快速的修复方法是终止 QuickLookUIService。打开 Terminal 并运行:
killall QuickLookUIService
这会立即终止该进程。下次你需要预览时,macOS 会自动重启它。你的驱动器现在应该能正常推出了。
如果你想更精准一些,可以先确认快速查看就是问题所在:
sudo lsof /Volumes/YourDriveName | grep -i quicklook
如果你在输出中看到 QuickLookUIService,那它就是阻止者。
你也可以重置快速查看的缓存,这有时对顽固的问题有帮助:
qlmanage -r cache
这会清除缩略图缓存并重启快速查看系统。
为什么视频是最严重的肇事者
快速查看在攥着视频文件不放方面尤其积极。当你预览一个视频时,快速查看会打开该文件并保持打开,以防你想拖动浏览或继续观看。即便在你关闭了预览窗口之后,那个文件句柄也往往依然存在。
如果你的外置驱动器上有视频文件,而你预览过其中任何一个(无论是有意的,还是在分栏视图中浏览时无意的),那么快速查看在阻止推出的概率就很高。
同样的问题在较小程度上也影响大图像和 PDF。基本上,任何快速查看需要真正动手生成预览的文件类型都会如此。
预防这个问题
你无法在不失去大量 macOS 功能的情况下真正禁用快速查看。但你可以把它对外置驱动器的干扰降到最低。
浏览外置驱动器时切换到列表或图标视图。 分栏视图会为选中的文件自动触发快速查看。列表视图和图标视图不会生成预览,除非你明确请求。
避免按空格键预览外置驱动器上的文件。 如果你需要查看一个文件,直接打开它,而不要使用快速查看。
浏览后给它一点时间。 快速查看最终会自行释放文件句柄。如果你刚浏览完外置驱动器上的文件,请等待 30 秒再试着推出。
推出前关闭所有访达窗口。 即便访达窗口不再显示你的外置驱动器,它也可能残留着早先浏览留下的快速查看引用。
这些都算不上好的解决方案。它们是针对一个不能妥善善后的系统进程的变通办法。
真正的修复
快速查看阻止推出令人沮丧的地方在于,你根本无从知道它正在发生。macOS 告诉你“某个东西”在使用驱动器。你关闭了你能想到的一切。驱动器却仍然无法推出。
于是你要么得去猜哪个看不见的后台进程才是罪魁祸首,要么只能动手运行 Terminal 命令去调查。对于拔个驱动器这般家常便饭的事来说,这太荒唐了。
Ejecta 明确告诉你究竟是什么在阻止推出。当 QuickLookUIService 是问题所在时,你会立即看到它。一键退出该进程并释放驱动器。无需猜测,无需 Terminal,也无需担心自己是不是要弄坏什么东西。
快速查看是一项有用的功能,偶尔却会制造不必要的问题。你不该为了应对它不肯释放文件句柄的毛病,而被迫成为一名 Unix 侦探。
如果你不想每次都动用终端,Ejecta 会准确告诉你是哪个进程在占用硬盘——只需在菜单栏中点击一下即可退出它。
立即购买 — $9.99