題 在硬盤上使用帶壞塊的dd?


我正在尋找使用dd來克隆失敗的硬盤。我擔心的是肯定會有壞塊。所以我的問題是 dd 壞塊是否會留下所選塊大小(bs)的大小,還是只會與硬盤上的扇區一樣大?


4
2017-07-11 16:56


起源


我不知道,但你的硬盤驅動器應該獲得一次返回字節或幾個字節的請求。我希望dd可以優雅地處理硬盤驅動器返回的任何內容。因此,如果驅動器實際發出信號表示完全無法讀取該數據(不確定它們是否有信號),那麼dd應該優雅地處理它。硬盤驅動器中有大腦可以減輕損壞並處理壞塊。這種緩解對它有限制,但是在驅動器出現故障的情況下,可能會在它完全變形到紙張重量之前正常使用它。祝好運。 - James T Snell


答案:


我很確定這將是兩者中較大的一個。

假設您正在使用512字節的塊大小 dd,但你的磁盤使用4K扇區,其中一個是壞的。所有四個512字節讀取 dd 試圖使4K扇區失效,導致4K差距。

現在讓我們假設您使用的是8K dd 塊大小但您的磁盤使用4K扇區。什麼時候 dd 嘗試做8K讀取,它將失敗,因為讀取中的一個扇區失敗,導致8K間隙。

現在可能是提及的好時機 GNU ddrescue (不要與同名的非GNU軟件混淆),它基本上自動使用dd來救援故障驅動器,有幾個效率技巧。它以較大的塊大小開始以提高速度,但它會跟踪它看到壞塊的位置,然後返回嘗試以較小的讀取大小讀取它們的不同部分,直到它下降到絕對不可讀的512字節列表塊。我花了一段時間來理解文檔,但是一旦我弄清楚它,我發現它是一個非常有用的工具,並且非常喜歡直接使用dd來完成這種任務。


3
2017-07-11 17:23