ddrescue 在 USB 硬碟上非常慢
我正在從死掉的筆記型電腦中恢復硬碟驅動器(根本無法啟動,磁碟工具報告說沒有問題,但不會安裝磁碟)。我已經通過 USB 適配器連接了硬碟。
ddrescue
像這樣執行:sudo ddrescue -v -n /dev/disk1s2 "/Volumes/Original HD/image.dmg" ddrescue.log
到目前為止沒有任何錯誤,但是平均讀取速度已經逐漸下降到 50KB/s。一開始大約是 2MB/s。分區大小為 300GB。到目前為止,我已經能夠恢復 160GB。我正在恢復到 MacBook 上的 HFS+ 分區。
傳輸速度慢的原因可能是什麼以及如何提高它?
這似乎只是
ddrescue
OSX 下 USB 傳輸的工作方式。來自標題為:主題:$$ Bug-ddrescue $$在 osx 下 ddrescue 慢 10 倍。在功能齊全的硬碟驅動器上工作時,在 linux 下它會執行完整的 i/o 速度。當在 osx 下使用預設編譯標誌編譯時,它的速度要慢幾倍,有時會爬到 Kb/s。如果輸出文件是 /dev/null,問題仍然存在。
同一個執行緒也有這個響應。
根據我在 OS X 上的經驗和測試,訪問原始字元設備
/dev/rdisk…
總是更可取的。此外,通過設置更大的複制塊大小,可以進一步提高傳輸速度。ddrescue -c 1Ki
在大多數情況下,512KiB ( ) 的大小給了我最好的結果。並且:OS X 原始字元設備確實具有定義的大小,因此即使在第一次執行時也可以輕鬆使用。(至少在這一點上,現有文件中有關原始設備的說明
ddrescue
不適用於 OS X。)我不認為這是一個錯誤
ddrescue
,因為其他實用程序在 OS X 上喜歡dd
或表現出相同的行為。cat
訪問 /dev/disk… 塊設備的速度相當慢,與使用的複制塊大小無關。另一方面,/dev/rdisk… 原始字元設備的讀取速度很大程度上取決於所選的複制塊大小:
- 512 字節 (
ddrescue -c 1
, 預設 indd
) 是最慢的。- 將其設置為 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 硬體而異。也許如果其他一些使用者分享他們的經驗,我們可以更好地了解這個主題。
參考