当我使用 dd 读取损坏的光学介质并且速度非常慢时,会发生什么情况?

当我使用 dd 读取损坏的光学介质并且速度非常慢时,会发生什么情况?

我有一张 DVD,无法使用常规命令翻录或复制。如果我尝试复制它,它会首先以正常速度复制,然后减慢速度并花费很长时间看似什么也不做。

现在我正在尝试提取用于dd制作它的 .iso 映像的任何数据。我使用以下命令:

dd if=/dev/sr0 of=image.iso bs=2048 conv=noerror,notrunc iflag=nonblock

noerror:读取错误后继续

notrunc:不截断输出文件

nonblock:使用非阻塞 I/O

现在提取已经到了困难的部分,我总是收到如下消息:

dd: error reading ‘/dev/sr0’: Input/output error 
486221+0 records in
486221+0 records out
995780608 bytes (996 MB) copied, 76031,9 s, 13,1 kB/s

它每分钟增加几个字节。正如你所看到的,这种情况已经持续了一段时间了......

所以我的问题是:我的电脑现在在做什么?驱动器速度减慢,但仍然能够提取一些数据(字节数增加)?较低的速度是否使读取数据更容易,或者驱动器只是试图一遍又一遍地读取相同的数据,直到获得其中的一些数据?怎么了?:)

答案1

后者。

带 CD 的 IME,某些读取失败的问题可以通过以下方式修复降低驱动速度。然而,驱动器不知道这一点(对于给定的光盘“应该”安全的速度。从字面上看 - 最高速度受到光盘材料强度的限制)。其次,最低速度将为 1x,仍然比 13 kB/s 高几个数量级。

此外,如果您使用 查看内核日志dmesg,我想您可能会看到来自内核的重试消息。 (但我认为这主要是驱动器的问题,内核不会重试那么多次)。

AFAIK 无法更好地控制驱动器重试是固件限制,已被“复制保护”方案利用。

答案2

当发生磁盘读取错误时,通常会有某种重置过程。对于机械设备,这意味着将移动部件移动到默认位置,然后将它们移回原位。如果问题出在机械调整上,有时可能会使设备再次可读,因为读取头第二次定位正确。即使问题可以重现,机械重置也可能是必要的,因为读取错误导致移动部件不在正确的位置。移动这些部件需要时间。

您可以在内核日志中看到重置(运行dmesg;参见如何找出 dmesg 中的条目的含义?举个例子)。

答案3

它正在尝试读取您的 DVD,但听起来您的光盘已严重损坏,无法读取。您的光盘状况不佳吗?好多划痕?

如果你像对待汽车一样用车蜡抛光它,你就可以挽救它。它会立即消除划痕,以便您的光学阅读器可以读取上面的信息,并且您应该能够像您正在做的那样使用 dd 转储信息。

相关内容