我必須恢復我的 1TB USB HD。我正在用來ddrescue
完成這個任務。有什麼辦法可以讓我ddrescue
在開始後繼續進行嗎?
我正在使用命令:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image
答案1
答案2
即使您忘記指定日誌文件,也可能有希望:
所以您沒有閱讀本教學並在沒有日誌檔案的情況下啟動了 ddrescue。現在,兩天后,您的電腦崩潰了,您無法知道 ddrescue 成功保存了多少資料。更糟的是,你無法恢復救援;你必須從頭開始。
或者,您可能開始複製驅動器dd conv=noerror,sync
,現在處於上述相同的情況。在這種情況下,請注意,您不能使用 dd 產生的副本,除非使用sync
轉換參數來呼叫它。
不要絕望(還)。在某些情況下,Ddrescue 可以從輸入檔案和(部分)副本產生近似日誌文件,這幾乎與精確日誌檔案一樣好。它透過簡單地假設包含全零的扇區沒有被拯救來實現這一點。
但是,如果副本的目標是磁碟機或分割區(或現有常規檔案並且未要求截斷),則很可能您需要從頭開始重新啟動 ddrescue。 (當然,這次有一個日誌檔)。原因是驅動器中可能存在尚未被覆蓋的舊數據,因此可能未嘗試但非零。
例如,如果您第一次嘗試以下命令之一:
ddrescue infile outfile
或者
dd if=infile of=outfile conv=noerror,sync
您可以使用以下命令產生近似的日誌檔案:
ddrescue --generate-mode infile outfile logfile
答案3
正如其他人所說,您應該始終指定日誌檔案作為第三個參數,這將允許復原。既然你沒有這樣做,那麼這對你沒有幫助。如果您大致知道進程到達的點,則可以使用--input-position
和--output-position
參數從該點開始(確保將這兩個參數設為相同的值,否則輸出將被損壞)。
答案4
每https://wiki.archlinux.org/index.php/Disk_cloning似乎透過conv=noerror,sync
開關,dd
實際上確實添加了零在最後區塊的位置,而不是發生讀取錯誤的確切位置。這與 Miles Wolbe 在 2013 年 8 月 29 日的回答中所傳達的訊息相反。
例如,如果正確的序列是,198123283
並且中間存在讀取錯誤,則它將寫入198283000
,而不是198000283
。
因此,如果實際上存在讀取錯誤,則所提出的方法將不準確 - 將會有一些原本可讀的區域最終會被填滿零,但將被視為「已獲救」。
順便說一句,最好的做法是透過用零填充目標驅動器(或至少是可用空間,例如可以使用 WinHex 來完成)來開始此類恢復嘗試。