首頁  >  文章  >  運維  >  如何使用開源工具Extundelete快速恢復被誤刪除掉的數據

如何使用開源工具Extundelete快速恢復被誤刪除掉的數據

坏嘻嘻
坏嘻嘻原創
2018-09-19 13:43:252345瀏覽

這篇文章帶給大家的內容是關於如何使用開源工具Extundelete快速恢復被誤刪除掉的數據,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

誤刪檔案後如何恢復資料

在日常使用中有時難免會出現資料被誤刪除的情況,在這個時候該如何快速、有效地恢復資料呢?在阿里雲上恢復資料有多種方式,例如:

透過阿里雲控制台回滾備份好的快照,自訂鏡像還原等方式。

購買多台ECS,實現業務的負載平衡,高可用。

利用物件儲存 OSS(Object Storage Service),儲存靜態網頁和海量圖片、影片等重要資料。

本文檔主要以CentOS7作業系統為例,介紹如何使用開源工具Extundelete快速恢復被誤刪除掉的資料。

在Linux下,基於開源的資料復原工具有很多,常見的有debugfs、R-Linux、ext3grep、extundelete等,比較常用的有ext3grep和extundelete,這兩個工具的復原原理基本上一樣,只是extundelete功能更強大。

Extundelete是基於linux的開源資料復原軟體。使用阿里雲的雲端伺服器時,如果您不小心誤刪除數據,而Linux系統也沒有與Windows系統下回收站類似的功能,您可以方便快速安裝此工具。

Extundelete能夠利用inode資訊結合日誌去查詢該inode所在的block位置,以次來查找和恢復所需的數據,該工具最給力的一點就是支援ext3/ext4雙格式分區恢復,基於整個磁碟的復原功能較為強大。

注意事項

在資料被誤刪除後,第一時間要做的是卸載被刪除資料所在的磁碟或磁碟分割區。因為將檔案刪除後,只是將檔案的inode結點中的磁區指標清零,實際檔案也儲存在磁碟上,如果磁碟以讀寫模式掛載,這些已刪除的檔案的資料區塊就可能被作業系統重新分配出去,在這些資料塊被新的資料覆蓋後,這些資料就真的遺失了,復原工具也迴力無天。所以,以唯讀模式掛載磁碟可以盡量降低資料區塊中資料被覆蓋的風險,以提高恢復資料成功的幾率。

附註:在實際線上復原過程中,切勿將extundelete安裝到您誤刪的檔案所在硬碟,這樣會有一定幾率將需要復原的資料徹底覆蓋,請記住作業前先做好快照備份。

適用物件

磁碟中檔案誤刪除的用戶,且未對磁碟進行過寫入等操作

#網站訪問量小、少量ECS 實例的使用者

使用方法

需安裝的軟體及版本:e2fsprogs-devel e2fsprogs gcc-c make(編譯器等)Extundelete-0.2.4

#:extundelete需要libext2fs版本1.39或更高版本來運行,但是對於ext4支持,請確保您有e2fsprogs版本1.41或更新版本(可以通過運行指令「dumpe2fs」並記錄其輸出的版本)

說明:以上版本是寫入文件時的軟體版本。您下載的版本可能與此不同。

部署extundelete工具

wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
yum -y install  bzip2  e2fsprogs-devel  e2fsprogs  gcc-c++  make    #安装相关依赖和库
tar -xvjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4                                #进入程序目录
./configure                                         #如下图表示安装成功
make && make install

這個時候會出現src目錄,下面有個extundelete可執行檔以及對應路徑,如下圖,其實預設檔安裝在usr/local/bin下面,下面示範就在usr/local/bin目錄下。

使用extundelete,模擬資料誤刪除然後恢復的過程

1.檢查ECS現有的磁碟和可用分割區,並對/dev/vdb進行分割區,格式化,這裡不在介紹磁碟分割區格式化方式,如果不會的話可以點選此文件查看操作方式「格式化和掛載資料碟」。

fdisk -l

2.將分割區後的磁碟掛載到/zhuyun目錄下,然後在/zhuyun下面新建測試檔hello,寫入test。

mkdir /zhuyun                                #新建zhuyun目录
mount /dev/vdb1 /zhuyun                      #将磁盘挂载到zhuyun目录下
echo test > hello                            #写入测试文件

3.記錄檔案MD5值,md5sum指令用於產生和校驗刪除前和恢復後兩個檔案的md5值。

md5sum hello

4.模擬刪除hello檔。

rm -rf hello
cd ~
fuser -k /zhuyun                     #结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步)

5.卸載資料碟。

umount /dev/vdb1                     #任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用

6.使用Extundelete工具恢復檔案。

extundelete --inode 2 /dev/vdb1      #为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode
/usr/local/bin/extundelete  --restore-inode 12  /dev/vdb1    #恢复删除的文件

這個時候會在執行指令的同級目錄下出現RECOVERED_FILES目錄,查看是否恢復。

透過md5值查看,前後兩個文件,一樣說明恢復成功。

註:

--restore-inode 12                  # --restore-inode 按指定的I节点恢复
--extundelete --restore-all         # --restore-all   全部恢复


#

以上是如何使用開源工具Extundelete快速恢復被誤刪除掉的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn