Ejectify app icon Ejectify

不再显示 磁盘没有正常推出 通知

当 Mac 进入睡眠时,Ejectify 会自动尝试卸载卷宗,并在唤醒后再次装载。

下载 Mac 版

一次性购买,仅需 €6.99 需要 macOS 14 或更高版本

功能

Ejectify 在后台运行,可通过 Mac 菜单栏中的图标进行配置。

The Ejectify menu bar menu showing its configuration options.
  • 帮助防止在 Mac 或显示器唤醒后出现“磁盘没有正常推出”通知。

  • 通过安全卸载所选卷宗,帮助降低数据丢失风险。

  • 在唤醒后重新装载受管理的卷宗。

  • 支持外部驱动器、可移除内部介质和磁盘映像。

  • 让你可以精确选择由 Ejectify 管理哪些卷宗。

  • 支持 30 多种语言。

常见问题

为什么我会看到“磁盘没有正常推出”通知?

“磁盘没有正常推出”表示 macOS 发现某个卷宗在尚未被安全卸载之前就已经消失。

通常这是因为外接卷宗断电、断开连接,或在没有先安全推出的情况下被直接拔出。

如果当时磁盘仍在写入数据,就可能导致写入不完整、文件损坏,甚至卷宗损坏,这就是 macOS 会显示此警告的原因。

Ejectify 可以帮助在 Mac 唤醒后防止这类通知再次出现。参见 Ejectify 如何帮助防止“磁盘没有正常推出”通知?

Ejectify 如何帮助防止“磁盘没有正常推出”通知?

Ejectify 是一款 Mac 菜单栏工具,通过在睡眠前或屏幕关闭前请求 macOS 安全卸载所选卷宗,并在唤醒后再次尝试装载它们,从而帮助防止“磁盘没有正常推出”通知。

你可以自行选择哪些卷宗由 Ejectify 管理,这些装载和卸载尝试都会在后台自动进行。

当驱动器通过会在屏幕关闭时断电的显示器或 USB 集线器连接,或者磁盘在 Mac 睡眠时被断开时,Ejectify 尤其有用。

Ejectify 如何帮助防止数据丢失或卷宗损坏?

“磁盘没有正常推出”通知意味着某个卷宗在尚未安全卸载之前就被断开了;如果 macOS 还没有完成对磁盘的写入,这就可能导致文件丢失或损坏。

Ejectify 会在你的 Mac 开始睡眠或屏幕关闭时尝试安全卸载所选卷宗,并在唤醒后再次尝试装载它们。

这意味着 Ejectify 不仅有助于防止这些通知,也有助于降低数据丢失或卷宗损坏的风险。

Ejectify 支持哪些类型的卷宗?

Ejectify 支持位于内部磁盘、外部磁盘和磁盘映像上的可推出卷宗,包括 SD 卡和 USB 驱动器等介质。

Ejectify 不直接支持网络卷宗,不过它可以管理从这些位置装载的磁盘映像。你可以在菜单栏应用中精确选择由 Ejectify 管理哪些受支持的卷宗。参见 如何选择由 Ejectify 管理哪些卷宗?

Ejectify 能阻止所有“磁盘没有正常推出”通知吗?

Ejectify 旨在防止你的 Mac 睡眠、唤醒,或显示器关闭并重新开启时出现的“磁盘没有正常推出”通知,但它无法保证在所有情况下都成功。

Ejectify 并不会自己卸载磁盘。它只是请求 macOS 以安全方式执行,而 macOS 可能会拒绝该请求。

如果你仍然看到通知,请前往 我仍然看到“磁盘没有正常推出”通知。该如何排查?

为什么 Ejectify 需要提升权限,我该如何启用?

Ejectify 包含一个可选的特权辅助程序,它以管理员权限运行。这个辅助程序可以让 Ejectify 发起装载和卸载请求时减少与权限相关的限制。

如果你不批准该辅助程序,Ejectify 会退回到用户级请求。这些请求仍然可能有效,但 macOS 也可能更早拒绝它们。

你可以在首次设置期间、系统批准提示中,或之后从 Ejectify 菜单中授予或移除提升权限。如果你想在启用前准确查看该辅助程序会做什么,源代码已在 GitHub 上公开。

Ejectify 在 App Store 上有售吗?

没有。Ejectify 不在 App Store 上提供。

Apple 的沙盒模型本来就十分严格。Ejectify 在能够以不太适合 App Store 沙盒的方式与 macOS 的磁盘装载和卸载交互时效果最好,尤其是在你启用特权辅助程序之后。

因此,Ejectify 改为直接通过本网站销售。如果你想审查它的工作方式,源代码也已公开。

我可以在哪里下载 Ejectify,它的价格是多少?

Ejectify 可直接通过本网站购买,一次性价格为 €6,99。如果你更愿意免费自行构建,源代码也可在 GitHub 上获取。

Ejectify 支持哪些 Mac 和 macOS 版本?

Ejectify 同时支持 Intel Mac 和 Apple silicon Mac,只要它们运行的是 macOS 14 或更高版本。

Ejectify 似乎没有启动。我该怎么办?

首先,请确认 Ejectify 已复制到你的 Applications 文件夹中,并且是从那里启动的。

Ejectify 是一款菜单栏工具,而不是主要通过 Dock 使用的普通应用。打开后,请在靠近时钟的菜单栏中查找弹出图标。

如何打开 Ejectify 并更改它的设置?

Ejectify 通过 Mac 的菜单栏运行。除了你第一次打开时的引导流程之外,它不会保持普通应用窗口打开,也不会一直显示在 Dock 中。

点击菜单栏中的弹出图标,你可以进行以下操作,例如:

我仍然看到“磁盘没有正常推出”通知。该如何排查?

Ejectify 会请求 macOS 装载和卸载卷宗。当 macOS 拒绝该请求时,你仍然可能看到警告。

为了更好地避免这些通知,或者排查它们为何仍然出现,你可以尝试以下做法:

你可以通过在 Terminal 中运行以下命令来检查 Ejectify 的日志:

log stream --style compact --info --predicate 'subsystem == "nl.nielsmouthaan.Ejectify" OR subsystem == "nl.nielsmouthaan.Ejectify.PrivilegedHelper"'

日志可能会显示一些表明卸载失败原因的错误,例如:

  • kDAReturnBusy:该卷宗仍被其他应用或 macOS 占用
  • kDAReturnNotPermitted:macOS 因操作不被允许而拒绝了该请求
  • kDAReturnNotPrivileged:Ejectify 没有足够的权限来发起该请求
  • kDAReturnNotFound:该卷宗已经消失或不再可用

你也可以使用 Console 来搜索更能表明装载或卸载为何失败的事件,例如过滤 diskarbitrationd

如何选择由 Ejectify 管理哪些卷宗?

Ejectify 会在其菜单栏菜单中直接列出受支持的卷宗。

点击某个卷宗即可切换是否由 Ejectify 管理。被勾选的卷宗表示 Ejectify 会在配置好的触发条件发生前尝试卸载它,并在唤醒后再次装载它。

外部卷宗和 SD 卡等可移除内部介质会被自动管理。磁盘映像也受支持,但需要明确启用。

我应该使用哪种卸载触发条件?

Ejectify 支持多种卸载触发条件:

  • 显示器关闭:当显示器关闭时,Ejectify 会尝试卸载受管理的卷宗
  • 系统开始睡眠:当 macOS 开始进入睡眠时,Ejectify 会尝试卸载受管理的卷宗。这是默认选项。

并不存在适用于所有硬件配置的唯一最佳选择。请测试可用选项,并保留在你的环境中最少出现“磁盘没有正常推出”通知的那一个。

“强制卸载”是什么意思,我应该何时使用它?

通常情况下,Ejectify 会请求 macOS 安全卸载卷宗。强制卸载 会改变该请求,使 macOS 即使在其他应用或 macOS 自身仍在使用该卷宗时也可能执行卸载。

这让它在排障时很有用,但并不安全。如果仍有写入正在进行,强制卸载可能导致数据丢失或文件系统损坏。

只有在你理解这一取舍时才应使用它,并且最好只使用到足以确认是否有其他应用正在占用该卷宗为止。

“强制静音通知”是什么意思,我应该何时使用它?

macOS 有一个未公开文档说明的配置选项,可以静音“磁盘没有正常推出”通知,而 Ejectify 可以为你启用这个选项。

如果你已经了解原因,只是不想再看到警告横幅,这个设置会很有用;但它并不能解决根本问题。磁盘仍然可能是在未安全推出的情况下断开。

请谨慎使用。如果你想解决原因本身,请先从排查步骤开始。

我之前买过 Ejectify。如何再次下载或获取更新?

如果你是通过 Lemon Squeezy 购买的 Ejectify,可以查询你的订单并下载应用。

如果你之前是通过 Gumroad 购买的 Ejectify,请将收据发送到 niels@ejectify.app,并请求重新发送下载链接。

是否有任何保修?使用 Ejectify 是否存在风险?

Ejectify 的开发出于最好的初衷,并尽可能关注实现细节和代码质量。即便如此,它仍可能存在导致意外问题甚至数据丢失的错误。

使用 Ejectify 即表示你已默认确认自己阅读并接受了 Ejectify 的许可协议,其中说明本软件不提供任何形式的保证,开发者也不对因使用本软件而造成的任何损害承担责任。

Ejectify 和 Jettison 有什么区别?

这两款应用都会自动卸载外接磁盘,以防止“磁盘没有正常推出”警告,但它们主要在易用性和分发方式上有所不同。

Ejectify 更易于使用和配置,允许你按卷宗选择是否由它管理。

Ejectify 也是 GitHub 上的开源项目,这意味着它的实现是公开可见的,你可以核实它的工作方式,甚至免费自行构建。

它还提供公开的问题跟踪器,让你可以查看已报告的问题,并参与未来改进的讨论。

Ejectify 还提供在需要时强制卸载卷宗以及完全静音“磁盘没有正常推出”通知的选项,从而在特殊情况下提供更多控制权。

我有问题、疑问或建议。该怎么办?

请先查看 GitHub 上现有的问题,确认是否已经有人报告过相同问题或提出过类似疑问。

如果没有,请在 GitHub 上创建新问题,写明你的问题、疑问或建议。

如果你是在报告问题,请附上 Ejectify 的设置、磁盘信息及其连接方式、发生了什么、何时发生以及发生频率,以及来自 我仍然看到“磁盘没有正常推出”通知。该如何排查? 中的相关日志。