簡單了解dd、ext3grep、extundelete與linux數據恢復
一、恢復軟體安裝問題
現網一台SUSE主機,被同事不小心幹掉了一個文件。不過在用想通過ext3grep或extundelete這類工具進行恢復時,發現在編譯過程中,總是提示「configure: error: Can"t find ext2fs library」。
因為在SUSE源里沒有e2fsprogs-devel、e2fsprogs-libs包,在通過源碼安裝e2fsprogs後,發現還是有該問題。而redhat上不存在該問題,redhat可以直接通過下面的命令安裝依賴:
二、異機恢復設想與操作1、異機恢復理論基礎
先說下LINUX上的文件刪除rm,實際上 rm 文件並未從磁碟上清理,只是將其所在的塊(inode)進行了重新標記,標記為可擦除可寫。而數據恢復軟體就是讀取到這些inode,再從而恢復相應的數據(前提是未被其他數據覆寫的情況下)。
在LINUX在有一個按數據塊進行讀取備份的工具dd,既然dd是按資料庫讀取備份的,那其在他數據盤或分區上還原時,也會把 rm 刪除的數據塊同樣寫過去。在另一台可以正常安裝恢復軟體的主機上,通過相應的恢復軟體掃描就可以恢複數據了。
2、磁碟和分區恢復
源主機:SUSE被刪除數據主機(/dev/sda6)
目標機:redhat主機(/dev/sda2)
注意,這裡有一個要求,目標主機的/sda2空間一定要大於或等於sda6。新老主機上分區格式要一致,要同為ext3 或 ext4
上面在備份的時候使用了gzip進行最高級別的壓縮,由於 dd和gzip都只能使用單核資源,所以操作會比較慢,如果空間足夠,新老主機之間網路傳輸又快的,可以直接 dd if=/dev/sda6 of=/opt/tmpbackup.dd 不壓縮備份,備份出的大小會和原來的磁碟分區大小一樣大。
三、恢復命令
1、extundelete恢復
恢復單個文件,會在當前目錄下生成一個RECOVERED_FILES目錄,裡面保存已經恢復的文件:
根據inode進行恢復
恢復單個目錄:
恢復所有誤刪文件:
extundelete還可以實現恢復某個時間段的數據。可以通過「--after」和「--before」參數實現!
2、ext3grep恢復
查詢需要恢復的數據信息:
恢復單個文件
根據inode恢復
恢復所有文件
3、ext3grep與extundelete
extundelete:掃描inode和恢複數據同時進行,因此恢復速度很快。支持單個文件,單個目錄和完整磁碟恢復;
ex3grep:只能恢復ex3的數據,不支持目錄恢復和時間恢復。
四、dd的備份的好處
dd備份出來再在其他主機上恢復還有一個好處,即使在恢復過程中有不當操作,我們仍保留一份源數據,依然可以通過還原後,再用其他工具掃描。
特別需要注意的一點:一但主機發生意外刪除的,一定要先將當前分區置為只讀,如: mount -o remount,ro /tmp
※AWS遠超微軟、Google,保持雲市場的統治地位
※SUSE發布全新版本,多模塊設計為IT轉型賦能
TAG:Linux資訊速推 |