我正在尝试将混合 .dmg 文件中的 HFS+ 分区挂载到本地文件夹。
我在其中发现了一个 HFS+ 超级块(按照这里)并尝试将其与/dev/loop0关联,然后挂载:
losetup -o MY_HFS_SUPERBLOC_OFFSET /dev/loop0 image.dmg
mount -t hfsplus /dev/loop0 /mnt/cdrom/
但是,当我运行上面列表中的最后一个命令时,收到以下消息:
mount:错误的 fs 类型、错误的选项、/dev/loop0 上的错误超级块、缺少代码页或辅助程序或其他错误在某些情况下,在 syslog 中发现有用的信息 - 尝试 dmesg | tail 等
消息 |尾巴:
[12130.800828] hfs:无法加载目录文件
我确信我指定了正确的 MY_HFS_SUPERBLOC_OFFSET,我遵循了这一点技术说明来自 Apple 关于 HFS+ 分区的结构,并在 .dmg 文件末尾找到了匹配的卷头副本。
我该如何安装该图像?
欢迎提出所有建议!
答案1
愚蠢的回答,但如果你尝试这样做,会发生什么:
mount -t hfsplus image.dmg /mnt/cdrom
答案2
不确定这是否会有很大帮助,但根据 HFS 驱动程序的来源,它似乎很难找到该技术说明中详细介绍了 b-tree。不幸的是,我没有这样的文件可以进行实验。
372 HFSPLUS_SB(sb).cat_tree = hfs_btree_open(sb,HFSPLUS_CAT_CNID);
373 如果(!HFSPLUS_SB(sb)。cat_tree){
374 printk(KERN_ERR "hfs: 无法加载目录文件\n");
375 转到清理;
376 }
不幸的是,我根据此内容找到的每个链接都在谈论使用 Linux 活动磁盘来 fsck 损坏的 HFS 分区,而不是安装 dmg 映像。
答案3
我将 DMG 解压为普通磁盘映像后,仍然遇到类似问题。结果发现,问题出在我的 DMG 是混合 (FAT+HFS) 映像,HFS 驱动程序无法正确识别。
请查看以下链接了解操作方法[http://www.64lines.com/mounting-hfs-plus]
答案4
Mac OS/Apple 的 DMG 文件格式是一种压缩文件格式。根据您引用的文章,您似乎在压缩文件中意外找到了正确的签名序列,并将分区起始偏移量向后移动了 1024 个字节。
您可以在 Windows 和 Linux 下使用 p7zip 解压缩文件 dmg(我还没有在 Linux 下尝试过)或者使用 dmg2iso 或其他实用程序将其转换为未压缩的 iso。
希望,这有帮助...
此致...