DVD 提供不一致的尺寸信息

DVD 提供不一致的尺寸信息

我有一张(只读、商业、双层)DVD,我正尝试在计算机上创建其备份副本(因为 DVD 可能会损坏)。但是,当我尝试确定光盘的大小时,我得到的大小不一致:

$ blockdev --getsize64 /dev/sr0
7687522304
$ isosize /dev/sr0
7899633664
$ cat /sys/block/sr0/size 
15428972
$ echo '512 *' $(cat /sys/block/sr0/size) | bc
7899633664

在这里,blockdev报告一种尺寸,其他东西报告更大的尺寸。不幸的是,ddcat等似乎使用了blockdev报告的大小,即使剩余的 212111360 字节中似乎有数据:光盘映像来自ddcat无法正常工作,du -b在已安装的光盘上给出了接近较大尺寸的东西(不是准确地说,可能是由于文件系统开销),并且实际尝试访问已安装的文件系统往往会出现 I/O 错误。

尽管如此,该光盘在独立播放器中可以正确播放,并且似乎可以(有时不可靠)使用libdvdnav但不能使用libdvdread

该光盘发生了什么情况?如何获取备份副本?

编辑:我添加了有关相关光盘的更多详细信息。我还计划尝试使用 Windows 对其进行备份,以解决“如何获取备份副本”的紧迫问题(或者在失败时获取更多信息),但我仍然想知道发生了什么以及我如何在 Linux 下做到这一点。

EDIT2:Windows 本身似乎可以工作,但它没有任何本机磁盘映像器。 Cygwin 生成了看似无关的奇怪错误,并且一个旨在创建 ISO 的 Windows 程序发现了许多在我的 Linux 机器上没有出现的坏扇区。这些不是我所期望的结果。我将它们发布在这里,以防它们为我当前的问题提供提示,但我不希望它们这样做。

EDIT3:似乎有时blockdev在更换光盘时光盘尺寸会“卡住”。当我使用物理托盘弹出按钮而不是从命令行中“弹出”时,似乎会发生这种情况。我需要进一步调查(这真的是触发器吗?),但它似乎提供了两种解释(当我没有正确卸载光盘时,系统会感到困惑,即使程序员应该更期待这一点USB 驱动器,尤其是只读介质)和潜在的解决方法(将大小blockdev固定在 8.5 GB)。

现在它可能是相关的,我将补充一点,我正在使用 Fedora 20,systemd它会自动挂载文件夹中的光盘/run/media/dhouck/<DISCNAME>。 DISCNAME 由文件系统自动确定;我对 UDF 的了解不够多,无法说出具体方法,但我怀疑它是否相关。当大小卡住时,该安装路径的 DISCNAME 部分也无法更改。我怀疑系统的某些部分未能注意到介质被删除,因此未能正确卸载。

答案1

事实证明,这个问题不是由 DVD 本身引起的,而是由于当我使用硬件弹出按钮而不卸载光盘时 Linux 感到困惑(该eject命令有效,因为它负责正确卸载)。我认为这是安全的,因为光盘是只读的,而且我认为在不安全卸载的情况下删除介质只会导致写入问题。

相关内容