How to Safely Eject External Drives on macOS Sequoia and Sonoma

Apple changed how drive ejection works in recent macOS versions. Here's what's different in Sequoia and Sonoma and how to handle common ejection issues.

If you recently upgraded to macOS Sequoia or Sonoma, you might have noticed that ejecting external drives feels different. Not because Apple redesigned the process, but because background changes to the system affect how and when drives can be ejected.

Both Sequoia and Sonoma introduced changes to privacy controls, background process management, and system services that create new friction around drive ejection. Here’s what changed and how to deal with it.

What changed in Sonoma and Sequoia

Starting with Sonoma, Apple expanded background process restrictions. The system is more aggressive about managing which apps can run background tasks and how long those tasks can persist. Ironically, this means that some processes hold onto drive resources differently than they did before.

Sequoia went further with changes to Full Disk Access permissions. Apps need explicit permission to access certain file locations, and the system enforces these permissions more strictly. When a system process hits a permission boundary while accessing your external drive, it can sometimes stall rather than fail cleanly, leaving a file handle open.

The notification system also changed. In older macOS versions, the “Disk Not Ejected Properly” warning appeared once and went away. In Sequoia, the system can be more persistent about warning you, and in some cases, the notification itself triggers disk access as the system checks the drive’s status.

The new System Settings location

If you’re looking for drive and disk settings, Apple moved things around again.

In Sequoia, disk-related settings are under System Settings > General > Storage. But most ejection-relevant controls are still in Disk Utility, which hasn’t changed much.

For Spotlight exclusions (a common fix for ejection problems), go to System Settings > Siri & Spotlight > Spotlight Privacy. This is one of the most effective settings to change if you regularly have trouble ejecting drives.

Common ejection issues on Sequoia

The cloudd background service, which handles iCloud sync through CloudKit, can cause ejection issues on Sequoia. This service occasionally holds references to files on external drives, particularly if you’ve ever opened an iCloud-synced document while an external drive was the active Finder window.

If cloudd is blocking your ejection, you can check with:

lsof /Volumes/YourDriveName | grep cloudd

Quitting cloudd from Activity Monitor will temporarily resolve it, but the process restarts automatically. Moving iCloud-related workflows away from external drive directories is the longer-term fix.

Stage Manager (introduced in Ventura and still present in Sequoia) can also cause problems. When enabled, it maintains references to recent windows and their contents. If you had a Finder window open showing your external drive’s contents, Stage Manager might hold that reference even after you close the window.

Disabling Stage Manager (System Settings > Desktop & Dock > Stage Manager) resolves this, though that’s a heavy-handed solution for an ejection problem.

Common ejection issues specific to Sonoma

Sonoma’s widget system expanded to the desktop, and desktop widgets can interfere with drive ejection if they reference files or display information from an external drive.

The more common Sonoma issue is with the updated version of Spotlight. Sonoma’s Spotlight indexes more file types and metadata than previous versions. If you connect a drive with lots of documents, photos, or media files, Spotlight works harder and longer, keeping the drive busy for extended periods.

Sonoma also changed how Terminal handles volume paths. Some older scripts that use /Volumes/DriveName paths might behave differently. If you have scripts that automatically mount or access external drives, test them after upgrading.

The reliable ejection method on both versions

Regardless of which macOS version you’re on, this sequence works consistently:

  1. Close any Finder windows showing the drive’s contents
  2. Quit any applications you were using with files on the drive
  3. Wait ten seconds for background processes to release
  4. Right-click the drive icon on your desktop or in Finder’s sidebar and select Eject

If that fails, try Terminal:

diskutil unmount /Volumes/YourDriveName

If Terminal also fails, check what’s holding the drive:

lsof /Volumes/YourDriveName

Permissions and Full Disk Access

Both Sequoia and Sonoma are stricter about what can access your drives. If you use Terminal or third-party tools to manage drives, make sure Terminal (or your preferred terminal app) has Full Disk Access in System Settings > Privacy & Security > Full Disk Access.

Without Full Disk Access, the lsof command won’t show you all processes using your drive. You’ll get a partial list that might miss the actual blocker.

This permission requirement is also why some older drive utilities stopped working after upgrading to Sonoma or Sequoia. They need to be updated to request the new permissions.

What Apple should fix

The core ejection experience on macOS hasn’t improved meaningfully in years. The error message still says “The disk wasn’t ejected because one or more programs may be using it” without telling you which programs. This was unhelpful in Catalina and it’s still unhelpful in Sequoia.

Apple has the information. The system knows exactly which processes are holding file handles open. It just doesn’t surface that information to the user.

Until Apple fixes this, Ejecta fills the gap. It works on both macOS Sonoma and Sequoia, identifies the specific processes blocking your drives, and lets you quit them directly. It handles the new system services and permission requirements that came with these OS versions, so you don’t have to figure out whether cloudd or Stage Manager or some other new background process is the culprit.

Upgrading your Mac shouldn’t make basic tasks harder. Ejecting a drive is about as basic as it gets.