最可靠方式是用终端 hdiutil 创建 UDBZ 格式加密只读 DMG,因磁盘工具遇符号链接、扩展属性等会静默降级为未加密格式;执行 hdiutil create -srcfolder -format UDBZ -encryption AES-256 -agentpass -o 命令可确保 AES-256 加密生效。

在 macOS 中创建只读的加密磁盘映像,最可靠的方式是使用终端命令 hdiutil,因为图形界面的“磁盘工具”在处理符号链接、扩展属性或 ACL 权限时,容易静默降级为未加密格式(如 UDRO),导致双击即可打开、毫无密码保护。
为什么推荐用终端而不是磁盘工具
磁盘工具 GUI 在“从文件夹制作映像”时,若源文件夹含以下任一情况,会自动跳过加密步骤:
- 符号链接(symlinks)
- 扩展属性(xattr),例如来自 iCloud 或某些编辑器添加的元数据
- ACL 访问控制列表
- 路径中含中文、空格或特殊字符(未转义时)
验证是否真加密:终端运行 hdiutil imageinfo yourfile.dmg | grep encryption,输出必须是 encryption: AES-256。若显示 none,说明加密已失效。
用 hdiutil 创建 AES-256 加密只读 DMG
执行以下命令(替换路径和名称):
- -srcfolder:指定待封装的完整文件夹路径(不能有中文空格,建议先重命名为英文)
- -format UDBZ:关键!这是压缩 + AES-256 加密的只读格式;不要用 UDIF 或 UDZO,它们不保证加密生效
- -agentpass:弹出图形密码框,避免密码明文暴露在终端历史或进程列表中
- -o:指定输出 .dmg 文件路径和名称
回车后,系统弹出密码输入窗口,需两次确认;完成后生成一个体积更小、不可修改、挂载即需密码的只读映像。
挂载与兼容性注意事项
生成的 UDBZ 映像在 macOS 10.15 及以上可直接双击挂载;若在旧系统(如 macOS 10.13)上提示 “no mountable file systems”,说明编码不兼容,可临时转换:
hdiutil convert -format UDRW -o "/Users/你/桌面/temp.dmg" "/Users/你/桌面/SecureArchive.dmg"然后用 hdiutil attach -prompt "/Users/你/桌面/temp.dmg" 挂载。UDRW 格式兼容性最广,但不压缩、也不加密——仅作临时过渡。


















