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