常見的開源數據恢復工具有,debugfs、R-Linux、ext3grep、extundelete 等。
ext3grep 跟 extundelete 比較常用,其中 ext3grep 只支持 ext3 文件系統,extundelete 支持 ext3/ext4。
都是通過分析文件系統日志,解析出所有文件的 inode 信息,利用 inode 去查找所在 block ,利用 dd 備份出以刪除的數據。
一、功能特點
支持雙格式:支持ext3和ext4兩種文件系統的分區恢復。
恢復能力強:基于整個磁盤的恢復功能較為強大,但基于目錄和文件的恢復功能相對較弱。
恢復文件存儲:執行恢復操作后,會在當前目錄下生成一個名為RECOVERED_FILES的目錄,里面包含恢復出來的文件和文件夾。
二、使用注意事項
避免覆蓋數據:在實際恢復過程中,切勿將extundelete安裝到包含誤刪文件的硬盤上,以免覆蓋需要恢復的數據。
卸載或只讀掛載:在恢復前,應將需要恢復的分區卸載或掛載為只讀模式,防止數據被意外覆蓋。
數據恢復局限性:任何數據恢復工具都有其局限性,不能保證完全恢復所有數據,因此最好將備份作為數據恢復的主要手段。
三、安裝方法
extundelete可以通過yum直接安裝或通過源碼編譯安裝。以下是兩種安裝方法的簡要步驟:
1. yum直接安裝
需要配置相應的倉庫源(如EPEL源),然后使用yum命令安裝:
yum install -y extundelete
2. 源碼編譯安裝
下載extundelete的源碼包(如extundelete-0.2.4.tar.bz2)。
解壓源碼包并進入解壓后的目錄。
安裝必要的依賴包(如gcc、gcc-c++、e2fsprogs等)。
執行./configure、make和make install命令進行編譯和安裝。
四、使用方法
extundelete的使用主要通過命令行進行,其基本語法格式為:
extundelete [options] [–] device-file
其中,device-file是需要恢復的分區設備文件(如/dev/sda1)。常用的選項包括:
–superblock:顯示指定分區的超級塊信息。
–journal:顯示分區的日志信息。
–after dtime:只恢復指定時間戳之后被刪除的數據。
–before dtime:只恢復指定時間戳之前被刪除的數據。
–restore-inode ino[,ino,…]:恢復一個或多個指定inode號的文件。
–restore-file ‘filename’:恢復指定的被刪除文件。
–restore-Directory ‘dir-name’:恢復指定的目錄。
–restore-all:恢復分區里所有被刪除的數據。
五、示例
假設要恢復/dev/sda1分區中在特定時間后刪除的所有文件,可以使用以下命令:
extundelete /dev/sda1 –after 1234567890 –restore-all
其中,1234567890是刪除操作發生時間的時間戳。