您好,我下载了一个可启动的 .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
我甚至想知道原始转换是如何工作的,似乎参数的顺序是错误的,例如输入文件应该在单词之后转变。