Google有一個開源的包 叫ext3grep工具他可以回復刪除的文件,甚至是drop database,想什么呢,數據庫啦!
這個工具需要在ext3或者ext4 的文件系統上才可以實現,因為ext3文件系統是日志型文件系統,ext3文件系統儲存信息的時候是由inode號和block塊存儲的。
一個分區比如一本書,那么block塊就是書每頁的內容,而inode號 就是書的目錄,系統找文件的時候先找inode號 然后根據inode號去找硬盤上的block快信息。
ext3grep恢復原理:
利用ext3grep恢復文件時並不依賴特定文本格式。首先ext3grep通過文件系統的root inode(根目錄的inode一般為2)來獲取當前文件系統下所有文件的信息,包括存在的和已經刪除的文件,這些信息包括文件名和inode。然后利用inode信息結合日志去查詢該inode所在的block位置,包括直接塊、間接塊等信息。最后利用dd命令將這些信息備份出來,從而恢復數據文件。
打比方講,當硬盤上的一個文件刪除,其實沒有真正想象中的那樣在硬盤上清除掉的,系統把inode號和block塊的那個鏈子 斷開,但是真正的數據還是在硬盤上的,有沒有感覺在windos上刪除是那么快,當你在刪除文件的地方重新復制了新文件,那時候才會把之前的文件覆蓋掉,也就是說刪除了沒有關系,千萬不要往那個位置放文件了。
ext3grep官網地址:https://code.google.com/archive/p/ext3grep/,國內下載地址:https://files.cnblogs.com/files/peteremperor/ext3grep-0.10.2.tar.gz
ext3grep的安裝:
實戰ext3grep恢復文件
查詢數據恢復信息
這條命令主要用於掃描當前文件系統下所有的信息,包括存在的和已刪除的文件,其中含有D標識的就是文件已被刪除。通過以下命令可以獲取文件要恢復的路徑信息。
恢復刪除數據
恢復的文件存放在/opt/RESTORED_FILES目錄下。
恢復所有已刪除數據的命令如下: