先检查是否在挂载点内(如pwd显示/mnt/iso),再用lsof +D /mnt/iso或fuser -v /mnt/iso查占用进程,可fuser -k终止或umount -l懒卸载,卸载ISO必须用挂载点路径而非设备或ISO文件路径。

umount 命令执行失败:设备忙(device is busy)怎么办
最常见的卡点不是不会用 umount,而是执行后报错 umount: /mnt/iso: target is busy。这说明当前挂载点正被某个进程占用——可能是你在该目录下开了 shell、有程序正在读取里面的文件,甚至只是终端当前工作目录就是它。
- 先检查是否在挂载点内:运行
pwd,如果输出是/mnt/iso或其子目录,先cd到别的地方再试 - 查占用进程:
lsof +D /mnt/iso或fuser -v /mnt/iso,会列出所有访问该路径的 PID 和命令 - 强制退出相关进程:
fuser -k /mnt/iso(慎用,可能中断正在运行的服务) - 实在无法终止进程,可用懒卸载:
umount -l /mnt/iso,系统会在资源空闲后自动清理,挂载点立即“变空”,但底层设备仍保持连接直到无引用
卸载 ISO 镜像时该指定挂载点还是设备路径
对于ISO文件的挂载(使用 -o loop),umount 仅识别挂载点路径,不识别原始ISO文件路径。例如,若你使用 mount -o loop ubuntu.iso /mnt/iso 进行挂载,那么就只能使用 umount /mnt/iso 来卸载,不能写成 umount ubuntu.iso 或 umount /dev/loop0——即便后者能够查到,也极有可能报错或者误卸载其他设备。
- 确认挂载点:
mount | grep iso9660或findmnt -t iso9660 - 别依赖
/dev/cdrom:那是物理光驱设备,ISO 文件挂载走的是 loop 设备,和它无关 - 卸载后挂载点目录内容自动消失,这是正常行为,不是错误
umount -f 强制卸载的风险与适用场景
umount -f 不是万能解药,它绕过内核的资源检查直接断开,容易导致数据损坏或进程崩溃,仅适用于紧急情况且确认无关键进程在读写。
- 只在明确知道“只是缓存未刷盘、没实际写入”时使用,比如只用
ls查看过内容 - 绝对不要对正在被数据库、编译器、打包工具使用的挂载点强卸
- 更安全的替代:先
sync强制刷盘,再umount -l,比-f更可控
卸载后 loop 设备没释放?不用管
挂载 ISO 时系统自动分配 loop 设备(如 /dev/loop2),卸载后该设备通常不会自动销毁,仍留在 losetup -a 输出里。这是正常设计,不影响后续使用,也不需要手动清理。
- 除非你反复挂载大量 ISO 导致 loop 资源耗尽(罕见),否则无需干预
- 想手动释放可执行:
losetup -d /dev/loop2,但前提是确认该设备确实没被其他挂载占用 - 现代内核(5.10+)已支持自动回收,多数情况忽略即可
mount 输出和 lsof 结果,比硬记参数有用得多。