在部分復原的 ext4 上尋找損壞的文件

在部分復原的 ext4 上尋找損壞的文件

我有損壞的硬碟運轉時受到衝擊。該磁碟有 6 個分割區和一些未分配的空間。受到影響後,3 個分割區似乎都正常,我能夠以不錯的速度正常讀取/寫入它們,並且檔案系統檢查也不會失敗。但有一個40 GiB ext4 分割區在此事件發生後,該磁碟已部分無法讀取。

該分區大約有8GB 可用空間。該分割區上安裝了一個 Linux 發行版,但它/home不在單獨的分割區上。因此,所有使用者、作業系統和應用程式資料都位於這個單一分割區中。

我嘗試過什麼

最初我嘗試使用ddLinux中的命令將資料從損壞的分割區複製到另一個磁碟上的另一個分割區。但它多次失敗並給出讀取錯誤,在調整skip和選項後,我不得不再次手動恢復它seek

dd if=/dev/sdc4 of=/dev/sda2 bs=2M conv=notrunc status=progress iflag=noatime oflag=noatime seek=X skip=X

雖然這很有效(緩慢),但這是一個痛苦的過程,所以我放棄了。

經過進一步閱讀,我發現GNU地址救援工具和DDRescue-GUI建立在它之上,並決定嘗試一下。

第一天,在大約 6-8 小時內,我能夠從該分區恢復 37+ GiB 的數據,多次運行 DDRescue-GUI(每當我有空閒時間時)從頭到尾交替啟動恢復過程使用相同的日誌文件。 (我從來沒有足夠的時間讓它一口氣運行直到完成)

第二天,恢復過程非常緩慢,一天結束時,我留下了一個大約 400 MB 大小的待處理區塊該分區的 2 GiB 和 3 GiB 標記之間。 DDRescue輸出中的壞扇區計數仍然是0,但是讀取該區域的資料需要花費大量時間,等待6個多小時後進度還不到30MB。我嘗試過向前和向後兩個方向跑步,恢復的速度是一樣的。此外,DDRescue 輸出中的未調整計數器已達到約 27MiB。
據我了解,磁碟的這個特定的待處理部分已嚴重損壞,因此其恢復需要花費大量時間。

問題

不願意再等了,想知道有什麼辦法可以得到不完整、遺失或無法修復的文件列表在目前部分復原的ext4分割區中?
例如,可以fsck.ext4使用某些選項來產生此清單以及完整路徑到文件?

因此,如果我發現損壞的檔案對我沒有用,我可以重新安裝作業系統和軟體並開始正常使用復原的分割區。

附加問題

我是否可以調整 DDRescue 的讀取間隔,使其快速跳過難以讀取的扇區,並且能夠進一步減少 400 MB 的待處理區塊,而無需等待幾天?

相關內容