MacOS系统mount命令挂载磁盘映像文件及路径指定

1次阅读

macOS 中 mount 命令不能直接挂载磁盘映像,必须使用 hdiutil;hdiutil attach 可自动挂载 .dmg/.iso 到 /Volumes/ 卷名,支持静默、只读及指定路径;卸载应统一用 hdiutil detach。

MacOS 系统 mount 命令挂载磁盘映像文件及路径指定

在 macOS 中,mount 命令本身不直接支持挂载磁盘映像(如 .dmg.iso 文件),它主要用于挂载已识别的块设备(如 /dev/disk2s1)。真正用于挂载磁盘映像的是 hdiutil 命令 —— 这是 macOS 官方推荐且最可靠的方式。

用 hdiutil 挂载磁盘映像(推荐方式)

hdiutil 是 macOS 内置的磁盘映像工具,能自动处理挂载点创建、权限适配和后台服务注册。基本用法如下:

  • 挂载到默认位置(/Volumes/ 卷名):
    hdiutil attach /path/to/image.dmg
  • 指定挂载路径(需提前创建空目录):
    mkdir -p /tmp/mymount && hdiutil attach /path/to/image.dmg -mountpoint /tmp/mymount
  • 静默挂载(不弹出 Finder 窗口):
    hdiutil attach -quiet /path/to/image.dmg
  • 只读挂载(适用于防止误写):
    hdiutil attach -readonly /path/to/image.dmg

mount 命令能挂载磁盘映像吗?

不能直接挂载。执行 mount -t hfs /path/to/image.dmg /mnt 会失败,因为 mount 不解析映像文件格式,它需要一个已由内核识别的块设备节点(如 /dev/diskXsY)。但你可以分两步间接实现:

  • 先用 hdiutil attach -imagekey diskimage-class=CRawDiskImage 加载映像并获取设备路径(如 /dev/disk5
  • 再用 mount -t hfs /dev/disk5s1 /mnt 挂载其中某个分区(需确认文件系统类型和分区号)
  • 这种方式绕过 hdiutil 的自动管理,容易出错,一般仅用于调试或特殊场景

卸载磁盘映像的正确方法

无论用 hdiutil attach 还是 mount,都应优先使用 hdiutil detach 卸载,而非 umount

  • 卸载指定挂载点:
    hdiutil detach /Volumes/MyVolume
  • 卸载对应设备(如挂载时输出为 /dev/disk4):
    hdiutil detach /dev/disk4
  • 强制卸载(谨慎使用):
    hdiutil detach -force /Volumes/MyVolume
  • umount 可能残留设备连接,导致后续 hdiutil detach 失败或 Finder 中图标不消失

常见路径与权限注意事项

挂载路径需满足以下条件才能成功:

  • 指定的挂载点(如 /tmp/mymount)必须是已存在的空目录,且当前用户有读写权限
  • 不要用 /mnt/media —— macOS 默认不创建这些目录,也不将其纳入自动管理范围
  • 避免挂载到用户主目录下非标准位置(如 ~/mount),部分 GUI 应用可能无法识别
  • 若提示“Resource busy”,检查是否已有同名卷挂载,或该路径被其他进程占用(可用 lsof +D /path 查看)
text=ZqhQzanResources