umount 是什么
umount 断开文件系统与挂载点的关联,同时把页缓存里尚未落盘的数据刷到设备上,是安全移除存储的必要动作。最常见的报错是 target is busy,含义是还有进程在目录里工作或持有文件句柄。正确处理顺序是先找出占用者并让它体面退出,再用延迟或强制卸载兜底,后者可能丢数据,只能当应急手段。
基本信息
| 适用平台 | Linux、Unix 通用(util-linux 提供) |
|---|---|
| 命令语法 | umount [选项] 设备 | 挂载点 |
| 常用选项 | -l 延迟卸载 / -f 强制卸载 / -R 递归卸载子挂载 / -n 不更新挂载记录 |
| 常见报错 | target is busy,说明仍有进程占用 |
典型使用场景
- 维护数据盘前卸载:先确认没有业务在读写
- 卸载网络存储:NFS 卡死时评估是否强制卸载
- 收回临时挂载:U 盘、光盘或镜像文件用完后卸载
- 定位占用者:用 fuser 或 lsof 找出还在用这个目录的进程
- 安全收尾:卸载前先用 sync 把缓冲数据刷下去
常用示例
常用示例
sync # 先把页缓存刷盘
umount /data
fuser -mv /data # 看谁在用(进程、权限、命令)
umount -l /data # 延迟卸载:先从命名空间摘除,占用释放后真正卸载
umount -f /mnt/nfs # 强制卸载,网络存储卡死时的应急手段
umount -R /mnt # 递归卸载其下的子挂载
lsof +D /data | head # 另一条找占用者的路径选项对比
| 选项 | 行为 | 风险 |
|---|---|---|
| 不加选项 | 有占用就报错退出 | 无,最安全 |
| -l | 立即从命名空间摘除,之后再真正卸载 | 进程仍可写,可能丢数据 |
| -f | 强制卸载 | 可能丢写入数据,仅用于卡死的网络存储 |
| -R | 递归卸载子挂载 | 影响面大,执行前确认路径 |
| -n | 不更新挂载记录 | 特殊维护场景使用 |
延迟卸载与强制卸载都只是应急手段:强卸网络存储可能丢掉尚未回写的数据,操作之后必须检查服务状态与数据完整性。
在挂载点目录内部执行卸载会失败,因为当前目录正被占用;先切到别处,例如根目录,再执行卸载。