“device is busy”本质是进程或shell正访问挂载点,非权限或磁盘故障;应先用fuser -v /mnt/iso或lsof +d /mnt/iso查占用进程,或cd /退出挂载点目录再umount,禁用umount -f以免进程崩溃。

直接用 umount 命令就能取消挂载,但失败时几乎全是“设备忙”——不是命令不对,而是你没清掉正在访问挂载点的进程或 shell。
为什么 umount /mnt/iso 报 “device is busy”
这不是磁盘故障,是 Linux 在保护数据一致性:只要有任何进程当前工作目录、打开文件、甚至只是 ls 过该挂载点,内核就拒绝卸载。
- 最常见的:你在挂载点里执行过
cd /mnt/iso,然后没cd ..出来,shell 进程仍持有该目录引用 - 后台任务如
find /mnt/iso、rsync正在扫描、编辑器(如vim)打开了其中某个.txt文件 - 某些桌面环境(GNOME/KDE)会自动索引挂载内容,即使你没手动访问,
tracker-miner-fs或baloo_file也可能正读取它
怎么确认谁在占用挂载点
别猜,用系统自带工具查清楚再动手:
- 运行
fuser -v /mnt/iso—— 显示所有访问该路径的 PID 和命令名(需 root 权限才看到全部) - 运行
lsof +D /mnt/iso—— 列出所有打开该目录下任意文件的进程(同样建议加sudo) - 如果只是 shell 卡在里面,先
cd /再试umount;别用cd ..,万一已在根目录会误操作
umount 命令本身要注意什么
参数极少,但两个细节容易翻车:
- 必须指定挂载点目录(如
/mnt/iso),不能写镜像文件路径(如/home/user/fedora.iso)——后者会报not mounted - 如果挂载时用了
-o loop,卸载时完全不需要加任何选项,umount自动识别底层 loop 设备并释放 - 不推荐强制卸载(
umount -f):对 ISO 这种只读镜像虽无数据风险,但可能让正在读它的进程崩溃(比如rpm -qpi卡住)
挂载点非空或重复挂载导致卸载失败
ISO 挂载后,挂载点目录本身不会变空,但里面的内容被隐藏。卸载失败有时是因为你忘了它曾被多次挂载:
- 检查是否重复挂载:
mount | grep /mnt/iso—— 如果输出两行,说明挂了两次,得卸两次 - 挂载点目录非空不影响卸载,但如果你在挂载前往里面放了文件,卸载后它们会重新显现——这不是错误,是预期行为
- 如果卸载后发现
/mnt/iso下还有残留(比如lost+found),那是之前格式化或异常断电留下的,和本次挂载无关
真正卡住你的从来不是命令记不住,而是你不知道哪个 bash 进程还蹲在挂载点里没出来。查 fuser 或 lsof 一次,比反复试 umount 十次更省时间。











