Unmounting a disk in Linux detaches its filesystem from the active directory tree so removable media can be unplugged cleanly, offline checks can run against the correct volume, and an old mount point does not keep receiving writes by mistake.
Linux records active mounts in the kernel mount table exposed through /proc/self/mountinfo. The findmnt command resolves a mount point back to its source device, filesystem type, and active options, umount removes that specific mount entry, and mountpoint confirms afterward that the directory is no longer attached to a filesystem.
Most unmounts require sudo. A busy target usually means a shell, file manager, backup job, or service still has its current directory or an open file inside the mounted filesystem, and some minimal installs need the package that provides fuser before you can identify that holder from the command line. Do not try to detach /,, /boot, or storage still serving a running application from the live session.
Steps to unmount a disk in Linux:
- Inspect the active mount entry before unmounting so the path, source device, and filesystem type match expectations.
$ findmnt --mountpoint /mnt/sg-unmount-demo --output TARGET,SOURCE,FSTYPE,OPTIONS TARGET SOURCE FSTYPE OPTIONS /mnt/sg-unmount-demo /dev/loop3 ext4 rw,relatime
Replace /mnt/sg-unmount-demo with the mount point that should be removed. If only the device name is known, use findmnt --source /dev/sdb1 --output TARGET,SOURCE,FSTYPE,OPTIONS first to resolve its current mount point.
- Unmount the filesystem by its mount point.
$ sudo umount /mnt/sg-unmount-demo
Use the mount point when possible. A single device can be mounted in more than one place, while the mounted directory identifies the exact active entry that should be removed.
If the target is /,, /boot, or storage still serving a running application, stop here and move the unmount to maintenance or rescue mode instead of trying to detach it live.
- When umount reports a busy target, identify the process that is still holding the mounted filesystem open.
$ sudo umount /mnt/sg-unmount-demo umount: /mnt/sg-unmount-demo: target is busy. $ sudo fuser -vmM /mnt/sg-unmount-demo USER PID ACCESS COMMAND /mnt/sg-unmount-demo: root mount /mnt/sg-unmount-demo root 203 ..c.. sleep ##### snipped #####An entry with ..c.. usually means a process has its current working directory inside the mounted filesystem. A shell, editor, file manager, backup job, or service can all keep the mount busy this way. If fuser is missing on a minimal system, install the package that provides it first. That package is commonly named psmisc.
- Leave the mounted directory or stop the specific process that is still using the filesystem.
$ cd / $ sudo kill 203
Review the PID and command before stopping anything. Exiting an interactive shell or stopping the relevant service is safer than sending a stronger signal immediately.
- Retry the unmount after the holder releases the filesystem.
$ sudo umount /mnt/sg-unmount-demo
If umount still reports target is busy, run fuser again until the remaining holders match what you expect to keep open.
- Confirm that the mount point is no longer active.
$ mountpoint /mnt/sg-unmount-demo /mnt/sg-unmount-demo is not a mountpoint
This is the decisive check before unplugging removable media or starting filesystem repair work on the unmounted device.
Use umount -l /mnt/sg-unmount-demo only as a fallback for cases such as an unreachable network share or a broken removable device that must be detached immediately. Lazy unmount removes the path from the directory tree now and cleans up remaining references later, so it should not be the default path for a healthy local disk.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
