【问题标题】:Read files from raw disk image (2352 bytes/sector)从原始磁盘映像读取文件(2352 字节/扇区)
【发布时间】:2014-04-30 16:24:41
【问题描述】:

几个月前我已经问过类似here 的问题,但是我的更新中使用的解决方案当然不好,因为我不知道我想要的文件从哪个偏移开始,该代码读取整个文件直到它找到了想要的字符串,这很不方便。这就是为什么我搜索了一个用 Java 编码的 ISO9660 文件阅读器,我遇到了这个 project,它可以完美读取 ISO9660 文件,但是我希望能够打开一些文件格式,比如 binimg .

不幸的是,代码不起作用,因为它期望 ISO9660 标头 \x01CD001\x01 位于标准 here 和 @987654324 定义的前缀偏移量(32768,就在前 16 个扇区之后,保留用于其他目的) @:

7.前十六个扇区是空的

前 16 个扇区(扇区编号 0 到 15,包括)只包含零。 ISO9660 没有定义这些扇区的内容,但对于 DOS,它们显然总是写为零。它们显然是保留给可以从 CD-ROM 引导的系统使用的。

就我而言,我有imgbin 磁盘映像,它们的\x01CD001\x01 标头位于第18 个扇区结束后792 个字节的偏移量37656 处。这会使代码抛出错误。

既然有软件可以读取binimg 文件的内容而不需要cueccd 文件,那么在这种情况下填写标题的规则是什么?它是标准还是他们通过字节粗暴地搜索标头?如果这是一个标准,我在哪里可以找到任何类型的文档/实现?

更新:我发现这些文件的扇区大小不同:2352 字节/扇区,因为它们是 CD-R 的原始副本。

【问题讨论】:

  • file 命令对这些文件有什么说明(前提是您使用 Linux 或 Mac OS X 系统)?
  • @fge 它只是说data
  • 嗯,是的,这并没有真正的帮助......

标签: java iso9660


【解决方案1】:

由于我没有找到类似的东西,也没有人给出答案,所以我自己编写了一个解决方案,你可以找到它here

它是一个能够从符合 ISO9660 格式的磁盘映像中读取文件的库。 它同时支持每扇区图像 2048 和 2352 字节。

【讨论】:

    猜你喜欢
    • 2012-09-02
    • 2020-02-03
    • 2010-12-17
    • 2020-10-11
    • 2013-11-20
    • 2023-03-23
    • 1970-01-01
    • 2011-08-22
    • 2017-12-04
    相关资源
    最近更新 更多