磁盘工具处理 macos .dmg 文件的核心是格式转换与瘦身压缩:需先挂载并选中卷名(非.dmg文件),再用“只读压缩”(udzo)导出;若需有效压缩,须先执行diskutil secureerase freespace清理空闲空间;加密、转iso或内部文件压缩均不支持。
用“磁盘工具”处理 macos 的 .dmg 文件,核心就两件事:格式转换和瘦身压缩。关键不在于点多少次菜单,而在于选对目标(是文件还是已挂载卷)、选对格式、以及是否提前清理冗余空间。
先确认你操作的是“已挂载卷”,不是.dmg文件本身
很多用户卡在第一步——误选了左侧边栏里的 .dmg 文件名,结果“新建映像”选项灰掉或导出失败。正确做法是:
- 双击打开你的 .dmg,确保它已挂载(桌面上出现图标,访达侧边栏显示卷名)
- 在“磁盘工具”左侧边栏中,找到并选中那个挂载后的卷名称(例如“MyApp Install”),而不是下方同名的 .dmg 文件
- 此时顶部菜单栏的“图像”→“新建映像”才可用
压缩导出用“只读压缩”(UDZO),别选错格式
点击“图像”→“新建映像”→“来自 [卷名]”后,在弹窗中重点设置:
- 格式:必须选“只读压缩”(UDZO)。这是唯一启用 zlib 压缩的选项,对文本、日志、代码等重复内容压缩率很高
- 加密:留空。加密码会禁用压缩,生成的文件反而更大
- 分区方案:保持“GUID 分区图”即可,不影响压缩效果
- 名称与位置:按需填写,保存路径建议选非系统盘,避免中途写入失败
可写DMG必须先“清理空闲空间”,否则压缩无效
如果你的原始 .dmg 是稀疏映像(.sparseimage)或曾被挂载、删过文件,磁盘工具无法自动识别哪些区域是“已删除但未清零”的空白块。UDZO 压缩只会压缩实际数据,不会主动剔除这些残留零散块——结果就是新镜像几乎没变小。
解决方法:挂载该 DMG 后,在终端执行:
sudo diskutil secureErase freespace 0 /Volumes/[卷名]这个命令会用零填充所有空闲扇区,为 UDZO 提供干净的压缩基础。执行完再回到磁盘工具走新建映像流程。
需要改加密或转ISO?磁盘工具不支持,得换工具或命令行
磁盘工具只能做基础格式转换(如读/写 → 只读、UDRW → UDRO),但它不能:
- 给已有 .dmg 加密或改密码(需用 hdiutil 命令行)
- 把 .dmg 转成 Windows 可用的 .iso(需第三方工具,如 Leawo 或命令行 isohybrid + mkisofs)
- 压缩镜像内部的文件(比如 PNG 图片、PDF 文档)——这得进镜像里用系统自带归档工具或第三方软件单独处理











