逐區克隆硬碟(dd/ddrescue),如何跳過中間的壞塊?

逐區克隆硬碟(dd/ddrescue),如何跳過中間的壞塊?

我的硬碟有不可恢復的壞塊。 HDD 是 Raid-0 陣列的一部分。如果我以任何方式存取壞塊,硬碟就會掛起。假設硬碟滿容量為 500,000,000,000 字節,壞區塊範圍為 100,000,000,000 - 100,000,004,096 位元組(8 個 LBA)。如何使用DD或者解救我可以將此硬碟複製到另一個硬碟或映像檔而不存取壞塊嗎?我需要位元組 0 - 99,999,999,999,然後是 4096 位元組的零,然後是位元組 100,000,004,097 - 500,000,000,000。

謝謝!

答案1

我今天已經做到了這一點,我希望它對你有用。我在複製(備份磁碟)時遇到了大約 30 個壞區塊的問題。我做的第一件事是使用常規 Filezilla 備份檔案來備份所有好的資料。我注意到一個大檔案未正確複製(中途停止並重新啟動傳輸)。幸運的是我有相同文件的先前備份。要複製磁碟,我必須使用以下程序找到磁碟上的壞區塊:

首先找出問題磁碟,使用識別高清信息fdisk -l

第二個如果假設你的磁碟是/dev/sdb那你需要運行命令 壞區塊 -v /dev/sdb它會列出驅動器上的所有壞塊。幸運的是會有一些。如果沒有發現壞塊,則表示您的驅動器塊沒問題,需要解決其他問題。我的區塊大小是 512,所以我使用該預設數字來運行 DD

第三個區塊的大小是 512,所以我所做的是設定 bs=512

每次我像往常一樣定期運行 DD 時,出現錯誤後我的資料都會損壞。所以我然後使用頁面上解釋的參數https://www.gnu.org/software/coreutils/manual/html_node/dd-inspiration.html搜尋“故障磁碟”部分。

dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync iflag=fullblock 

花了一段時間。每個壞塊都會遇到類似故障驅動器撞擊聲的聲音。它確實逐塊複製,並且通過我所有的壞塊發出相同的噪音。發出噪音的次數是因為它發現了另一個壞塊並告訴您有關顯示錯誤訊息的資訊。什麼是'轉換=無錯誤,同步'是用 NUL 填滿壞讀,而'iflag=全塊'適合短時間閱讀,但始終保持資料同步。根本沒有損壞,它只是不複製錯誤的塊並用空的 NUL 填充它。

使用 DD 複製完成後,我只需替換那個壞文件,從過去的備份中恢復 Filezilla,一切都正常工作。我希望這對其他嘗試備份故障磁碟機的人有用。

注意:我的壞塊彼此非常接近。大約一次將 4 個區塊分組在一起檢測到不良情況。如果您的區塊遍布整個磁碟,則多個檔案可能會受到影響。幸運的是,就我而言,只有一個 4GB 的大資料庫檔案受到影響。

答案2

好吧,也許這也可以用 dd 來完成,但我使用 WinHex 解決了我的問題(我選擇了實體設備)。它可以將磁碟的任何部分克隆到圖像並將它們連接起來。

相關內容