天天看點

LInux上使用extundelete進行資料恢複

原文連結:http://blog.51cto.com/wzlinux/2052835一、背景

突發事件,應用上傳的資料被程式自動删掉了,可悲的是還沒有資料備份,資料是放在系統的 /data/webapps/xxxx/upload 目錄下面,可把我們急壞了,之前又沒有做過資料恢複的測試,然後我找到了一款資料恢複的軟體,成功把删除的大部分資料找回來了,我的資料恢複過程如下。

二、安裝恢複軟體1、epel 倉庫安裝

如果我們的源裡面添加了 epel 倉庫的話,我們可以直接使用下面的指令安裝。

yum install extundelete -y      

2、源碼編譯安裝

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      

三、删除資料查找

因為我的資料路徑比較深,是以我們需要一步步查找,可以先從根分區 inode 查找

extundelete /dev/sdb1 --inode 2      
LInux上使用extundelete進行資料恢複

我們會看到 weapps 目錄的inode,

extundelete /dev/sda5 --inode 24641537      
LInux上使用extundelete進行資料恢複

我們看到項目的 inode,

extundelete /dev/sda5 --inode 24903688      
LInux上使用extundelete進行資料恢複

我們找到了最終删除資料的目錄 upload

extundelete /dev/sda5 --inode 24904454      
LInux上使用extundelete進行資料恢複

我們可以看到标稱的 Deleted,這些資料就是我們要進行恢複的資料。

四、資料恢複

那我們就恢複指定目錄,以目前分區為根分區進行路徑設定,項目名進行掩蓋

extundelete /dev/sda5 --restore-directory /webapps/xxxx/upload      
LInux上使用extundelete進行資料恢複

因為磁盤資料一直在讀寫,是以有些檔案之前的 inode 已經被重新配置設定了,導緻部分資料無法恢複,資料最後會告訴我們有多少檔案沒有回複,但是大部分資料我們已經恢複了,這就是很重要的事情了。

那我們檢視一下回複的資料吧,軟體會在目前目錄生成一個目錄 RECOVERED_FILES 裡面就是我們恢複的資料。

LInux上使用extundelete進行資料恢複

恢複全部資料可以使用指令

extundelete /dev/sda5 --restore-all      

使用方法extundelete --help

其中,參數(options)有:

--version, -[vV],顯示軟體版本号。

--help,顯示軟體幫助資訊。

--superblock,顯示超級塊資訊。

--journal,顯示日志資訊。

--after dtime,時間參數,表示在某段時間之後被删的檔案或目錄。

--before dtime,時間參數,表示在某段時間之前被删的檔案或目錄。

動作(action)有:

--inode ino,顯示節點“ino”的資訊。

--block blk,顯示資料塊“blk”的資訊。

--restore-inode ino[,ino,...],恢複指令參數,表示恢複節點“ino”的檔案,恢複的檔案會自動放在目前目錄下的RESTORED_FILES檔案夾中,使用節點編号作為擴充名。

--restore-file 'path',恢複指令參數,表示将恢複指定路徑的檔案,并把恢複的檔案放在目前目錄下的RECOVERED_FILES目錄中。

--restore-files 'path',恢複指令參數,表示将恢複在路徑中已列出的所有檔案。

--restore-all,恢複指令參數,表示将嘗試恢複所有目錄和檔案。

-j journal,表示從已經命名的檔案中讀取擴充日志。

-b blocknumber,表示使用之前備份的超級塊來打開檔案系統,一般用于檢視現有超級塊是不是目前所要的檔案。

-B blocksize,通過指定資料塊大小來打開檔案系統,一般用于檢視已經知道大小的檔案。

繼續閱讀