一、背景
系統(tǒng)管理員,最謹(jǐn)慎的linux就是rm命令了,一不小心數(shù)據(jù)就沒(méi)干掉,最恐怖的是數(shù)據(jù)沒(méi)有備份,沒(méi)法還原了,此類(lèi)事情發(fā)生的太多了,針對(duì)于此,我們經(jīng)過(guò)多次嘗試演練,終于成功的把大部分刪除的數(shù)據(jù)找回來(lái)了,下面我把演練過(guò)程給大家介紹一下。
二、安裝恢復(fù)軟件
extundelete,該工具官方給出的是可以恢復(fù)ext3或者ext4文件系統(tǒng)被刪除的文件。
1:通過(guò)命令安裝
#yum install extundelete -y
2:通過(guò)源碼編譯安裝
#yum -y install e2fsprogs-devel e2fsprogs #wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2 #tar -xvjf extundelete-0.2.4.tar.bz2 #cd extundelete-0.2.4 #./configure #make &&make install
三、刪除數(shù)據(jù)查找
首先,我們先刪除一個(gè)文件,如圖:
如上圖,我們剛才在/boot目錄下刪除了個(gè)symvers-2.6.32-431.el6.x86_64.gz文件,/boot是落到/dev/sda1下
在Linux下可以通過(guò)“ls -id”命令來(lái)查看某個(gè)文件或者目錄的inode值,例如查看根目錄的inode值,可以輸入:
[root@cloud boot]# ls -id /boot 2 /boot
注:根目錄的inode一般為2
然后我們開(kāi)始查找被刪除的文件,需要根據(jù)分區(qū)inode查找,命令如下:
#extundelete /dev/sda1 --inode 2
結(jié)果如下圖:
我們就可以看到標(biāo)識(shí)為Deleted的被刪除數(shù)據(jù)了。
四、數(shù)據(jù)恢復(fù)
我們就開(kāi)始恢復(fù),命令如下:
#extundelete /dev/sda1 --restore-file symvers-2.6.32-431.el6.x86_64.gz
如圖:
還原成功
當(dāng)然,還有可能刪除整個(gè)文件夾,我們也舉個(gè)例子,如下:
#extundelete /dev/sda1 --restore-directory test
恢復(fù)全部刪除數(shù)據(jù),如下:
#extundelete /dev/sdb1 --restore-all
也可以通過(guò)時(shí)間段恢復(fù),這里就不說(shuō)了,參數(shù)如下:
--version, -[vV],顯示軟件版本號(hào)。 --help,顯示軟件幫助信息。 --superblock,顯示超級(jí)塊信息。 --journal,顯示日志信息。 --after dtime,時(shí)間參數(shù),表示在某段時(shí)間之后被刪的文件或目錄。 --before dtime,時(shí)間參數(shù),表示在某段時(shí)間之前被刪的文件或目錄。 動(dòng)作(action)有: --inode ino,顯示節(jié)點(diǎn)“ino”的信息。 --block blk,顯示數(shù)據(jù)塊“blk”的信息。 --restore-inode ino[,ino,...],恢復(fù)命令參數(shù),表示恢復(fù)節(jié)點(diǎn)“ino”的文件,恢復(fù)的文件會(huì)自動(dòng)放在當(dāng)前目錄下的RESTORED_FILES文件夾中,使用節(jié)點(diǎn)編號(hào)作為擴(kuò)展名。 --restore-file 'path',恢復(fù)命令參數(shù),表示將恢復(fù)指定路徑的文件,并把恢復(fù)的文件放在當(dāng)前目錄下的RECOVERED_FILES目錄中。 --restore-files 'path',恢復(fù)命令參數(shù),表示將恢復(fù)在路徑中已列出的所有文件。 --restore-all,恢復(fù)命令參數(shù),表示將嘗試恢復(fù)所有目錄和文件。 -j journal,表示從已經(jīng)命名的文件中讀取擴(kuò)展日志。 -b blocknumber,表示使用之前備份的超級(jí)塊來(lái)打開(kāi)文件系統(tǒng),一般用于查看現(xiàn)有超級(jí)塊是不是當(dāng)前所要的文件。 -B blocksize,通過(guò)指定數(shù)據(jù)塊大小來(lái)打開(kāi)文件系統(tǒng),一般用于查看已經(jīng)知道大小的文件。
五、總結(jié)
數(shù)據(jù)恢復(fù),不一定能全部將數(shù)據(jù)恢復(fù)回來(lái),還是一句話,操作要謹(jǐn)慎。萬(wàn)一操作失誤,也不要慌,將損失減少到最小,首先停止所有操作,其次讓專(zhuān)業(yè)人員去處理。