umount: target is busy.

Fix 'umount: target is busy' on Linux USB drive

Linux & Unix Intermediate 👁 26 views 📅 May 29, 2026

The kernel says the USB mount point is in use. Start with the lazy unmount, then find the culprit process. Works on Ubuntu, Fedora, Debian.

30-Second Fix: Try the Lazy Unmount

This is your first go-to move. Almost always does the trick if the drive isn't actively being written to. The lazy unmount (-l) tells the kernel to detach the filesystem immediately but clean up any pending I/O in the background. You won't lose data — it just unmounts now, finishes the cleanup later.

sudo umount -l /mnt/usb

Replace /mnt/usb with your actual mount point. If that works, you're done. The drive will unmount, and you can yank it after the LED stops blinking. If it spits out the same error, move to the next step.

5-Minute Fix: Find and Kill the Blocking Process

The culprit is almost always a file open by a shell, a file manager, or a background daemon. You need to find it and kill it. Two tools for this: lsof and fuser. I use fuser because it's faster and gives you PIDs directly.

sudo fuser -vm /mnt/usb

This prints the PIDs of any processes using that mount point. You'll see something like 1234 next to a cwd (current working directory) or a txt (executable). Kill the process:

sudo kill -9 1234

Replace 1234 with the PID. Then try unmounting again:

sudo umount /mnt/usb

If fuser isn't installed, use lsof:

sudo lsof | grep /mnt/usb

Same deal — grab the PID and kill it. One warning: killing a file manager like Nautilus or Dolphin might close all open file dialogs. Save your work first. Also don't bother with umount -f here — it rarely helps on modern kernels. Use the lazy unmount instead.

15-Minute Fix: Remount Read-Only, Then Unmount

Sometimes a process is stuck in an uninterruptible sleep state (D state) writing to the drive. You can't kill those. The workaround is to remount the filesystem as read-only, which forces any pending writes to fail gracefully, then unmount.

sudo mount -o remount,ro /mnt/usb

If that command succeeds — no error — then immediately unmount:

sudo umount /mnt/usb

If the remount fails because something is still writing, you need to find that specific process. Use strace to see what's hanging:

sudo strace -p PID

Replace PID with the stuck one from fuser. You'll probably see it stuck on a write() syscall. In that case, reboot. Yes, it's heavy-handed, but it's the only safe way. A hard power-off corrupts the filesystem. A reboot at least syncs the journal.

What if none of these work?

You might have a kernel bug or a failing USB controller. Try the same drive on another USB port. If that fails too, check dmesg | tail for I/O errors on the SCSI device. Replace the cable or the drive. But 9 times out of 10, the lazy unmount or fuser kill does it.

Quick reference table

Tool Command When to use
Lazy unmount umount -l First try — safe, no data loss
fuser fuser -vm Find blocking processes fast
lsof lsof | grep Fallback if fuser missing
Remount ro mount -o remount,ro Kill-stealing processes or D-state
Pro tip: Always sync before unmounting. I've seen this catch a few edge cases where the buffer cache was sitting on data. Run sync, wait a second, then unmount.

That's it. You'll fix this in under a minute most days. The lazy unmount is your friend — remember it.

Was this solution helpful?