在Linux下安装混合ISO(ISO 9660 / HFS +)

我正在尝试在混合.dmg文件中挂载HFS +分区到本地文件夹。

我发现一个HFS +超级块(按照这里的说明),并试图将它与/ dev / loop0关联,然后安装:

losetup -o MY_HFS_SUPERBLOC_OFFSET /dev/loop0 image.dmg mount -t hfsplus /dev/loop0 /mnt/cdrom/ 

但是,当我从上面的列表中运行最后的命令,我得到这个消息:

mount:错误的fstypes,错误的选项,/ dev / loop0上的坏超级块,缺less代码页或帮助程序或其他错误在某些情况下,在syslog中find有用的信息 – 试试dmesg | 尾巴左右

dmesg | 尾巴:

[12130.800828] hfs:无法加载目录文件

我肯定我正在指定正确的MY_HFS_SUPERBLOC_OFFSET,我在Apple的HFS +分区结构上跟随了这个技术说明 ,并在.dmg文件的结尾find了一个Volume Header的匹配副本。

我将如何挂载这个图像?

所有build议感激!

不相信这将帮助所有这些,但基于HFS驱动程序的来源,它似乎正在努力寻找该技术说明中详细的b-tree 。 不幸的是,我没有这样的文件,甚至试验。

372 HFSPLUS_SB(sb).cat_tree = hfs_btree_open(sb,HFSPLUS_CAT_CNID);

373 if(!HFSPLUS_SB(sb).cat_tree){

374 printk(KERN_ERR“hfs:无法加载目录文件\ n”);

375转到清理;

376}

不幸的是,我所挖掘的每一个链接都是基于这个问题讨论使用Linux活动磁盘来破坏HFS分区而不是挂载一个dmg映像。

即使在将DMG解压缩到正常的磁盘映像之后,我也遇到类似的问题。 原来的问题是因为我的DMG是一个混合(FAT + HFS)图像,并没有正确识别HFS驱动程序。

看看下面的链接,find一个办法[ http://www.64lines.com/mounting-hfs-plus ]

愚蠢的答案,但如果你只是尝试做,会发生什么:

 mount -t hfsplus image.dmg /mnt/cdrom 

一些谷歌search把丙酮国际标准组织作为一个开源工具,可以处理DMG格式的ISO映像。 我不知道它是否会支持HFS +元数据,但是如果你需要的只是文件内容,也许它会做这个工作?

Mac OS / Apple的DMG文件格式是一种压缩文件格式。 看起来你已经在一个压缩文件中发现了意外的正确的签名序列,并且把1024字节倒退到根据你引用的文章的分区起始偏移量。

你可以用windows和linux下的p7zip解压文件dmg(我还没有在linux下试过),或者用dmg2iso或者其他工具把它转换成uncompressed iso。

希望,这有助于…

最好的祝福…