GNU ddrescue 对故障硬盘进行映像处理速度极慢

GNU ddrescue 对故障硬盘进行映像处理速度极慢

我朋友有一台(几乎已满)故障的 1 TB Western Digital My Passport。它只能偶尔安装在我的 MacBook 上,并且完全拒绝安装在我的 Ubuntu 机器上。我正尝试使用 GNU ddrescue 1.19(在 Ubuntu 机器上)在 2 TB Western Digital My Passport Ultra 上创建驱动器映像。故障驱动器是 NTFS,目标驱动器格式化为 ExFat。

两者都通过 USB 3 连接。即使使用-n来跳过抓取,我的平均读取速度也约为 60-70 kB/s。这相当于大约半年的时间才能读取完整 TB 的数据。每当 ddrescue 启动时,通常前 2 或 3 次读取报告的速度约为 1-2 MB/s 或更多,但随后它立即不可避免地急剧下降。

我在网上搜索了一下,发现很多人都有类似的问题,但没有好的解决办法。我试过调整-b扇区大小、-c簇大小和-d内核缓存旁路,但都没有成功。我的infile/dev/sdc,我的outfile是输出磁盘上的 .dd 文件,安装在 /media 中。

我还能尝试什么来加快这个速度?

编辑:

智能输出:

$ sudo smartctl -H /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.16.0-41-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART STATUS RETURN: incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   133   133   140    Pre-fail  Always   FAILING_NOW 2829

答案1

步骤 1)确保驱动器可以在总线上看到:

sudo lshw-businfo

步骤 2)获取 hddsupertool这里。

以 root 身份运行,选择设备,然后选择 VSC 条目。

步骤3)选择此条目:

4)WD royl(Marvel)补丁mod 02(慢速修复)

步骤 4)你首先要

1)将模块读入文件并创建补丁。

其次是

2)将修补后的数据写回磁盘。

步骤5)返回VSC入口,选择:

5)WD royl(Marvel)补丁mod 32(慢速修复)

并再次执行条目 1 和 2(读取修改、修补和写回)

注意:最后一步可能会提示失败。但对我来说还是有用的。

步骤 6)关闭驱动器电源并循环

您刚刚所做的操作:您已清除 SMART 状态和文件重定位列表。重定位列表包含有关哪些扇区需要重定位的信息,在 WD 的案例中,这种情况在读取失败时经常发生。

信用: 斯皮尔迪特(手动操作方法)&斯科特·德怀尔(hddsupertool 的作者)

修复后,我的 testdisk 扫描 i/o 速度从 130KB/s 提升至 11-13MB/s,并且从我第一次使用该驱动器时开始,我就能以 +100MB/s 的速度恢复数据。这是经过一周的研究,排除了大量死胡同之后的结果。

祝你好运!

答案2

警告/免责声明

此过程被认为有风险。如果您的数据足够有价值,您应该直接联系数据恢复专家,因为您的任何尝试都可能使他们的工作更加困难,因此成本甚至会更高。

也就是说,它对我来说完美无缺,但是 YMMV。

这并不意味着您的驱动器将再次可用,而只是意味着您可以以合理的速度恢复仍可读的内容。

WD Slow 问题修复

  1. 得到硬盘超级克隆从其下载区,使用最新的 Debian,你应该选择hddsuperclone_xxxx_amd64.deb
  2. sudo apt install ./hddsuperclone_*_amd64.deb从下载目录安装
  3. 您可以使用提供的hddsuperclone-install-depends-deb.sh脚本安装依赖项,但仅仅apt-get install libusb-0.1 -y是此过程所必需的。
  4. sudo hddsuperclone --tool在 root 可以写入某些文件的目录中运行
  5. A) ATA Passthrough
  6. 选择您的磁盘(再三检查是否有一些相似)
  7. 7) VSC
  8. 4) WD royl (Marvel) patch mod 02 (slow fix)
  9. 1) Read the module to a file and create the patch.
  10. 2) Write the patched data back to the disk.
  11. 输入您被要求输入的内容
  12. q) Quit
  13. 对磁盘进行电源循环(拔下、重新插入)
  14. 重复步骤 4 至 7
  15. 但选择5) WD royl (Marvel) patch mod 32 (slow fix additional)
  16. 重复第 9 至 13 步

瞧,现在你的磁盘它没有坏块!你当然更清楚。我回到 ddrescue。驱动器路径在第一次电源循环时发生了变化,但在第二次电源循环后又恢复了。

致谢

当然,全部功劳都归功于@SmokinGrunts,这只是他答案的更新。

还要非常感谢 hddsupertool 的作者 Scott Dwyer,这似乎是唯一可以进行这种简单修复的免费工具。

语境

我一直在尝试为朋友恢复 WDC WD10JMVW-11AJGS2(仅限 USB)磁盘上的数据。该磁盘确实发出可怕的噪音,因此我尽快运行了 ddrescue。它开始运行良好,但几分钟后,速度确实慢得像爬行一样,几乎正好是 64KB/s...

我尝试了所有可能的 ddrescue 选项,并听从了所有可能的帮助,但都无济于事。我把问题归咎于 btrfs,这是我第一次将其用作目标文件系统,并且还尝试了很多其他方法。还是没用。

然后我开始偶然发现很多关于可怕的“WD 速度慢问题”的讨论,其中大部分都是毫无帮助甚至粗鲁的评论。然后我来到这里,找到了第一个真正的免费解决方案。

我必须挖开茂密的HDDSuperClone 文档,了解如何将此处的说明适应新版本。搜索以wd_royl_patch_mod02找到相关部分,几乎在最后。因此我想发表评论,但作为新手,我不得不写一个答案。我尽力了,如果可以做得更好,请提出建议。

问候。

相关内容