在 Linux 上恢復已刪除文件的 7 種方法

在 Linux 上恢復已刪除文件的 7 種方法

文件恢復實用程序是 Linux 管理員工具包中最重要的程序之一。它們提供恢復已刪除文件的能力,即使在磁盤物理損壞或擦除乾淨的情況下也是如此。

本指南展示了七個簡單的文件恢復工具,您現在可以在 Linux 上安裝它們。我們還向您展示瞭如何在您的系統上進行基本的文件恢復。

使用文件管理器恢復文件

刪除文件時,只會刪除文件與其基礎數據之間的鏈接。物理文件本身仍然完好無損。它只告訴操作系統該空間現在可以被覆蓋。

此外,當今的大多數桌面環境都阻止您直接刪除磁盤上的文件。他們會將刪除的文件移動到垃圾文件夾(或 Windows 中的回收站),然後可以輕鬆恢復。

顯示 Linux 垃圾文件夾的圖像。

您可以通過訪問桌面的回收站文件夾來恢復 Linux 中的文件。

  • Win,然後鍵入“文件”。
文件應用程序的快照。
  • 單擊文件管理器左側欄上的“垃圾箱”條目。
顯示 Linux 中垃圾文件夾的圖片。
  • 右鍵單擊要還原的文件,然後選擇“從廢紙簍還原”。
在 Linux 中顯示還原提示的窗口。

1.測試盤

Testdisk是 Linux 中最流行的文件恢復工具之一。它是一個功能強大的終端程序,可以從幾乎任何磁盤恢復丟失的分區。它的工作原理是在查找任何分區表數據時遍歷磁盤中的每個柱面。

顯示 Testdisk 手冊頁的窗口。

這意味著即使您已將文件系統擦除乾淨,Testdisk 也可以恢復文件系統。如果您不小心格式化了磁盤並刪除了其內部分區表,這也很有用。

  • 通過運行以下命令在 Ubuntu 和 Debian 中安裝 Testdisk:

sudo apt install testdisk

顯示 Testdisk 安裝的窗口。
  • 在您機器的終端窗口中輸入sudo testdisk以運行該程序。
顯示 Testdisk 菜單的窗口。
  • 選擇“創建”以告訴 Testdisk 您要存儲當前會話的日誌。
突出顯示“創建”選項的窗口。
  • 選擇要恢復的磁盤。在我的例子中,它是“/dev/sda”。
顯示可用磁盤設備的窗口。
  • 選擇磁盤的分區表類型。
顯示所有可用分區類型的窗口。
  • 選擇“分析”以掃描您的磁盤以查找與其當前分區佈局不一致的地方。
顯示分析提示的窗口。
  • 選擇“快速搜索”選項以啟動分區檢索過程。
顯示系統當前分區的窗口。
  • 按下Enter以接受 Testdisk 的默認值。
顯示 Testdisk 找到的分區的窗口。
  • 選擇“寫入”以保存新的分區佈局。
顯示已恢復分區的窗口。

優點

  • 恢復整個磁盤分區
  • 使用無法啟動的操作系統修復磁盤

缺點

  • 無法恢復單個文件
  • 恢復分區並不能保證其內容會在那裡

2.照片記錄

Photorec是一個簡單的工具,可以在 Linux 中通過數據雕刻恢復文件。這是一個程序讀取磁盤原始字節以查找已刪除文件內容的過程。

顯示 Photorec 手冊頁的屏幕截圖。

Photorec 的最大優點之一是它通常與 Testdisk 包捆綁在一起。您無需安裝任何其他實用程序和依賴項即可開始恢復文件。

  • 通過運行 Photorec 開始恢復數據:

sudo photorec

  • 突出顯示包含要還原的文件的磁盤,然後選擇“繼續”。
顯示可用磁盤的屏幕截圖。
  • 選擇“[Whole disk]”選項,然後按Enter
顯示分區選項的屏幕截圖。
  • 選擇最初保存已刪除文件的文件系統。
顯示 Photorec 可用文件系統的屏幕截圖。
  • 為 Photorec 提供一個“恢復目錄”。要選擇一個,請使用箭頭鍵進入目標目錄,然後按C
顯示輸出目錄提示的屏幕截圖。

優點

  • 恢復算法很快
  • 處理各種文件系統格式

缺點

  • 恢復可能會對固態驅動器造成不利影響
  • 需要一個單獨的文件系統來存儲文件

3.手術刀

Scalpel是一個快速高效的程序,它使用正則表達式來恢復 Linux 磁盤中任何丟失的文件。與 Photorec 類似,Scalpel 會遍歷您的磁盤並查找任何可以指示現有數據存在的字節模式。

顯示 Scalpel 手冊頁的屏幕截圖。

Scalpel 的一個優點是您可以使用正則表達式來微調程序將恢復的內容,因此與類似程序相比,它只需要一小部分時間。

  • 通過運行以下命令在 Ubuntu 和 Debian 中安裝 Scalpel:

sudo apt install scalpel

顯示手術刀安裝過程的屏幕截圖。
  • 將 Scalpel 的默認配置文件複製到您的主目錄:

cp /etc/scalpel/scalpel.conf /home/$USER/

  • 通過文本編輯器打開 scalpel.conf 文件:

nano /home/$USER/scalpel.conf

  • 取消註釋包含您要恢復的文件擴展名的行。
顯示手術刀可用過濾器的屏幕截圖。
  • 使用以下命令運行 Scalpel:

sudo scalpel -c /home/$USER/scalpel.conf -o /home/$USER/out /dev/sdb1

顯示手術刀恢復過程的屏幕截圖。

優點

  • 在設備文件和磁盤映像上運行
  • 允許您過濾要恢復的文件類型

缺點

  • 配置文件可能令人困惑
  • 在檢測文件類型時可能不可靠

僅供參考: Scalpel 最初是作為流行的 Foremost 實用程序的一個分支開始的。了解如何使用原始的 Foremost 程序在 Linux 中恢復文件。

4. 救援

ddrescue是一個功能強大的數據恢復實用程序,它使用巧妙的算法來保存整個磁盤設備的內容。與數據切割器不同,ddrescue 的主要目標是盡可能準確地恢復和保存數據。

顯示 ddrescue 手冊頁的屏幕截圖。

按照設計,ddrescue 不會使用這種方法從磁盤文件中提取文件。相反,它會創建磁盤當前狀態的“快照”,這在您從間歇性故障硬盤驅動器中提取數據時很有用。

  • 您可以通過運行以下命令在 Ubuntu 和 Debian 中安裝 ddrescue:

sudo apt install gddrescue

  • 開始保存磁盤內容。例如,以下命令將從“/dev/sdb”磁盤設備創建一個映像文件:

sudo ddrescue /dev/sdb /home/$USER/sdb.img /home/$USER/sdb.map

顯示 ddrescure 還原過程的屏幕截圖。
  • 使用標誌驗證快照的完整性-I

sudo ddrescue -I /dev/sdb /home/$USER/sdb.img /home/$USER/sdb.map

顯示 ddrescue 中文件系統檢查的屏幕截圖。

優點

  • 創建磁盤的準確副本
  • 跳過硬盤驅動器上的壞扇區

缺點

  • 不會直接恢復丟失的文件
  • 在大硬盤上可能會很慢

5.肥貓

Fatcat是一個輕量級程序,可以在 Linux 中恢復 FAT 類型文件系統中的文件。這包括舊的 FAT12 格式到更新的 FAT32。Fatcat 是從舊硬盤恢復數據的好工具。

fatcat 手冊頁的屏幕截圖。

Fatcat 的最佳功能之一是它可以成為 FAT 類型磁盤的便攜式文件資源管理器。您無需提取圖像文件即可訪問和恢復其內容。

  • 通過運行以下命令在 Ubuntu 和 Debian 中安裝 Fatcat:

sudo apt install fatcat

顯示 fatcat 安裝過程的屏幕截圖。
  • 使用 ddrescue 創建 FAT 分區的映像文件:

sudo ddrescue /dev/sdb1 /home/$USER/fat.img /home/$USER/fat.map

顯示脂肪成像過程的屏幕截圖。
  • 通過列出其根目錄來驗證 FAT 映像的內容:

sudo fatcat /home/$USER/fat.img -l / -d

顯示圖像文件內容的屏幕截圖。
  • 將 FAT 分區的內容轉儲到您自己的文件系統中:

sudo fatcat /home/$USER/fat.img -x /home/$USER/output -d

顯示 fatcat 提取過程的屏幕截圖。

優點

  • 動態加載 FAT 分區的內容
  • 修復損壞的 FAT 文件系統

缺點

  • 不支持 exFAT
  • 恢復單個目錄可能很棘手

6.Ntfsundelete

Ntfsundelete是一個實用程序,可以在 Linux 上修復和恢復 NTFS 文件系統中的文件。與 Fatcat 類似,Ntfsundelete 可以恢復單個文件以及整個目錄和磁盤。

顯示 ntfsundelete 手冊頁的屏幕截圖。

默認情況下,Ntfsundelete 在大多數 Linux 發行版上都有,因為它包含在ntfs-3g充當 Linux 上 NTFS 兼容層的包中。

  • 使用 ddrescue 創建 NTFS 分區的映像文件:

sudo ddrescue /dev/sdb1 /home/$USER/ntfs.img /home/$USER/ntfs.map

  • 通過列出其內容來測試圖像文件的一致性:

sudo ntfsundelete /home/$USER/ntfs.img

顯示 ntfs 圖像文件內容的屏幕截圖。
  • 從磁盤映像恢復數據。例如,以下命令將從磁盤映像恢復所有 ZIP 文件:

sudo ntfsundelete /home/$USER/ntfs.img -u -m '*.zip*' -d /home/$USER/output

顯示 ntfsundelete 提取過程的屏幕截圖。

優點

  • 大多數 Linux 發行版的核心部分
  • 恢復單個文件

缺點

  • 設備文件不可靠
  • 恢復的文件名可能與原始文件名不同

7. Ext4magic

除了恢復 FAT 和 NTFS 分區內的文件外,還可以從 Linux 的 Ext 文件系統恢復文件。Ext4magic是一個功能強大的程序,可以從 Ext3 或 Ext4 文件系統中恢復幾乎所有文件。

顯示 ext4magic 手冊頁的屏幕截圖。

Ext4magic 的賣點之一是它可以使用日期範圍恢復文件。這在您不記得原始文件的確切文件名和類型的情況下很有用。

  • 通過運行以下命令在 Ubuntu 和 Debian 中安裝 Ext4magic:

sudo apt install ext4magic

顯示 ext4magic 安裝過程的屏幕截圖。
  • 使用 ddrescue 創建磁盤的分區映像:

sudo ddrescue /dev/sdb1 /home/$USER/ext.img /home/$USER/ext.map

  • 使用 ext4magic 恢復已刪除的文件。例如,以下命令將恢復我的 Ext4 磁盤中的所有文件:

sudo ext4magic -M /home/$USER/ext.img

顯示 ext4magic 提取過程的屏幕截圖。

優點

  • 使用日誌文件來幫助恢復文件
  • 掃描文件系統以查找問題

缺點

  • 日期範圍選項使用 UNIX 紀元格式
  • 較舊的已刪除文件可能不可靠

經常問的問題

如果掃描後 Photorec 仍然無法找到我的文件,我該怎麼辦?

在某些情況下,Photorec 的第一次恢復過程可能會遺漏一些重要的字節數據。要解決此問題,請在第一次通過後選擇“深度搜索”選項,告訴 Photorec 進行重新掃描。

在 Scalpel 中啟用所有文件擴展名過濾器是否可以?

是的。但是,它會降低 Scalpel 的有效性,因為“scalpel.conf”中的某些文件格式條目會產生許多誤報。最好只啟用特定掃描所需的選項。

為什麼我不能用 Fatcat 打開我的 FAT 映像文件?

這很可能是因為圖像文件與 Fatcat 期望的格式不匹配。要修復此問題,請在包含 FAT 文件系統的分區而不是整個磁盤上運行 ddrescue。

圖片來源:Unsplash。Ramces Red 的所有更改和屏幕截圖。

  • Facebook
  • 鳴叫

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *