Answers:
实际上,几乎所有的只读DMG都已压缩(UDZ0
请参阅hdiutil(1)
手册页),因此它们的文件格式不仅仅支持“翻转”以使其可写。
您可以使用磁盘工具或
hdiutil imageinfo filename.dmg
...查看磁盘映像的格式。然后,您可以使用“磁盘工具”或类似工具
hdiutil convert filename.dmg -format UDSP -o filename.sparseimage
...将其转换为读写格式。请注意,转换并不是就地进行的,因此您必须告诉它将输出文件放置在文件系统上,该文件系统具有足够的空间来容纳来自的所有数据的未压缩副本.dmg
。
该.dmg
扩展不保证图像实际上是压缩的,但是,这是迄今为止最大的可能。
您还可以使用的其他几种方法hdiutil
。例如,如果您.dmg
实际上是未压缩的只读(UDRO
),则可以强制将其装入读写。另外,如果您想保留.dmg
压缩文件但仍想以可写方式挂载它,则可以使用“影子文件”挂载它。所有写操作实际上都会写入影子文件。
更新:关于此问题的其他答案似乎认为.dmg
总是意味着UDZ0
不正确。在hdiutil(1)
手册页上,这是a .dmg
可以具有的内部格式的列表(请注意,其中一些可以具有不同的默认文件扩展名,例如.sparseimage
,但是我敢肯定这也不是一条硬性规定)。
UDRW - UDIF read/write image
UDRO - UDIF read-only image
UDCO - UDIF ADC-compressed image
UDZO - UDIF zlib-compressed image
UDBZ - UDIF bzip2-compressed image (OS X 10.4+ only)
UFBI - UDIF entire image with MD5 checksum
UDRo - UDIF read-only (obsolete format)
UDCo - UDIF compressed (obsolete format)
UDTO - DVD/CD-R master for export
UDxx - UDIF stub image
UDSP - SPARSE (grows with content)
UDSB - SPARSEBUNDLE (grows with content; bundle-backed)
RdWr - NDIF read/write image (deprecated)
Rdxx - NDIF read-only image (Disk Copy 6.3.3 format)
ROCo - NDIF compressed image (deprecated)
Rken - NDIF compressed (obsolete format)
DC42 - Disk Copy 4.2 image
这是我刚用于项目的方法,是迄今为止最好的方法。在这里找到它:
http://myjeeva.com/best-possible-way-edit-read-only-dmg.html
使用hdiutil附加只读dmg文件
hdiutil attach -owners on /path/to/your.dmg -shadow
修改您的DM。使用命令行添加,编辑或删除内容-在GUI中进行操作可能会产生奇怪的副作用或权限问题。此外,您可能需要执行sudo命令
通过以下命令卸下已安装的驱动器,或从Finder中将其弹出
# fill disk number at <number>
hdiutil detach /dev/disk<number>
将阴影的dmg转换/写入为只读DMG
hdiutil convert -format UDZO -o /path/to/new.dmg /path/to/your.dmg -shadow
您无法写DMG。这个不成立。您需要复制所有内容,进行编辑并制作新的DMG。
抱歉。
常规DMG图像不可写,因为无法为其添加空间。@Brian_Postow指出的解决方案是复制整个内容并创建一个全新的DMG文件。如果您打算大量执行此操作,则下次可创建稀疏图像,因为它们可写。