GNU ddrescue:如何從故障硬碟中救回資料

GNU ddrescue:如何從故障硬碟中救回資料

Windows 的檔案傳輸因 I/O 錯誤而中斷,或是 Ubuntu 雖然能偵測到您的硬碟,卻無法讀取某些資料夾。. GNU ddrescue 有助於在情況惡化之前保存可讀取的磁區。 然而,無法存取的磁碟不一定代表資料已被刪除,而完成的磁碟映像檔也不等同於已還原的檔案。本指南將向您說明如何診斷問題、安全地複製資料、恢復中斷的救援作業,以及存取還原後的檔案。若遇到更廣泛的硬體問題,請參閱 Amagicsoft 的 硬碟復原指南.

簡短回答: GNU ddrescue 這是一個免費的命令列工具,用於將受損或不穩定的儲存裝置中可讀取的區塊複製到磁碟映像檔或另一顆磁碟中。它透過地圖檔追蹤進度,並能對無法讀取的區域進行重試。它會 不是 修復物理損壞、還原個別檔案,或保證能完全恢復資料。.

目錄

使用 GNU ddrescue 之前:診斷磁碟

首先要判斷的是,您遇到的是複製問題、檔案遺失問題,還是硬體故障。這些情況需要採取不同的處理方式。.

你的觀察

可能的情況

最安全的首要措施

磁碟機開啟後,檔案便會正常複製

健康且可讀的儲存裝置

將重要檔案複製到狀態良好的目標位置;無需使用 ddrescue

檔案複製過程會當機,或出現 I/O/CRC 錯誤

無法讀取的磁區或連線不穩定

先檢查一條已知狀況良好的纜線一次;若硬碟仍保持穩定,則考慮進行磁碟映像備份

Windows 顯示為 RAW,但硬體仍保持穩定

檔案系統或分割區損壞

保留磁碟狀態;在修復前先檢查一份副本

僅刪除了少數幾個檔案,且硬碟狀態良好

邏輯刪除

在考慮進行檔案復原之前,請先檢查「資源回收筒」和備份檔案

驅動器會發出咔嗒聲、嘎吱聲、反覆斷開連接,或顯示錯誤的容量

可能是硬體或韌體故障

請停止自行嘗試掃描;應尋求專業的資料恢復服務

如需更多關於辨識偵測問題的協助,請參閱 如何從無法識別的硬碟中恢復資料. 特別是,若某個磁碟機已無法在 BIOS 或 Linux 中穩定顯示,則不適合進行反覆的軟體重試。.

在採取任何其他行動之前,請先保護原件

  • 請停止將檔案儲存、安裝或下載至受影響的磁碟機。.
  • 請勿對出現讀取錯誤的磁碟進行格式化、初始化、碎片整理,或執行 CHKDSK 檢查。.
  • 請避免將發生故障的來源以讀寫模式掛載;最理想的做法是將其完全卸載。.
  • 準備一個健康的生活環境,並確保有足夠的空間供 總來源容量, ,此外還需為地圖檔案指定一個獨立的儲存位置。.
  • 如果資料無法替代,且硬碟的機械狀態不穩定,請立即停止操作,切勿進行長時間的救援程序。.

安全規則: 先進行救援,其次檢查副本,並僅在確認重要檔案無誤後才進行修復。該 GNU ddrescue 官方手冊 同樣地,也警告不要對出現 I/O 錯誤的磁碟上的檔案系統進行修復。.

GNU ddrescue 實際上能恢復哪些資料

GNU ddrescue 該工具在磁區層級運作。它會先嘗試讀取可讀取的區域,將問題區域記錄下來,並在適當時機再次處理這些區域。它無需 Windows 識別 NTFS、FAT32 或 exFAT 磁區,即可複製其底層磁區。.

有三個術語決定了工作流程:

  • 來源: ddrescue 讀取的受損磁碟或分割區。.
  • 目的地: 一個健康的磁碟映像檔,或作為複製目標的實體磁碟。.
  • 地圖檔案: 一份顯示已救援、待處理及異常區域的小型進度記錄。請將其儲存於可靠的儲存裝置中,且僅在進行同一項救援時重複使用。.

舉例來說,一張映像檔可能包含一片受損的 500 GB 硬碟的大部分內容,但仍有少數磁區遺漏。這樣雖然能保留許多文件,但若某份文件內有無法讀取的磁區,該文件仍可能因此損毀。此外,已被 SSD TRIM 功能刪除的資料,不會僅因您複製了該硬碟而重新出現。.

GNU ddrescue 與檔案恢復軟體的比較

任務

GNU ddrescue

檔案恢復軟體

從容易發生錯誤的磁碟中複製可讀取的磁區

主要目的

未必是專為此設計的

在中斷後繼續複製區段

是的,使用 mapfile

視情況而定

還原個別刪除的檔案

沒有

通常,如果資料仍可恢復的話

解析受損的檔案系統元資料

不會還原檔案

可能會找到可恢復的檔案

修復故障的硬體

沒有

沒有

因此,請勿將檔案恢復掃描作為妥善保存故障實體硬碟的替代方案。同樣地,若是一顆原本運作正常的硬碟僅遺失了幾個檔案,您也無需僅因這個原因就使用 ddrescue。.

如何在 Ubuntu 上安裝 GNU ddrescue

在 Ubuntu、Debian 或 Linux Mint 上,請開啟終端機並安裝 gddrescue 套件:

sudo apt update

sudo apt install gddrescue

接著請確認該可執行檔是否可用:

ddrescue --version

版本說明: GNU ddrescue 1.30 於 2026 年 1 月發佈。您所使用的 Linux 發行版所提供的版本可能有所不同。特別是,, -n 意指 --no-scrape, 而在 1.30 版本中 -N 意指 --no-sweep (舊版文件中使用 -N (以不同的方式)。請檢查 ddrescue --help 在套用舊版教學中的指令之前。.

如何使用 GNU ddrescue 建立磁碟映像檔

以下指令是 說明性的. 他們假設 /dev/sdb 是故障的硬碟,而 /mnt/recovery 是一個位於獨立、狀態良好且已掛載的目標磁碟上的目錄。切勿在未檢查電腦的情況下直接貼上裝置名稱。.

步驟 1:確定來源與目的地

運行:

lsblk -o 名稱,大小,型號,序號,檔案系統類型,掛載點

請比較磁碟機的容量、型號和序號。重新開機或重新連接可能會導致名稱發生變更,例如 /dev/sdb 和 /dev/sdc. 接著,卸載發生故障的磁碟機的分區。請確保目標位置的可用空間至少等於來源的邏輯大小,並且支援大型影像檔案。.

在 Ubuntu 終端機中使用 lsblk 識別 GNU ddrescue 的來源磁碟

步驟 2:建立初始救援映像檔

確認掛載的目的目錄後,請執行:

sudo ddrescue -n --ask /dev/sdb /mnt/recovery/disk.img /mnt/recovery/disk.map

這裡,, -n 省略了撇除階段,, --詢問 要求確認,, disk.img 儲存已複製的磁區,並 disk.map 以維持進度。此初始執行階段優先採用較快速的数据收集方式,而非費時費力的資料抓取。它仍可能執行其他恢復階段;; -n 是否 不是 意指「僅複製正常磁區」。“

GNU ddrescue 資料復原進度顯示已救回的資料、讀取錯誤及剩餘時間

切勿將映像檔或地圖檔儲存至發生故障的原始磁碟上。. 如果目標是另一個實體磁碟而非映像檔,則執行此指令時需採取不同的預防措施,因為整個輸出裝置將會被覆寫。.

步驟 3:重新嘗試前請先檢查進度

雖然 GNU ddrescue 執行時,請注意 獲救, pct 獲救, 未經審理, 壞軌, 以及 讀取錯誤. 較高的救援成功率固然有用,但這 不是 完整文件的百分比。此外,反覆斷線或機械性症狀惡化均屬應停止操作的理由,而非增加重試次數的理由。.

步驟 4:僅在系統穩定時,才重新嘗試處理剩餘的棘手區域

如果裝置始終可被偵測到,您可以嘗試使用 相同的圖片和地圖檔案:

sudo ddrescue -d -r2 --ask /dev/sdb /mnt/recovery/disk.img /mnt/recovery/disk.map

-d 在支援的情況下,要求直接存取輸入磁碟,並且 -r2 允許對無法讀取的區域進行兩次重試。在某些裝置上,直接存取可能需要調整磁區設定。請避免進行無限次重試,特別是在硬碟狀況日益惡化的情況下。.

步驟 5:中斷後繼續執行

如果電腦關機或您暫停了操作,請重新連接所有設備,再次驗證裝置身分,並使用 相同的輸出和地圖檔案:

sudo ddrescue -n --ask /dev/sdb /mnt/recovery/disk.img /mnt/recovery/disk.map

mapfile 會告知 ddrescue 哪些區域已經複製完畢。請勿刪除該檔案、建立新的無關 mapfile,或不小心將來源切換至其他磁碟機。.

可以在 Windows 11 上執行 GNU ddrescue 嗎?

就實體磁碟救援而言,使用 Linux 即時啟動 USB 通常比透過不熟悉的相容性層來存取 Windows 磁碟更為實用。.

  1. 在運作正常的電腦上,準備一支可開機的 Ubuntu USB 隨身碟。.
  2. 將受影響的電腦開機進入 Ubuntu 的 試試 Ubuntu 實際運作環境。.
  3. 連接一個獨立且運作正常的目標位置,然後進行安裝 gddrescue 如有需要。.
  4. 請使用以下方式識別磁碟: lsblk 並依照上述成像步驟操作。.

Cygwin 以及某些圖形化前端程式提供了其他方法,但權限設定與原始裝置存取方式有所不同。此外,WSL 並不會自動將每個實體 Windows 磁碟暴露為 /dev/sdX. 在 Windows 系統內執行的工具,未必能直接取代 Linux 救援環境。.

映像檔建立後:檢查您的檔案是否確實可恢復

這是許多教學指南都省略的步驟。. GNU ddrescue 完成磁區複製後,您仍需確認原始的資料夾和檔案是否完好無損。.

案例 1:複製後的檔案可正常開啟

檢視圖片或複製 只讀 首先,在 Linux 系統上,經驗豐富的使用者可以將原始映像掛載為唯讀的迴圈裝置,並檢視其中的分割區。請勿對您唯一的映像執行修復指令。如果檔案能正常開啟,請將有價值的檔案複製到另一個狀態良好的位置,並驗證其內容,而不要僅確認檔案名稱。.

在 Ubuntu 檔案管理員中檢視以唯讀方式掛載的 GNU ddrescue 磁碟映像檔

案例 2:分區顯示為 RAW 或無法掛載

即使檔案系統的元資料已損毀,複製的磁區仍可能可讀。請保留原始映像檔,並在可運作的副本上進行調查,切勿接受 Windows 提示對已救回的磁碟進行格式化或初始化。我們的 RAW 磁碟復原指南 說明了為何在提取檔案前進行格式化會減少資料恢復的選項。.

案例 3:在建立映像檔之前,部分檔案已被刪除

映像檔僅記錄可用的磁區;它無法撤銷刪除操作。請先檢查「資源回收筒」、「檔案歷史紀錄」以及現有的雲端或離線備份。如果沒有可用的副本,且已刪除的資料尚未被覆寫或遭 TRIM 指令移除,檔案恢復軟體或許能協助分析該 一個健全且能被 Windows 識別的克隆本.

案例 4:副本中的檔案無法讀取或已損毀

請比較原始檔案的名稱、大小、日期及重要內容。即使只有一個磁區遺失,也可能影響文件的一部分或其檔案系統記錄。因此,「100% 已成功救援」並不能保證邏輯完整性,而若救援過程不完整,則無法重建那些從未被讀取過的資料。.

何時該將檔案恢復軟體作為下一步的正確選擇?

在掃描任何內容之前,請先使用此檢查點:

檢查

如果是的話

如果沒有

這些檔案在克隆本上是否可見且能正常開啟?

將它們複製並核對

繼續檢查

「資源回收筒」、「版本歷史紀錄」或「備份」中是否包含這些遺失的檔案?

還原該副本

繼續檢查

原始裝置在物理上是否不穩定?

請停止自行修理的嘗試

僅檢查健康的克隆體

Windows 能否可靠地識別克隆的磁碟?

考慮進行邏輯檔案恢復

請勿假設 Windows 復原軟體能夠掃描該檔案

只有當檔案本身遺失或無法存取,且內建的復原功能無濟於事時,才應考慮使用專用的檔案掃描工具。這與磁碟磁區救援是兩回事。.

使用 Magic Data Recovery 還原遺失的檔案

如果 GNU ddrescue 雖然產生了一個 Windows 能識別的、狀態良好的物理克隆,但資料夾或已刪除的檔案仍無法存取,, Magic Data Recovery 這可能有助於在該克隆磁碟上找出可恢復的文件、照片、影片及其他檔案。.

與 ddrescue 基於 mapfile 的複製方式不同,它會掃描受支援且可由 Windows 存取的儲存裝置,以尋找遺失的檔案。它無法修復物理損壞、還原被覆寫的磁區,也無法保證包含無法讀取區塊的檔案能夠開啟。支援直接掃描 ddrescue .img 圖片應 不是 請注意:僅當救援的資料位於已識別的磁碟或分割區上時,才應使用此工作流程。.

如何使用 Magic Data Recovery

步驟 1:下載並安裝 Magic Data Recovery

請將軟體安裝在狀態良好的 Windows 磁碟區上,而非安裝在包含遺失資料的克隆分區上。若情況允許,請將原始的故障硬碟保持斷開狀態。.

支援 Windows 7/8/10/11 和 Windows Server

步驟 2:選取「健康的克隆磁碟」

啟動軟體,並選取 Windows 可識別的磁碟克隆或分割區,, 並非因硬體故障而導致的來源, 然後開始掃描。.

使用 Magic Data Recovery 掃描墜落的磁碟機

步驟 3:掃描遺失的檔案

請讓掃描功能識別出可能可恢復的文件、照片及其他檔案;掃描結果取決於被複製磁區的狀態。.

等待掃描

步驟 4:復原前預覽檔案

若提供預覽功能,請開啟一個範例檔案,以確認其內容是否可辨識;並非所有受損檔案都能預覽。.

預覽檔案

步驟 5:將檔案復原至另一個磁碟機

將選定的結果儲存至另一顆狀態良好的磁碟,而非儲存回克隆磁碟,並在相應的應用程式中驗證已還原的檔案。.

檔案復原

如果 GNU ddrescue 或檔案復原失敗了該怎麼辦?

首先,請確認您是否選取了正確的來源,以及該裝置上是否曾存在過這些遺失的資料。接著,請保留映像檔和映射檔,以免進度遺失。如果克隆檔可讀取但檔案系統不可讀,請在 重複 使用映像檔,而非反覆修改主檔。.

然而,若固態硬碟(SSD)已透過 TRIM 功能捨棄已刪除的區塊,或新資料已覆寫這些區塊,則無論進行多少次軟體掃描,都無法還原原始內容。同樣地,若硬碟發出喀噠聲、斷開連接,或讀取能力逐漸下降,請停止再次嘗試,並向合格的實驗室諮詢專業映像擷取服務。.

避免再次發生緊急救援

  • 應維持一套獨立的備份,並定期進行還原測試;僅靠同步可能會將誤刪的檔案一併複製過去。.
  • 請留意硬碟是否出現異常聲響、讀取錯誤,以及 SMART 指標的變化,但應避免對明顯已損壞的硬碟進行長時間測試。.
  • 請為關鍵硬碟貼上標籤,並記錄硬碟型號與序號,以避免將來源與目的地搞錯。.
  • 請將救援影像及其對應的地圖檔案一併儲存於狀態良好的儲存裝置上。.
  • 在提取並驗證重要資料後,請更換不穩定的硬碟;磁碟映像並非硬體維修。.

如需進一步了解儲存缺陷的相關背景,請參閱 如何修復硬碟上的壞軌—但在進行任何維修嘗試之前,請先徹底進行資料救援。.

總結

GNU ddrescue 當硬碟雖可讀取但已損壞,且無法完成一般的檔案複製作業時,此方法最為實用。請先診斷症狀、保護原始磁碟、透過 mapfile 建立扇區級映像檔,並驗證複製本中的實際檔案內容。若資料夾能正常開啟且檔案完整無缺,則無需使用其他復原工具。.

如果健康的克隆本中仍包含已被刪除或邏輯上無法存取的檔案,, Magic Data Recovery 提供了一個獨立的 Windows 檔案恢復步驟——但這並不能取代謹慎的磁碟映像備份。如需相關的特定磁碟機操作指引,請造訪我們的 硬碟資料恢復中心.

支援 Windows 7/8/10/11 和 Windows Server

常見問題

GNU ddrescue 主要用於什麼用途?

GNU ddrescue 用於將故障磁碟、分割區及其他受支援儲存媒體中可讀取的磁區,複製到映像檔或正常的目標位置。與一般的檔案複製不同,它會追蹤有問題的區域,並能在遇到讀取錯誤時繞過這些錯誤繼續運作。其目的是為了保留可用的磁碟資料以供日後檢視,而非重建個別已刪除的檔案或修復損壞的硬體。.

GNU ddrescue 能否恢復已永久刪除的檔案?

並非直接如此。GNU ddrescue 會直接複製磁區,而不會判斷哪些檔案已被刪除。若該映像檔尚未被覆寫,或未透過 SSD TRIM 功能被清除,其中仍可能包含可復原的已刪除資料。請先檢查備份;否則,可使用相容的檔案復原軟體來檢視已救回的儲存裝置。永久刪除並不能保證復原成功或失敗。.

如果我遺失了 ddrescue 的映射檔,會發生什麼情況?

若缺少原始的 mapfile,ddrescue 將無法可靠地根據其記錄的逐扇區進度繼續執行救援作業。您或許能夠評估現有的映像檔,但要生成合適的替代檔則需要專業知識,且可能涉及額外的讀取操作。請將 mapfile 與映像檔一同存放在狀態良好的儲存裝置上,並在變更救援設定之前,先將 mapfile 另行備份一份。.

GNU ddrescue 能在 Windows 10 和 11 上運作嗎?

GNU ddrescue 在 Linux 或其他合適的 POSIX 系統上運作最為順暢。Windows 使用者可以啟動 Ubuntu 即時啟動 USB 隨身碟,並在不將 Ubuntu 安裝至故障磁碟的情況下,執行這項 Linux 工具。雖然也有相容性層和圖形化前端,但直接存取磁碟的方式會有所不同。在開始複製之前,請務必先確認您所選擇的環境如何識別實體裝置。.

「100% 已修復」是否代表每個檔案都能開啟?

不。救援作業完成僅表示 ddrescue 已成功讀取所選的磁區範圍,並不代表每個檔案系統記錄或文件在邏輯上都是有效的。檔案可能已被刪除、在建立映像檔前已損毀,或是因先前操作而受損。請從正常的副本中開啟具有代表性的重要文件和媒體檔案,然後將其內容與大小與任何可用的備份進行比對。.

ddrescue 的 -n 和 -N 之間有什麼區別?

在 GNU ddrescue 1.30 中,, -n 意指 --no-scrape, ,這會跳過詳細的資料擷取階段,而 -N 意指 --no-sweep, ,這可避免進行掃描階段。較早的版本會指派 -N 有所不同。因此,若直接複製舊版教學中的指令,可能會改變 ddrescue 處理困難區域的方式。在使用這些選項之前,請務必先確認本地端安裝的版本及說明文件內容。.

ddrescue 能否在執行 TRIM 之後從 SSD 恢復檔案?

Ddrescue 能夠複製 SSD 仍可讀取的磁區,但無法逆轉 TRIM 操作或控制器內部執行的清理程序。一旦已刪除的區塊不再包含原始資訊,磁碟映像便無法還原該資訊。若 SSD 仍可存取,請減少操作並盡快備份一份副本;若硬體狀態不穩定或檔案無法取代,請考慮尋求專業協助。.

Vasilii 是一位在該領域擁有約 10 年實務經驗的資料復原專家。在他的職業生涯中,他已成功解決數千個複雜的個案,包括刪除的檔案、格式化的硬碟機、遺失的磁碟分割和 RAW 檔案系統。他的專業知識涵蓋使用十六進位編輯器等專業工具的手動復原方法,以及使用復原軟體的進階自動解決方案。Vasilii 的使命是讓 IT 專業人士和一般使用者都能獲得可靠的資料復原知識,協助他們保護寶貴的數位資產。.