系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

umount

卸载卷并刷新缓存,避免直接拔盘导致数据损坏。

补充说明

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

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. umount -f 的风险是什么?什么情况下才考虑使用?
  2. 卸载提示 Resource busy 时,应按什么顺序排查?
  3. 卸载成功后为什么还建议执行 diskutil eject?
答案
  1. 强制断开可能丢失未写回数据并让进程收到 I/O 错误;仅在正常卸载反复失败且已接受风险时使用。
  2. 先确认 shell 当前目录、再用 lsof 找打开文件的进程,最后才考虑强制卸载。
  3. 卸载只移除文件系统,eject 才会停转设备并让介质可安全拔出。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令