有人知道如何找到 CD 或 DVD 上某段数据的物理位置吗?
我现在正在看 DVD,看了一半,但总是在电影的某个特定位置死机,大概是因为划痕。我有一套维修工具,但我不知道应该重点修理哪里,因为光盘上有几个磨损和划痕,我不知道是哪个地方导致了这个问题。
显然,清洁所有这些是不可取的,因为这不仅浪费了套件中的耗材,而且并不是所有的东西都是问题,通过操作它们,一些可能变得无法阅读。此外,仅仅因为我看了一半的电影并不意味着它已经从中心走到了边缘,原因如下:
- 光盘外边缘的数据比内边缘的数据多(从数学上讲,圆形比矩形更复杂)
- 光盘并未完全填满(即使已填满,电影本身也会用完它,还会有额外内容等)
- 因为在这个特殊情况下,它是一张商用 DVD,所以它也是双层的,这进一步使手动判断变得复杂
因此,我试图找到一个程序,可以让我识别文件(或其中的一部分)、群集等,并向我显示它在 CD/DVD 上的位置的图片。这样,我就可以查看光盘并修复与距轮毂的距离相对应的任何划痕。
例如,下图可能指示磁盘上几个文件或一系列集群的位置,因此通过查找这些区域中的异常(根据需要旋转),可以识别正确的异常。
我确信这是可以做到的,因为至少有一种形式的版权保护(直接成形术) 使用它,DVD-lab Pro 包括一个“DVD 拓扑”功能来执行此操作。
答案1
这并非是对您的完整问题的回答,而是对一系列小问题的回答,如果有的话,可以从中构建出最终的答案。
假设你的“修复工具包”真的有效,并使坏扇区再次可读......(所以假设你没有浪费时间)
你说电影停在“中间”,但显然你不知道中间在磁盘表面的什么位置。你可以尝试使用dd
Linux 命令和选项conv=noerror
来创建磁盘映像。如果出现读取错误,你可以更准确地知道哪个扇区受到损坏,因为 dd 会在标准输出上警告你有关错误的信息。
另外,请记住,在此阶段(创建光盘映像),您甚至可能会在硬盘上获得完整的映像,因为您的计算机的驱动器(假设您在机顶盒上看电影)可能, 我说可能性能比您观看电影时使用的驱动器更好(或通常更差)。在这种情况下,我建议您告别修复光盘,破解 CSS 并将其刻录到空白媒体上,您可以理所当然地这样做,因为您拥有原始光盘并且您正在进行个人备份。
如果出现读取错误,则可能需要进一步调查。我可以告诉您的是,Linux 将设备视为线性块设备(从 0 到大约 9GB),大约 4.5GB 处有双层转换。DVD 总是从内轨刻录到外轨,根据我的经验,第二层也是如此,因此如果您能找到损坏扇区的编号,您就可以大致了解它可能更接近哪个损坏的轨道。
我会研究 UDF 寻址格式,以找到将扇区映射到磁道的提示。硬盘通常使用 CHS 寻址(磁柱、磁头、扇区),但我认为 DVD 有所不同。
抱歉,如果我不回答你的这个问题确实很有挑战性。
答案2
有一个名为 dvdisaster 的工具可以创建磁盘地图,标识不可读区域:
它不会生成特定数据位置的图片,但会为您提供受损区域的位置。
您可以在 Debian Linux 中找到此工具:https://packages.debian.org/dvdisaster