无法以读/写方式装载 dmg 映像

无法以读/写方式装载 dmg 映像

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

我已经用命令转换了图像

 hdiutil convert -format UDRW -o ./X15-65804.img ./X15-65804.iso

问题是我需要先从映像中删除一个文件,然后再将其写入 USB。据我了解,在转换过程中,新的映像文件已变为可读/写(由于切换-format UDRW)。但是,我无法从已安装的映像中删除文件(权限被拒绝)。

我还尝试从命令行安装:

hdiutil attach -readwrite X15-65804.dmg

还是不行,镜像是只读的。我该如何以读/写模式安装它?

答案1

磁盘映像只是模拟磁盘的容器。DMG 的内容与 DMG 容器不同。因此,您可能只是将容器转换为读/写。

例如:

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

 ___________________        ___________________
|                   |      |                   |
|  Disk Image (r/o) |      |  Disk Image (r/w) |
|  _______________  |      |  _______________  |
| |               | |  ==> | |               | |
| | ISO9660 (r/o) | |      | | ISO9660 (r/o) | |
| |_______________| |      | |_______________| |
|___________________|      |___________________|

如今,许多操作系统发行版都发布混合文件系统映像,您会遇到类似的问题。

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

生成的图像稍后可以使用刻录来刻录,或转换为另一个只读格式化并转换。

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

因此,有一个解决方法:复制文件并制作另一个 DMG。

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

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

hdiutil pmap your_file.dmg

答案2

我在例子部分hdiutil 手册页

 Converting:
       hdiutil convert master.dmg -format UDTO -o master
             converts master.dmg to a CD-R export image named master.cdr
       hdiutil convert /dev/disk1 -format UDRW -o devimage
             converts the disk /dev/disk1 to a read/write device image file.  authopen(1) will be used
             if read access to /dev/rdisk1 is not available.  Note use of the block-special device.

另外,这件作品看起来像你可以使用的东西:

使用影子文件将只读图像附加为可读写图像以进行修改,然后将其转换回只读图像。此方法消除了在修改图像之前将其转换为可读写图像所需的时间/空间。

       hdiutil attach -owners on Moby.dmg -shadow
       /dev/disk2   Apple_partition_scheme
       /dev/disk2s1 Apple_partition_map
       /dev/disk2s2 Apple_HFS               /Volumes/Moby

       ditto /Applications/Preview.app /Volumes/Moby
       hdiutil detach /dev/disk2
       hdiutil convert -format UDZO Moby.dmg -shadow

我甚至想知道原始转换是如何工作的,似乎参数的顺序是错误的,例如输入文件应该在单词之后转变

相关内容