lsof
确实是您最好的选择。最快和最简单的方法是这样的:
sudo lsof /Volumes/myDrive
运行可能需要几分钟,但是一旦完成,它就会为您提供磁盘上打开文件的列表。输出将如下所示:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mds 89 root 19r DIR 52,3 432 2 /Volumes/Photos
mds 89 root 23r DIR 52,3 432 2 /Volumes/Photos
Finder 681 alans 14r DIR 52,3 432 2 /Volumes/Photos
QuickLook 2158 alans 9r REG 52,3 1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG
在这种情况下,QuickLook
打开文件的是应用程序。直接关闭应用程序是解决此问题的最佳方法。但是,这并不总是可能的。例如,QuickLook不会显示为您可以在Dock中找到的应用程序。
如果无法手动关闭该应用程序,则可以使用该kill
命令从命令行终止它。为此,请使用PID
第二列中的ID作为要杀死的ID。从上面的示例可以看出:
kill 2158
请注意,有时这是行不通的,kill
必须使用更具侵略性的形式。这是一系列不断升级的攻击性(使用示例PID 2158):
kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158
一旦进程/应用程序被终止,您应该能够弹出磁盘。
最后一点,lsof
可能需要一两分钟。它也可以挂起,但是您应该至少等待几分钟,然后再决定发生了什么。
另外,有时基本命令sudo lsof /Volumes/myDrive
什么也找不到。如果发生这种情况,请尝试添加+D
参数(即sudo lsof +D /Volumes/myDrive
)。这将对磁盘进行自上而下的扫描。这将花费更长的时间,但是它应该能够拾取导致磁盘无法弹出的所有内容。
(有关其他详细信息,请提示亚历克·雅各布森的帖子。)