该卷当前正在使用中,因此无法弹出


100

使用外部USB备份磁盘后,我要彻底卸载驱动器。当按下“弹出”按钮时,Finder会提示我以下消息:

  • 该卷当前正在使用中,无法弹出。

要么

  • 磁盘“ Diskname”没有弹出,因为一个或多个程序正在使用它

或尝试使用终端时: umount /Volumes/Diskname

  • umount(/ Volumes / Diskname):资源繁忙-尝试'diskutil unmount'

据我所知,我没有使用该磁盘,但是Finder表示可以,所以我一定是错的。我更喜欢干净地卸下驱动器。由于我正在执行多项任务,因此不建议注销和登录,就像安装第三方软件一样。

终端命令lsof可能在这里有用,但是我个人认为对于这样一个“简单”的问题来说太复杂了,老实说,我不知道如何正确使用它。

我的问题:我如何知道驱动器正在使用什么程序,以便我可以正确退出该程序并弹出驱动器?

该卷当前正在使用中,因此无法弹出。 没有弹出磁盘“ Camel”,因为一个或多个程序正在使用它。 磁盘“ Mammtoh”未弹出,因为一个或多个程序... xkcd


2
“据我所知,我没有使用此磁盘,但是Finder表示可以,所以我一定是错的。” 您对机器过于信任。;-)通常,计算机是错误的,而我们人类是正确的。
Nicolas Barbulesco 2014年

所以你说的是我是对的?;)
CousinCocaine14年


2
如果是Spotlight的罪魁祸首,请为自己省些重复:apple.stackexchange.com/a/211616/15417
John2095

Answers:


130

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)。这将对磁盘进行自上而下的扫描。这将花费更长的时间,但是它应该能够拾取导致磁盘无法弹出的所有内容。

有关其他详细信息,请提示亚历克·雅各布森的帖子


1
我也发现了这一点,但我希望有人有一个非终端解决方案。如果没有,您将获得加分;)
CousinCocaine


3
→保罗:我建议您将建议的命令改进为:/usr/bin/sudo lsof /Volumes/myDrive
2014年

3
哦,太好了,我在没有sudo的情况下执行了lsof,结果却完全不同。
Alper 2015年

2
是的,在很多情况下绝对需要sudo。就我而言,这表明这是由于Spotlight试图对磁盘进行索引,因此解决方案是禁用磁盘的Spotlight,然后手动停止/重新启动Spotlight。
汤姆(Tom),

30

你试过了$ diskutil unmount /Volumes/Diskname吗?

还是$ diskutil unmount force /Volumes/Diskname

联机帮助页所指出:

由于Mac OS X的复杂性和交织性,umount可能经常失败。建议改用diskutil(1)(如“ diskutil unmount / mnt”所示)。

如果卷名中包含空格,请确保使用来转义空格\,例如:

$ diskutil unmount /Volumes/Disk\ Name

或使用引号避免混淆。

$ diskutil unmount "/Volumes/Disk Name"

1
我相信我尝试了一下,但没有成功。但是下次我会再试一次,并相应地更新我的帖子。
CousinCocaine 2014年

您的示例使用引号而不是撇号。这是一件好事。
Nicolas Barbulesco 2014年

1
@NicolasBarbulesco:感谢您指出,我对答案进行了更正。接得好!
杰森·罗宾逊

1
正常工作-> sudo diskutil卸载力/卷/磁盘名
tgkprog 2015年

1
@tgkprog很高兴听到这个消息,也感谢您的sudo命令,它也可能对其他人有所帮助。
杰森·罗宾逊

15

您的问题可能是由以下过程引起的  mds :Spotlight索引磁盘。

我有此问题,但尚未找到解决方案。


这是禁用/重新启用聚光灯索引的方法:iclarified.com/49187/…–
rstackhouse

我还发现使用它的mds服务。我试图使用“ sudo mdutil -i off / Volumes / 16GB”禁用闪存驱动器的mds服务,但它也没有帮助。我必须在FInder上使用“ Option + Click”重新启动Finder。
阿鲁娜

6

您可以尝试捐赠软件应用程序“ What's Keeping me? ”,该程序显示使用卷/文件夹/文件的进程/应用程序。

该程序已经由Mac OS X 10.6 Snow Leopard的开发人员认证,但是此应用程序的RoaringApps页面列出该程序在OS X 10.7 Lion和OS X 10.8 Mountain Lion上都可以正常运行。

关于什么让我着迷?

您是否曾经遇到过因某些原因而无法清空垃圾箱或弹出磁盘的问题?通常的原因是因为某些应用程序打开了文件,因此您无法摆脱磁盘或丢弃文件。这就是为什么我们制作了《保持我的东西》!What's Keeping Me将识别使该项目保持打开状态的应用程序。然后,您可以使用What's Keeping Me来退出有问题的应用程序(或在需要时将其杀死),以便执行任务。What's Keeping Me包含Automator工作流程,因此您也可以直接从Finder执行搜索!


1
这看起来像有效的软件,但我确实更喜欢OS X本机解决方案。
CousinCocaine

母语是指Apple提供的东西吗?GUI前端没有类似的东西。另外,WKM已经存在了几年。
MK

感谢您的加入。母语不是正确的词,我的意思是“非第三方”。WKM是一个不错的解决方案,但是我个人更喜欢lsof。
CousinCocaine

刚刚在High Sierra中测试了该应用程序,它仍然可以正常工作。它也是64位的。
dianeoforegon

4

尽管确保该卷上没有打开的文件,但我还是收到了此消息。我使用“ 为什么不卸载”(一种可以指示磁盘上打开的文件的GUI工具)进行了检查。

就我而言,这表明文件系统已损坏。运行“磁盘工具”(或者如果还不够,请使用DiskWarrior)解决了问题,并使磁盘可以再次弹出。


1
就我而言,系统没有损坏。
CousinCocaine 2014年

似乎不太可能。更有可能的是Spotlight或某些其他应用程序或服务已在磁盘上锁定。
汤姆(Tom),

3

命令行解决方案和“什么让我保持成功”都很好。

回顾一下,终端中的命令行为:

lsof | grep /Volumes/myDrive

GUI应用程序是什么让我保持活力,可从Hamsoft Engineering获得

进行相同搜索的两个屏幕截图。

命令行输出 什么让我着迷的GUI

我更喜欢命令行,因为它一直都在您身边。另一方面,如果您安装了What's Keeping Me,则可以更快,更轻松地使用它。


3

注意:fseventer在OS X 10.10 Yosemite和开发人员页面http://www.fernlightning.com脱机之前,该方法 一直可用。因此,产品链接被删除。带有brew cask install fseventer它的版本可能仍在旧版macOS上可用。

CLI应用程序有一个GUI替代方案lsof
fseventer是一个出色的文件系统访问监视实用程序,可用于多种用途。它以超级用户权限(sudo)运行,因此可以看到所有已挂载文件系统的所有读/写访问权限,并以非常清晰的外观呈现它们。

我的经验:我的Volume经常无法正确弹出(如OP的屏幕快照),并且始终需要“强制弹出”,有时甚至是强制性的物理断开连接(也不建议!可能会损坏该文件系统)磁盘)或系统关机以绕过该暴力破解方法。

我的解决方法:总结:弹出问题可能是由该卷上的损坏或旧文件内容引起的。删除有问题的内容可以永久解决此问题。详细:

  1. 确定访问哪个文件(使用lsoffseventer)。在我的情况下,这是一个经典的Mac OS文件,其资源分支保持打开状态,很可能是由于某些后台磁盘解析过程(Spotlight,QuickLook等)挂在了文件上。

  2. 将麻烦的数据备份到文件档案中(保留(经典)Mac专用资源数据)。我只是从上下文菜单中使用了Finder的本机“ Compress”功能。

  3. 删除有问题的文件/文件夹。

    • 照常使用Finder。这很可能会失败,因为它是“故障文件/文件夹”。
    • 使用Finder加上ALT键,同时清空垃圾箱。这会产生更多的力量,但可能仍然会失败。
    • 通过终端与sudo rm -R /path/to/troublesome/FileOrFolder在Finder的删除尝试失败后,此方法最终成功。
  4. 尝试再次卸载该卷。它可能仍然会失败,因为失败的后台进程可能仍处于不可恢复的状态

  5. 重新开始。然后尝试再次卸载。从那时起,该卷再次正常运行。正常安装,卸载,读/写操作。仅当确实由用户进程打开文件时,才阻止卸载。再次完全正常的行为。


1

解决方案确保所有程序都已关闭。单击屏幕左上方的Apple图标,然后单击“强制退出”。在列表中单击查找器。现在,单击重新启动按钮。然后尝试再次弹出驱动器。


您看到此解决方案有效吗?
Nicolas Barbulesco 2015年

1

尝试重新启动Finder。在这里工作


不知道为什么要反对这种说法;就我而言,QuickLook和mds都可以控制它(尽管没有打开任何活动的查找器窗口)。我可以重新启动mds,但是根据qlmanage -r称它正在“重置quicklookd”,但仍保持文件打开lsof +D /path/to/volume。重新启动取景器将其清除,我可以弹出该音量。
AC Capehart

-2

我重新启动了Mac,并修复了它:-)


1
我更喜欢干净地卸下驱动器。由于我正在执行多项任务,因此不建议注销和登录,就像安装第三方软件一样。
CousinCocaine
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.