使用外部USB备份磁盘后,我想干净地卸载驱动器。当按下"弹出"按钮Finder警告我的消息:

  • "卷无法弹出,因为它目前正在使用中。"

  • "磁盘"Diskname"没有弹出,因为一个或多个程序可能正在使用它。".

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

  • "umount(/Volumes/Diskname):资源繁忙--尝试"diskutil卸载""

据我所知,我没有使用这个磁盘,但Finder说我这样做,所以我一定是错的。我更喜欢干净的驱动器卸载。由于我正在执行多个任务,因此注销和登录不像安装第三方软件那样是首选。

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

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

The volume can't be ejected because it's currently in use. The disk "Camel" wasn't ejected because one or more programs may be using it. The disk "Mammtoh" wasn't ejected because one or more programs... xkcd

有帮助吗?

解决方案

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杀死。从上面的例子中,它将是:

kill 2158

请注意,有时这是行不通的,而且是一种更具侵略性的形式。 kill 必须使用。这是一系列不断升级的攻击性(使用2158的示例PID):

kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158

一旦进程/应用程序被杀死,您应该能够弹出磁盘。

最后一个音符, lsof 可能需要一两分钟。它也可以挂起,但你应该给它至少几分钟之前,你决定这是发生了什么。

此外,有时基本命令 sudo lsof /Volumes/myDrive 什么也找不到。如果发生这种情况,请尝试添加 +D 论证(即 sudo lsof +D /Volumes/myDrive).这将对磁盘进行自上而下的扫描。这将需要更长的时间,但它应该拿起任何导致磁盘无法弹出的东西。

(帽尖至 亚历克*雅各布森的帖子 有关更多细节。)

其他提示

你试过吗? $ 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"

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

我有这个问题,我还没有找到解决方案(尚未)。

你可以试试捐赠软件应用程序"是什么让我停滞不前?"这显示了什么进程/应用程序正在使用卷/文件夹/文件。

此程序由mac OS X10.6Snow Leopard的开发人员认证,但 RoaringApps页面 对于此应用程序将其列为在OS x10.7Lion和OS x10.8Mountain Lion上工作正常。

是什么让我留下来的?

你有没有遇到过因为有什么东西阻止你而无法清空垃圾箱或弹出磁盘的问题?通常的原因是因为一些应用程序有一个文件打开,因此你不能摆脱磁盘或垃圾文件。这就是为什么我们做了能留住我的东西!什么让我将识别正在保持项目打开的应用程序。然后,您可以使用What'S Keeping Me退出问题应用程序(或在需要时杀死它),以便您可以执行任务。什么让我包括一个Automator工作流程,这样你就可以直接从Finder中执行搜索了!

我收到了这样的信息 尽管确定卷上没有打开的文件.我用 为什么不卸载呢?, ,一个GUI工具,可以指示磁盘上打开的文件。

在我的情况下,这是一个迹象,表明文件系统已损坏。运行磁盘工具(或者如果这还不够,DiskWarrior)解决了问题,并使磁盘再次可弹出。

命令行解决方案和让我工作出色的东西。

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

lsof | grep /Volumes/myDrive

GUI应用程序是什么让我,可在 咸软工程.

两者的截图与相同的搜索进行。

Command line output GUI for What's Keeping Me

我更喜欢命令行,因为它总是在你身边。另一方面,如果你已经安装了它,让我更快更容易使用。

注意事项: fseventer 工作到OS X10.10Yosemite和开发人员的页面 http://www.fernlightning.com 同时离线了。因此,产品链接被删除。与 brew cask install fseventer 它可能仍然可以在较早的macOS版本上使用。

有一个GUI替代方案 到CLI应用程序 lsof:
fseventer 是一个伟大的文件系统访问监控实用程序 各种用途.它以超级用户权限运行(sudo),所以它看到所有挂载文件系统的所有读/写访问,并以非常清晰的概述呈现它们。

我的经验: 我有一个不断无法正确弹出的卷(如OP的截图),并且总是需要一个"强制弹出",有时甚至是一个强制的物理断开(也不推荐!可能会损坏该磁盘上的文件系统)或系统关闭以绕过该暴力方法。

我的修复: 总结: 弹出问题可能是由该卷上的损坏或遗留文件内容引起的。删除有问题的内容可以永久解决这个问题。 详细介绍:

  1. 确定哪个文件被访问(与 lsoffseventer). 在我的情况下,它是一个经典的Mac OS文件,资源叉保持打开状态,可能是一些后台磁盘解析过程(Spotlight,QuickLook或thelike)挂在它上面。

  2. 将需要的数据备份到文件存档(其中保留(经典)Mac特定资源数据)中。 我只是从它的上下文菜单中使用Finder的本机"压缩"功能。

  3. 删除陷入困境的文件/文件夹。

    • 和往常一样。 这可能会失败,因为它是一个"麻烦的文件/文件夹"。
    • 使用Finder plus在清空垃圾箱时按住ALT。 这会产生更多的力量,但很可能它仍然会失败。
    • 通过终端与 sudo rm -R /path/to/troublesome/FileOrFolder. 这最终在Finder的删除尝试失败后起作用。
  4. 再次尝试卸载卷。 它可能仍然失败,因为失败的后台进程可能仍然处于无法恢复的状态.

  5. 重新启动。然后再次尝试卸载。 从那时起,音量再次正常工作。正常挂载、卸载、读/写操作。只有当用户进程确实打开了文件时,才会阻止卸载。又是完全正常的行为。

尝试重新启动Finder。在这里它的工作原理

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

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

许可以下: CC-BY-SA归因
不隶属于 apple.stackexchange
scroll top