Mac 上外置磁盘提示"正在使用中"无法弹出怎么办?

从终端入手,找出占用外置磁盘的进程,安全卸载并弹出磁盘的完整排查步骤。

macOS进程终端存储磁盘诊断diskutil 磁盘工具中风险
先用 diskutil info 确认卷的状态,退出占用它的程序,然后对卷执行 diskutil unmount。

快速开始

只要还有进程在磁盘上打开着文件,macOS 就会拒绝弹出。本指南带你一步步确认是哪块盘、释放占用它的程序,并在终端中安全弹出——不丢数据,也不用直接拔线。

症状

?Finder 提示"磁盘 MyUSB 未被推出,因为一个或多个程序可能正在使用它",或者点弹出没有反应,卷一直留在桌面上。

先确认是哪块盘、挂载在哪

弹出失败时,先弄清楚到底哪块盘弹不出去。列出所有已连接的磁盘,可以看到设备节点(如 disk2s1)和 macOS 使用的 /Volumes 名称。如果卷在这里显示正常,但 Finder 提示"正在使用中",说明是有进程占用了它,而不是硬件出了问题。

一条命令在终端里查看所有内置和外置磁盘、分区以及对应的 /Volumes 名称。

命令
$ diskutil list

查看卷的挂载状态和设备节点

查看卷的详细信息,可以确认它当前是否处于挂载状态、对应的设备节点以及文件系统类型。记下设备标识符——如果稍后卸载失败需要强制弹出,会用到它。如果信息显示卷仍处于已挂载状态,说明问题出在软件层面。

一条命令获取任意卷的设备节点、文件系统、SMART 健康状态和 APFS 角色。

命令
$ diskutil info /Volumes/Macintosh\ HD

退出可能占用文件的程序

"磁盘正在使用"最常见的原因是某个程序在该卷上打开了文档或缓存——一旦程序卡死,它会一直占着不放。按名称强制退出该程序即可释放占用。如果是视频剪辑软件、下载工具或卡死的程序占用了磁盘,退出后通常就能立即弹出。之后需要的话再重新打开该程序。

应用卡死、彩球转圈、连强制退出窗口都点不动时,用 killall 在终端按名称直接结束它。

命令
$ killall Safari
▾ 撤销
撤销
$ open -a Safari

关闭该卷的 Spotlight 索引

Spotlight 的索引进程(mds 和 mdworker)会持续扫描新挂载的磁盘,即使你早已不再使用,卷也可能一直处于忙碌状态。为该卷关闭索引后即可释放。如果以后需要在 Finder 中搜索这块盘,随时可以重新开启索引。

对从不搜索的硬盘节省 CPU 和磁盘写入。

命令
$ sudo mdutil -i off /Volumes/工作盘
▾ 撤销
撤销
$ sudo mdutil -i on /Volumes/工作盘

先尝试正常卸载

diskutil unmount 只卸载卷而不给硬盘断电,比直接弹出更温和。在占用进程释放后,这一步通常就能成功。如果卸载成功,说明数据已经安全,只是硬盘还连着。如果仍然提示"卷正在使用",就继续下一步强制弹出。

外置硬盘的卷没挂载上?用 diskutil 的 mount/unmount 重新挂载,或在不弹出的情况下卸载。

命令
$ diskutil mount /Volumes/MyUSB
▾ 撤销
撤销
$ diskutil unmount /Volumes/MyUSB

在终端强制弹出

如果 Finder 一直弹出失败,改用命令行弹出整块磁盘。diskutil eject 会先刷新缓冲区再断开磁盘,相当于 Finder 弹出功能的终端版本,而且在 Finder 对话框卡住时依然有效。如果要让整块硬盘断开,请对整个设备(如 disk2)执行,而不是单个分区。

diskutil eject 会刷新缓存并卸载磁盘,等同于访达里的“推出”,终端即可完成。

命令
$ diskutil eject /Volumes/MyUSB

改用 hdiutil detach

如果 diskutil 仍提示磁盘忙碌,可以试试更底层的 hdiutil detach,它对外置硬盘和已挂载的磁盘镜像都有效。尤其是当卷是通过磁盘镜像挂载而非普通外置盘时,diskutil 无能为力的情况下它往往能成功。

在命令行安全卸载并推出外置硬盘、U 盘和镜像卷。

命令
$ hdiutil detach "/Volumes/MyUSB"

一键弹出所有可弹出的磁盘,做最后排查

如果挂载了多个卷、不确定是哪个卡住了,可以用一条命令让 Finder 弹出所有可弹出的磁盘。从桌面消失的卷说明已成功弹出,剩下的那个就是仍被占用的——回到上一步,找出并退出占用它的程序。

macOSMac 一次性推出所有外置磁盘低风险步骤 8可选

一步安全卸载所有可推出卷:U 盘、SD 卡、DMG 镜像等。

命令
$ osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
!正在写入数据时强制弹出可能导致文件损坏。请先结束写入进程,强制卸载只作为最后手段。

如何确认已解决

卷从桌面和 diskutil 的输出中消失,/Volumes 下对应的挂载点也不存在了。

一键全部撤销

上面每一条命令都可以撤销。按此顺序执行即可全部还原。

一键全部撤销
$ diskutil unmount /Volumes/MyUSB
sudo mdutil -i on /Volumes/工作盘
open -a Safari

执行前请先确认——部分步骤之间可能并非相互独立。

来源

  • DISKUTIL(8) - macOS manual page
    Apple (Xcode man pages mirror) · vendor-doc · 2026-09-17
    依据: The manual page text contains 'diskutil list' describing it as listing disks with their partitions and identifiers such as disk0s1.
  • diskutil - Modify, verify and repair local disks
    SS64 · technical · 2026-09-17
    依据: Documents the diskutil command with 'list' as its first documented verb for listing disks, including the 'diskutil list' syntax shown on the page.
  • macOS osascript command reference
    SS64 · technical · 2026-09-16
    依据: osascript runs AppleScript from the Terminal; Finder's eject command safely unmounts every ejectable disk.
  • About Files and Directories
    Apple Developer · vendor-doc · 2026-09-17
    依据: Apple's file-system programming guide covering volumes, mount points, and macOS storage layout.
  • killall - kill processes by name
    SS64 · technical · 2026-09-17
    依据: Documents killall for terminating processes by name, including sudo usage for other users' processes.
  • Quit an app on Mac
    Apple · vendor-doc · 2026-09-17
    依据: Apple's guidance on quitting unresponsive apps, confirming the everyday need killall addresses from the command line.
  • mdutil – Manage Spotlight indexes
    ss64.com · technical · 2026-09-17
    依据: Documents -i on/off, -E erase, and per-volume status
  • hdiutil – Create and manipulate disk images
    ss64.com · technical · 2026-09-17
    依据: hdiutil detach unmounts and ejects a volume identified by its mount point or device node.

最后验证: 2026-09-21

相关指南