bab*_*bou 6 gnu data-recovery hard-disk ddrescue
这个问题解决了第一遍的ddrescue在被救出的设备。
我不得不抢救一个 1.5TB 的硬盘。
我使用的命令是:
# ddrescue /dev/sdc1 my-part-img my-part-map
Run Code Online (Sandbox Code Playgroud)
当在磁盘的一个好的区域上启动救援(没有可选参数)时,读取速率(“ current rate”)保持在 18 MB/s 左右。
它偶尔会变慢一点,但后来又恢复到这个速度。
但是,当它遇到磁盘坏区时,它可能会明显变慢,然后再也不会回到 18 MB/s,而是保持在 3 MB/s 左右,即使读取 50 GB 的好磁盘也没有问题.
奇怪的是,当它当前正在以 3 MB/s 的速度扫描一个好的磁盘区域时,如果我停止ddrescue并重新启动它,它会以 18 MB/s 的更高读取速率重新启动。ddrescue
当它以 3 MB/s 的速度运行时,我通过停止和重新启动实际上节省了大约 2 天,我必须这样做 8 次才能完成第一遍。
我的问题是:为什么它ddrescue不会自己尝试回到最高速度。考虑到文档中明确规定的首先快速完成简单领域的政策,这就是应该做的事情,而我观察到的行为在我看来似乎是一个错误。
我一直想知道这是否可以处理的选项
-a或--min-read-rate=… 但手动如此简洁的,我不知道。此外,我不明白应该根据什么为该选项选择读取率。应该是18MB/s以上?
尽管如此,即使有一个选项来指定它,我很惊讶默认情况下没有这样做。
两名用户投票结束了主要基于意见的问题。
我很感激知道它是什么意思?
我在一个实际示例中以一定的数值精度描述了一个重要软件的行为,清楚地表明它不符合其文档中规定的主要设计目标(尽快完成简单的部分),并且非常简单的推理可以改善这一点。
该软件是众所周知的,来自一个非常值得信赖的来源,具有精确的算法,我希望大多数缺陷早就被淘汰了。因此,我向专家询问这种意外行为的可能已知原因,而不是我自己在这个问题上的专家。
此外,我问是否应该使用软件的选项之一来解决问题,这是一个更精确的问题。我要求详细的方面(如何选择此选项的参数),因为我没有找到相关文档。
我问的是我工作所需的事实,而不是意见。我用实验事实而不是意见来激励它。
我一直想知道这是否可以通过选项 -a 或 --min-read-rate= 来解决……但是手册太简洁了,我不确定。此外,我不明白应该根据什么为该选项选择读取率。应该是18MB/s以上?
该--min-read-rate=选项应该会有所帮助。现代驱动器往往会花费大量时间进行内部错误检查,因此虽然速度非常慢,但这不会报告为错误情况。
即使在读取 50 GB 的好磁盘后也没有问题。
这也意味着:你甚至不知道是否有问题。驱动器可能有问题,并决定不报告。
现在,ddrescue支持使用动态--min-read-rate=值,来自info ddrescue:
If BYTES is 0 (auto), the minimum read rate is recalculated every
second as (average_rate / 10).
Run Code Online (Sandbox Code Playgroud)
但根据我的经验,自动设置似乎没有多大帮助。一旦驱动器卡住,特别是如果这种情况刚开始发生,我想 average_rate 永远不会保持足够高以使其有效。
因此,当您想获取尽可能多的数据时,首先是快速区域,我只是average_rate / 10手动将其设置为第一遍,如果驱动器完好无损,average_rate 是驱动器的平均速率。
因此,例如,您可以使用10M此处(对于应该以 ~100M/s 运行的驱动器),然后您可以随时返回并稍后在慢速区域试试运气。
我观察到的行为在我看来是一个错误。
如果你有一个错误,然后你不得不去维护它。如果没有相同类型的驱动器故障,很难重现。也可能是驱动器本身陷入某种恢复模式。
在处理有缺陷的驱动器时,您还必须检查dmesg是否有任何奇怪的事情发生,例如总线重置等。一些控制器在处理故障驱动器方面也比其他控制器差。
有时人工干预是无法避免的。
即便如此,我很惊讶这不是默认完成的。
大多数程序都没有合理的默认值。dd默认情况下仍然使用 512 字节的块大小,这在大多数情况下是“错误”的选择......被认为是理智的也可能会随着时间的推移而改变。
我问的是我工作所需的事实,而不是意见。
拥有良好的备份比不得不依赖更好ddrescue。从故障驱动器中获取数据首先取决于运气。数据恢复涉及很多个人经验,因此 - 意见。
我们拥有的大多数恢复工具也是愚蠢的。该工具没有向中央服务器报告的 AI,就像“哦,我以前在这个特定的驱动器模型上看到过这种故障模式,所以让我们改变我们的策略......”。所以这部分必须由人来完成。
小智 6
这是一个有点死灵的帖子,但对于任何可能遇到这种情况的人来说:
我已经能够重现 OP 的行为,并让 ddrescue 通过使用其-O标志恢复其最大读取速度,该标志在每次错误后重新打开输入文件。
不幸的是,我没有机会深入研究为什么它在遇到错误后似乎以 ~3 MiB/s 的速度恢复,但我想我应该分享我的经验。
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |