Can't Eject External Drive: 3 Fixes That Work
Your external drive won't eject because something's holding it open. Here are the real fixes, starting with the most common culprit: a hidden process or open file.
1. A Hidden Process Is Holding the Drive
This is the most common reason. You closed all your windows, but some app or background process still has a handle on a file or folder on the drive. Windows does a poor job telling you what is locking it. Mac hides it even better.
The fix: find and kill that process manually.
On Windows 10/11
- Download Handle from Microsoft Sysinternals (it's a tiny command-line tool, no install needed).
- Open Command Prompt as administrator.
- Run:
handle.exe -a -p "F:\"(replaceF:with your drive letter). This lists every open handle on that drive. - You'll see something like
explorer.exeorchrome.exeholding a file. Kill that process withtaskkill /IM processname.exe /F.
If you don't want to download a tool, use Resource Monitor (search for it in Start). Go to the CPU tab, expand "Associated Handles", search for your drive letter, and close the offending process from there.
On macOS (Ventura / Sonoma / Sequoia)
- Open Terminal.
- Run:
lsof /Volumes/DriveName(replace DriveName with your volume name). - Look at the second column – that's the PID (process ID). The last column shows the file path.
- Kill it:
kill -9 PID. Usekill -9only ifkill PIDfails.
The reason step 3 works is that lsof lists all open file descriptors, including those from system processes like Spotlight or Time Machine. If you see mds or backupd, that's normal indexing – wait a minute, then try again.
2. The Drive's Cache Hasn't Flushed Yet
Modern operating systems write data to drives in chunks. When you copy a file, it might not actually hit the disk for 10–15 seconds. If you try to eject during that window, the system says "in use" because it's still writing.
The fix is simple: wait. But if you're impatient, force a flush:
Windows
- Open Device Manager, expand "Disk drives", right-click your external drive, select Properties.
- Go to the Policies tab.
- Select Quick removal (this disables write caching). Click OK.
I always set this on external drives. The downside is slightly slower copy speeds, but you'll never get stuck again.
macOS
macOS doesn't give you a toggle. Instead, run in Terminal: sync. This flushes all pending writes. Then try ejecting again. If it still fails, use the Finder eject button while holding the Option key – this forces an eject even if cache is still writing.
3. The Drive Is Corrupted or Has Bad Sectors
Less common but real. If the file system is damaged, the OS keeps trying to read or repair it, which locks the drive. You'll usually see a warning like "The disk you inserted was not readable" or Windows chkdsk running on connect.
Fix: check the file system first.
Windows
- Open Command Prompt as admin.
- Run:
chkdsk F: /f(replace F: with your drive letter). - Let it finish. Then try ejecting again.
macOS
- Open Disk Utility.
- Select the external drive (not the volume below it) – make sure you pick the physical disk.
- Click First Aid and run it.
If First Aid finds errors and can't fix them, your drive is failing. Backup immediately and replace it. A corrupt file system is the only case where forcing an eject can cause data loss – the OS is trying to protect you.
Quick-Reference Table
| Cause | Symptom | Fix (30 seconds) |
|---|---|---|
| Hidden process | Nothing appears open, but drive won't eject | lsof (Mac) or Handle.exe (Windows) |
| Write cache not flushed | Eject fails after a large file copy | Set Quick removal on Windows, sync on Mac |
| Corrupted file system | Drive makes clicking noises or OS says "not readable" | chkdsk /f (Windows) or First Aid (Mac) |
If none of these work, shut down your computer completely, unplug the drive, then boot up again. That clears every handle. If it still won't eject after reboot, the hardware is likely dead – sorry.
Was this solution helpful?