Linux

使用 ddrescue 從失敗的 ntfs 磁碟中檢索數據

  • September 14, 2016

我正在嘗試保存在 Window 8 電腦中出現故障的磁碟的一些使用者數據。我已經移除了 Windows 8 筆記型電腦無法讀取的硬碟,插入我的 OS X 機器,它可以看到分區但無法安裝它們。(ntfs-3g 也不能)。

diskutil list顯示:

/dev/disk8 (external, physical):
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *1.0 TB     disk8
  1:                        EFI ESP                     524.3 MB   disk8s1
  2: 786BA1D3-6BAF-4D9G-B621-461EB71A4965               41.9 MB    disk8s2
  3:         Microsoft Reserved                         134.2 MB   disk8s3
  4:           Windows Recovery                         513.8 MB   disk8s4
  5:       Microsoft Basic Data                         985.0 GB   disk8s5
  6:           Windows Recovery                         471.9 MB   disk8s6
  7:           Windows Recovery                         367.0 MB   disk8s7
  8:           Windows Recovery                         13.2 GB    disk8s8

我正在ddrescue嘗試恢復硬碟驅動器的內容……所以我目前正在使用命令:

sudo ddrescue -n /dev/rdisk8s5 ./backup.dmg mapfile

基於實際使用者數據在分區 #5 中的假設…

到目前為止,幾天后,目前的輸出ddrescue如下所示:

GNU ddrescue 1.20
Press Ctrl-C to interrupt
Initial status (read from mapfile)
rescued:   126523 MB,  errsize:       0 B,  errors:       0

Current status
rescued:   261066 MB,   errsize:         0 B,    current rate:  19202 kB/s
  ipos:   456274 MB,    errors:         0,      average rate:   1568 kB/s
  opos:   456274 MB,  run time: 23h 49m 38s,  remaining time:         n/a
time since last successful read:          0s

執行時將關閉,因為我有ctrl-c幾次,一次嘗試file.dmg 以查看它是否可以確定任何內容(不)。

據我所知,它將 dmg 膨脹到相對大小,ipos但據opos我所知,恢復的數據的真實大小是rescued數量。

我注意到的一件事是,雖然平均速率是1568kB/s,但它似乎每 1 分鐘到 2 分鐘讀取一次,持續大約 5 到 10 秒。


從以上資訊來看,我目前正在等待它完成這個傳遞(估計,基於 dmg 的大小( ipos/opos 大小)它應該總共需要 100 小時,但不確定我是否應該加倍到rescued一半的大小(我需要兩倍的磁碟空間來保存嗎?)

任何有磁碟恢復經驗的人,我有以下問題 -

  1. 這看起來怎麼樣?我沒有看到任何錯誤,但是它自己的PC無法讀取磁碟,並且mac也無法安裝它,所以我對恢復數據感到悲觀。
  2. 一旦我“完成”…訪問保存在 .dmg 中的數據需要做什麼——Windows 8 加密會成為我遇到的問題嗎?
  3. 我需要 2 倍的磁碟空間來保存正在保存的 DMG 嗎?由於獲救的大小是 dmg 和 ipos/opos 的一半。或者是驅動器處於如此可怕的狀態,以至於它只能恢復一半的東西。

我不認為已用驅動器空間接近 1 TB 的使用者數據…

任何其他建議將不勝感激。

**免責聲明:**我是 RecuperaBit 的開發者。這個答案是我的這個答案的總結,混合了 OP 的回饋。

您的ddrescue命令僅複製第五個分區 ( /dev/rdisk8s5),如果您確定分區表正確,這很好。但是,如果您有足夠的空間,我強烈建議您複製整個驅動器。

file一次試穿.dmg

請記住,這ddrescue會生成驅動器的原始比特流副本。無論您如何稱呼它,該文件都不是 DMG 文件。通常,您會使用.img副檔名或有時使用.dd.

自己的PC無法讀取磁碟,mac也無法掛載,所以我對恢復數據持悲觀態度

你肯定不會得到一個工作分區。但是,即使 NTFS 結構部分損壞,也可以恢復未損壞的部分數據。

如果驅動器只是輕微損壞,您可以嘗試testdisk,但是file沒有檢測到 NTFS 簽名的事實表明情況更糟。

訪問正在保存的數據需要做什麼

您可以使用RecuperaBit,這是一個用於取證 NTFS 重建的開源軟體。它使用的算法執行我的碩士論文中描述的自下而上的重建。要點是:

  • 它掃描整個驅動器以查找文件痕跡
  • 它重建目錄樹或可以恢復的任何部分
  • 它允許您以正確的名稱導出文件的內容

要在您製作的圖像文件上執行該工具,請創建一個輸出目錄並使用以下命令啟動 RecuperaBit:

mkdir /path/to/another/drive/recovered_files
cd [full path of recuperabit]
pypy main.py /path/to/backup.dmg -o /path/to/another/drive/recovered_files -s /path/to/another/drive/recovered_files/savefile.save

-s選項儲存有用的有趣扇區日誌,您可以在隨後在同一磁碟映像上執行時再次載入這些日誌。

在掃描過程之後,它將開始確定任何 NTFS 分區的幾何形狀。執行recoverable命令查看分區,然後恢復例如分區#2

restore 2 5
restore 2 -1

其中5表示Root目錄,-1表示Lost Files目錄。由於您的驅動器已損壞,您可能會在Lost Files目錄中找到很多有趣的東西。

檢查其他答案以了解一些注意事項和限制。

順便說一句,由於您針對您的特定情況稍微修補了程序,如果您可以將更新檔作為拉取請求送出,那就太好了。

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