Filesystems

從截斷的分區映像中恢復數據

  • September 9, 2019

我正在嘗試從損壞的 3TB 驅動器中恢復數據。我正在使用ddrescue製作它的圖像,但是當有很多讀取錯誤時,它需要很長時間。我想知道我是否可以在我已經複製的前 200GB(其中包含大整體)中獲得一些運氣。我用gdisk讀取了分區表,找到了我有興趣讀取的 ext4 文件系統的偏移量。然後創建循環設備以有一種與分區互動的好方法:

sudo losetup -f --show -o $((xxxxxxxxxxx*512))

sudo tune2fs -l /dev/loop16給我一些資訊,所以我認為我在正確的軌道上。 不幸的是,由於文件系統錯誤和e2fsck

,我無法安裝它不會解決任何問題,因為它試圖讀取圖像文件邊界之外的內容。我想在分區的後面區域可能有一些重要的文件系統數據。您對我如何欺騙系統忽略錯誤並嘗試使用不完整的 inode 結構和截斷的圖像有什麼建議嗎?

謝謝。

如果圖像尺寸太小,可以使用fallocatetruncate使其變大,或者使用dmsetup創建線性設備映射來創建虛擬更大的設備。

$ ls -lh somefile
-rw-r--r-- 1 user user 200G Sep  9 13:27 somefile
$ truncate -s 2T somefile
$ ls -lh somefile
-rw-r--r-- 1 user user 2.0T Sep  9 13:28 somefile

ddrescue在第一遍中跳過壞區域,請嘗試類似--min-read-rate=10M.

至於循環設備,它應該是只讀的,或者在圖像的副本上進行讀寫,或者使用寫時複製覆蓋進行實驗。否則,您最終可能會修改映像並且必須重新修改,這是一個壞主意,因為源驅動器已經死了。

引用自:https://unix.stackexchange.com/questions/539796