卸载卷并刷新缓存,避免直接拔盘导致数据损坏。
umount 把文件系统从目录树中移除,并让内核把缓存写回设备。参数可以是设备(/dev/disk2s1)或挂载点(/Volumes/Backup)。普通用户通常没有权限,日常优先用 diskutil unmount,它会通过 Disk Arbitration 协调占用者;umount 更直接,适合脚本和 NFS。GNU 版支持 --force 等长选项,macOS 用 -f。
卸载失败最常见的原因是卷仍被使用:终端当前目录在卷内、应用打开着文件、Finder 正在预览、Spotlight 正在索引、Time Machine 正在备份,或者有进程把工作目录设在该卷。先定位占用者,再决定是正常卸载还是强制卸载。
影响范围:
umount -f会强制断开文件系统,未写回的数据可能丢失;仍在访问该卷的进程会收到 I/O 错误,数据库、虚拟机和编辑中的文档风险最高。umount -A会卸载除根卷外的所有文件系统,不适合日常使用。 先备份:强制卸载前保存文档、暂停虚拟机、停止写入;能正常卸载就不要用-f。 如何回滚:重新挂载后用diskutil verifyVolume检查,必要时repairVolume;文件系统损坏且无备份时只能尝试数据恢复。
# 查看目标卷的设备名和挂载点
% mount | grep /Volumes/Backup
# 正常卸载,优先使用 diskutil
% diskutil unmount /Volumes/Backup
# 卸载整块盘上的所有卷,适合拔盘前操作
% diskutil unmountDisk /dev/disk2
# 卸载 NFS 挂载;服务器失联时可能需要 -f
% sudo umount /Volumes/nfs
# 查找占用卷的进程,再决定是否关闭
% lsof | grep /Volumes/Backup
# 卸载后弹出外接盘,再物理拔出
% diskutil eject /dev/disk2
# 仅在正常卸载反复失败、且已接受数据风险时使用
% sudo umount -f /Volumes/Stuck
umount 报 Resource busy 时,先检查当前 shell 是否在卷内(pwd),再 lsof | grep /Volumes/盘名。不要第一步就 -f。diskutil unmountDisk 会卸载整块盘的所有卷;对 APFS 容器会涉及容器内多个卷,确认没有其他卷仍在使用。diskutil verifyVolume。sudo mdutil -i off /Volumes/盘名 会持久关闭该卷索引,恢复时记得重新开启。diskutil eject 停转并安全断电;U 盘和 SD 卡也建议 eject。umount 可能一直等待,使用 umount -f -t nfs;仍失败时先恢复网络或重启相关挂载,而不是反复拔网线。mount — 查看挂载状态并重新挂载。diskutil — 卸载、弹出和校验卷。hdiutil — 卸载并断开 DMG 镜像。mount — Linux 挂载与卸载流程对照。umount — GNU 版选项对照。合上页面,先回答,再展开对照。
umount -f 的风险是什么?什么情况下才考虑使用?Resource busy 时,应按什么顺序排查?diskutil eject?lsof 找打开文件的进程,最后才考虑强制卸载。
小程序版
微信扫码,随时查命令