Mik*_*Mik 9 osx usb hard-disk ddrescue
我正在从我的笔记本电脑中恢复硬盘驱动器(根本无法启动,磁盘工具报告说没有问题,但不会安装磁盘)。我已经通过 USB 适配器连接了 HDD。ddrescue
像这样运行:
sudo ddrescue -v -n /dev/disk1s2 "/Volumes/Original HD/image.dmg" ddrescue.log
Run Code Online (Sandbox Code Playgroud)
到目前为止没有错误,但平均读取速度已经逐渐下降到 50KB/s。开始时大约是 2MB/s。分区大小为 300GB。到目前为止,我已经能够恢复 160GB。我正在恢复到 MacBook 上的 HFS+ 分区。
这种传输速率缓慢的原因可能是什么以及如何提高它?
这似乎就是ddrescue
USB 传输在 OSX 下的工作方式。来自标题为:主题:[Bug-ddrescue] ddrescue 10x 慢在 osx 下的线程。
在全功能硬盘驱动器上工作时,在 linux 下它执行全 I/O 速度。当使用默认编译标志在 osx 下编译时,它的速度要慢几倍,有时会爬到 Kb/s。如果输出文件为 /dev/null,问题仍然存在。
同一个线程也有这个回应。
根据我在 OS X 上的经验和测试,访问原始字符设备
/dev/rdisk…
总是更可取的。此外,通过设置更大的复制块大小可以进一步提高传输速度。ddrescue -c 1Ki
在大多数情况下,512KiB ( ) 的大小给了我最好的结果。并且:OS X 原始字符设备确实具有定义的大小,因此即使在第一次运行时也可以轻松使用它们。(至少在这一点上,现有文档中有关原始设备的说明
ddrescue
不适用于 OS X。)我不认为这是一个错误
ddrescue
,因为其他公用事业一样dd
或cat
表现在OS X相同的行为访问 /dev/disk... 块设备的速度相当慢,与使用的复制块大小无关。另一方面,/dev/rdisk...原始字符设备的读取速度很大程度上取决于选择的复制块大小:
- 512 字节 (
ddrescue -c 1
, 默认值dd
) 是最慢的。- 将其设置为 4096 字节 (
ddrescue -c 8
,dd bs=4K
) 与访问 /dev/disk 的速度相同......- ddrecue 默认的 128 个扇区 (= 64KiB,
ddrescue -c 128
,dd bs=64K
) 带来了相当好的结果。- 进一步乘以(高达
ddrescue -c 1Ki
/dd bs=512K
)带来最大速度(通常比 快 8-12 倍/dev/disk…
)- 在我的测试中,高于该值并没有进一步提高传输速度;有时甚至减少。
这些是我自己测量的结果,您的结果可能会因所使用的媒体和 IO 硬件而异。也许如果其他一些用户分享他们的经验,我们可以更好地了解该主题。