如何在 Linux 中恢復已刪除的檔案?


毫無疑問,丟失重要檔案或意外刪除檔案的想法確實令人惱火,我們幾乎所有人都遇到過這種情況,特別是如果檔案非常重要,無論是工作檔案、個人照片還是您無法缺少並希望恢復的影片。

如果您遇到此問題,請不要擔心。有很多解決方案和程式專門用於恢復檔案,特別是如果您使用的是著名的 Linux 發行版。還有許多多樣且免費的程式專用於所有著名的發行版。

Linux 資料和已刪除檔案恢復程式

這些程式在您錯誤刪除或格式化並從 SSD 硬碟儲存裝置以及其他攜帶儲存記憶體的電子裝置(如 DVD 光碟、USB 快閃記憶體和其它光碟或裝置)中刪除檔案時,可以恢復丟失、已刪除和損壞的檔案。

在本教程中,我們將解釋其中一個最佳工具,稱為 **TestDisk**,以及另一個稱為 **Extundelete** 的工具。

TestDisk

TestDisk 被認為是恢復已刪除的照片、影片、檔案和損壞資料的最佳程式之一。它是一個開源工具,可以恢復所有檔案,無論其型別和大小。它在從硬碟和 USB 恢復資料方面也非常出色。它在 Linux 發行版上也能出色地工作,並且也用於數字取證調查。

在 Linux 中安裝 TestDisk

由於 TestDisk 未隨 Linux 發行版一起安裝,因此您首先需要使用以下命令在 Ubuntu 上安裝它:

apt install testdisk

對於 **Fedora**:

sudo dnf install testdisk

首次執行 TestDisk 時,您應該會看到如下螢幕:

Install TestDisk in Linux

您將透過按 Enter 建立一個新的日誌檔案。如果您沒有使用 sudo 執行 TestDisk,這將彈出一個螢幕,要求您輸入密碼。

TestDisk with sudo

之後,您應該會看到如下螢幕:

TestDisk

在此,選擇分割槽並點選 **Proceed**。確保 “Proceed” 選項突出顯示,如影像所示。

接下來,您將看到如下螢幕:


此螢幕要求您選擇分割槽型別。在本例中,將是 **Intel**,因此按 Enter。

下一個螢幕將如下所示:

partition type

在此,如果您有損壞的磁碟,則應繼續使用 **Analyze** 選項修復它。但是,如果您只需要恢復過程,請選擇 **Advanced** 選項,您將看到如下螢幕:

damaged disk

選擇 **Image Creation** 選項並按 Enter。

之後,它將為您提供一個螢幕,選擇將恢復的資料儲存到哪裡,如下所示:

restored data

使用箭頭鍵設定位置,並在正確的位置時點選 **C**。

之後,恢復過程應該開始,您將看到如下螢幕:

recovery process

最後,恢復完成後,在您儲存資料的位置執行此命令:

testdisk image.dd

這將向您顯示所有恢復的資料。

Extundelete 工具

當您在終端上工作時,此命令工具很有用,並且錯誤地忘記並使用命令 **rm** 刪除了一個檔案。如果是這種情況,Extundelete 工具可以將其恢復到其原始位置。

與 **Testdisk** 相比,我更喜歡使用 **Extundelete**,因為它速度快、簡單,並且具有與 test disk 幾乎相同的功能(但並非全部)。

就像 **Testdisk** 一樣,**Extundelete** 工具預設情況下未安裝,您需要先安裝它。

對於 **Ubuntu / Mint**:

sudo apt install extundelete

對於 **Fedora**:

sudo dnf install extundelete

當您在 Linux 中刪除某些內容時,特別是如果它是一個大檔案,第一步是解除安裝分割槽。這可以防止將更多資料寫入檔案所在的位置(這可能會覆蓋已刪除的資料)。

要解除安裝分割槽,請使用以下命令:

sudo umount /dev/sda2

在此示例中,已刪除的檔案位於 ** /dev/sda2** 上。

要識別系統上的分割槽,請使用命令 **lsblk**。例如,在我的系統上,它看起來像這樣:

lsblk

解除安裝後,工具的使用非常簡單。

讓我們舉一個我刪除了位於 **home** 資料夾中的名為 test 的檔案的例子。

要使用 **extundelete** 恢復特定檔案,請使用以下命令:

extundelete /dev/sda1 --restore-file /path/to/deleted/file

我們使用選項 ** /dev/sda2** 指定檔案所在的分割槽,然後使用 **--restore-file** 指示我們要恢復檔案,然後是我們要恢復的檔案的路徑。例如:

sudo extundelete /dev/sda2 --restore-file ~/test

這將恢復檔案 **test**,該檔案位於分割槽 ** /dev/sda2** 上。

結論

在本教程中,我們解釋瞭如何使用 TestDisk 和 Extundelete 從硬碟恢復已刪除的資料。

我們首先從 TestDisk 開始,它是一個眾所周知且功能強大的工具,具有許多功能。但是,在本文中,我們僅解釋瞭如何使用它從特定磁碟恢復資料。最後,我們提供了一個如何使用 Extundelete 恢復檔案的示例。

更新於: 2024-11-04

31 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.