USB硬盘驱动器上的ddrescue非常慢


9

我正在从死掉的笔记本电脑中恢复HDD(根本无法启动,Disk Utility报告说没有问题,但不会挂载磁盘)。我已经通过USB适配器连接了硬盘。ddrescue像这样运行:

sudo ddrescue -v -n /dev/disk1s2 "/Volumes/Original HD/image.dmg" ddrescue.log

到目前为止,没有错误,但是平均读取速度已逐渐降至50KB / s。开始时约为2MB / s。分区的大小为300GB。到目前为止,我已经能够恢复160GB。我正在恢复到MacBook上的HFS +分区。

传输速度缓慢的原因可能是什么?如何提高传输速度?

Answers:


8

这似乎就是ddrescue&USB传输在OSX下的工作方式。从标题为:主题的线程:[Bug-ddrescue] ddrescue在osx下慢10倍

在功能完备的硬盘驱动器上工作时,在Linux下它会以完整的I / O速度运行。当在osx下使用默认的编译标志进行编译时,它的速度要慢几倍,有时会爬行到Kb / s。如果输出文件为/ dev / null,问题仍然存在。

同一线程也有此响应。

根据我在OS X上的经验和测试,/dev/rdisk…总是首选使用原始字符设备。此外,通过设置较大的复印块尺寸可以进一步提高传输速度。ddrescue -c 1Ki在大多数情况下,512KiB()的大小给了我最好的结果。

并且:OS X原始字符设备确实具有定义的大小,因此即使在第一次运行中也可以轻松使用它们。(至少在这一点上,现有文档中有关原始设备的注释ddrescue不适用于OSX。)

我认为这不是中的错误ddrescue,因为其他实用程序在OS X上喜欢ddcat表现出相同的行为。

访问/ dev / disk…块设备的速度相当慢,与使用的复制块大小无关。另一方面,/ dev / rdisk…原始字符设备的读取速度很大程度上取决于所选的“复制块大小”:

  • 512字节(ddrescue -c 1,默认为dd)是最慢的。
  • 将其设置为4096字节(ddrescue -c 8dd bs=4K)可以得到与访问/ dev / disk相同的慢速…
  • ddrecue的默认128个扇区(= 64KiB ddrescue -c 128,,dd bs=64K)可带来相当不错的效果。
  • 进一步乘以(最高ddrescue -c 1Ki/ dd bs=512K)可带来最高速度(通常比快8-12倍/dev/disk…
  • 超过该值并没有进一步提高测试速度;有时甚至下降。

这些是我自己测量的结果,您的结果可能会因所使用的介质和IO硬件而异。也许其他一些用户可以分享他们的经验,我们可以更好地了解这个话题。

参考文献


1
在我的情况下,更改复印块大小不会影响传输速度。但是,使用/ dev / null播放时,通过将输入文件位置设置为200GB,我能够获得良好的传输速率(最高8MB / s)。现在,我已使用其他参数恢复了恢复过程-i214748364800。我希望最初的0-160GB不会受到此影响。
Mik 2014年

1
不幸的是,传输速率的提高是短暂的。我将尝试ddrescue从UNIX系统运行。
Mik 2014年


@Mik感谢您提供用于在其他位置恢复恢复的确切参数。源驱动器在位置121242584064处发生故障,我尝试恢复通过它,但ddrescue说未对齐读取错误。扇区大小正确吗?因此,使用您的价值,我恢复到200GB。不,它不会影响初始的0-160GB。
科林

0

HFS+对MacOS上的文件系统了解不多,但是我得到的经验是,从USB记忆棒上抢救运行Linux Mint的笔记本电脑上的500GB内部硬盘驱动器(通过SATA连接),将救援映像和日志文件保存在exFat格式化的USB硬盘驱动器的启动速度非常慢(1-2MB /秒),但是在大约250GB之后,它只能以<100KB /秒的速度爬行。救援映像文件越来越大,它似乎变得越来越慢。

然后,我将救援映像和日志文件移至另一个临时位置,使用ext4文件系统重新格式化USB硬盘,将文件移回其上,并恢复ddrescue进程-现在它又以1-20MB /秒的速度运行(波动但平均速度约为7MB /秒)!

似乎exFat对于非常大的文件(几百个千兆字节)不能很好地播放。如前所述,我不知道是否也如此,HFS+但也许您想尝试ext4一下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.