无法将 dmg 映像挂载为读/写

Att*_*lop 6 iso-image dmg-image osx-snow-leopard macos

您好,我已经下载了一个可启动的 .iso 映像,我想将其写入 OSX (10.6) 下的 USB 记忆棒。

我已经用命令转换了图像

 hdiutil convert -format UDRW -o ./X15-65804.img ./X15-65804.iso
Run Code Online (Sandbox Code Playgroud)

问题是我需要在将文件写入 USB 之前从图像中删除文件。据我了解,在转换过程中,新图像文件已变为读/写状态(由于-format UDRW切换)。尽管如此,我还是无法从挂载的映像中删除文件(权限被拒绝)。

我也尝试从命令行挂载:

hdiutil attach -readwrite X15-65804.dmg
Run Code Online (Sandbox Code Playgroud)

仍然没有运气,图像是只读的。我怎么能以读/写模式安装它?

小智 12

磁盘映像只是模拟磁盘的容器。DMG 的内容不同于 DMG 容器。所以你可能只是将容器转换为读/写。

例如:

我们可以将包含 ISO 的 DMG 转换为读/写,但 ISO 本身只能是只读的:

 ___________________        ___________________
|                   |      |                   |
|  Disk Image (r/o) |      |  Disk Image (r/w) |
|  _______________  |      |  _______________  |
| |               | |  ==> | |               | |
| | ISO9660 (r/o) | |      | | ISO9660 (r/o) | |
| |_______________| |      | |_______________| |
|___________________|      |___________________|
Run Code Online (Sandbox Code Playgroud)

您在使用混合文件系统映像时遇到了类似的问题,如今许多操作系统发行版都在发布这些映像。

以下是hdiutil(1)关于混合图像的手册页部分的摘录:

生成的图像稍后可以使用burn进行刻录,或者使用convert转换为另一种只读格式。

生成的文件系统不用于转换为 read-write,但可以通过 ditto(8) 或 asr(8) (在文件复制模式下)安全地将其文件复制到读/写文件系统。

所以有解决方法:复制文件并制作另一个DMG。

不幸的是,这可能是您希望避免的。

顺便说一句,您可能会发现此命令有助于查看 DMG 的分区:

hdiutil pmap your_file.dmg
Run Code Online (Sandbox Code Playgroud)