如何使用開(kāi)源工具Extundelete快速恢復(fù)被誤刪除掉的數(shù)據(jù)

本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于如何使用開(kāi)源工具extundelete快速恢復(fù)被誤刪除掉的數(shù)據(jù),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

誤刪文件后如何恢復(fù)數(shù)據(jù)

在日常使用中有時(shí)難免會(huì)出現(xiàn)數(shù)據(jù)被誤刪除的情況,在這個(gè)時(shí)候該如何快速、有效地恢復(fù)數(shù)據(jù)呢?在阿里云上恢復(fù)數(shù)據(jù)有多種方式,例如:

通過(guò)阿里云控制臺(tái)回滾備份好的快照,自定義鏡像恢復(fù)等方式。

購(gòu)買(mǎi)多臺(tái)ECS,實(shí)現(xiàn)業(yè)務(wù)的負(fù)載均衡,高可用。

利用對(duì)象存儲(chǔ) OSS(Object Storage Service),存儲(chǔ)靜態(tài)網(wǎng)頁(yè)和海量圖片、視頻等重要數(shù)據(jù)。

本文檔主要以CentOS7操作系統(tǒng)為例,介紹如何使用開(kāi)源工具Extundelete快速恢復(fù)被誤刪除掉的數(shù)據(jù)。

linux下,基于開(kāi)源的數(shù)據(jù)恢復(fù)工具有很多,常見(jiàn)的有debugfs、R-Linux、ext3grep、extundelete等,比較常用的有ext3grep和extundelete,這兩個(gè)工具的恢復(fù)原理基本一樣,只是extundelete功能更加強(qiáng)大。

Extundelete是基于linux的開(kāi)源數(shù)據(jù)恢復(fù)軟件。在使用阿里云的云服務(wù)器時(shí),如果您不小心誤刪除數(shù)據(jù),并且Linux系統(tǒng)也沒(méi)有與windows系統(tǒng)下回收站類(lèi)似的功能,您可以方便快速安裝此工具。

Extundelete能夠利用inode信息結(jié)合日志去查詢(xún)?cè)搃node所在的block位置,以次來(lái)查找和恢復(fù)所需的數(shù)據(jù),該工具最給力的一點(diǎn)就是支持ext3/ext4雙格式分區(qū)恢復(fù),基于整個(gè)磁盤(pán)的恢復(fù)功能較為強(qiáng)大。

注意事項(xiàng)

在數(shù)據(jù)被誤刪除后,第一時(shí)間要做的是卸載被刪除數(shù)據(jù)所在的磁盤(pán)或磁盤(pán)分區(qū)。因?yàn)閷⑽募h除后,僅僅是將文件的inode結(jié)點(diǎn)中的扇區(qū)指針清零,實(shí)際文件還存儲(chǔ)在磁盤(pán)上,如果磁盤(pán)以讀寫(xiě)模式掛載,這些已刪除的文件的數(shù)據(jù)塊就可能被操作系統(tǒng)重新分配出去,在這些數(shù)據(jù)塊被新的數(shù)據(jù)覆蓋后,這些數(shù)據(jù)就真的丟失了,恢復(fù)工具也回力無(wú)天。所以,以只讀模式掛載磁盤(pán)可以盡量降低數(shù)據(jù)塊中數(shù)據(jù)被覆蓋的風(fēng)險(xiǎn),以提高恢復(fù)數(shù)據(jù)成功的幾率。

注:在實(shí)際線上恢復(fù)過(guò)程中,切勿將extundelete安裝到您誤刪的文件所在硬盤(pán),這樣會(huì)有一定幾率將需要恢復(fù)的數(shù)據(jù)徹底覆蓋,切記操作前做好快照備份。

適用對(duì)象

磁盤(pán)中文件誤刪除的用戶(hù),且未對(duì)磁盤(pán)進(jìn)行過(guò)寫(xiě)入等操作

網(wǎng)站訪問(wèn)量小、少量 ECS 實(shí)例的用戶(hù)

使用方法

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

注:extundelete需要libext2fs版本1.39或更高版本來(lái)運(yùn)行,但是對(duì)于ext4支持,請(qǐng)確保您有e2fsprogs版本1.41或更新版本(可以通過(guò)運(yùn)行命令“dumpe2fs”并記錄其輸出的版本)

說(shuō)明:以上版本是寫(xiě)文檔時(shí)的軟件版本。您下載的版本可能與此不同。

部署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????#安裝相關(guān)依賴(lài)和庫(kù) tar?-xvjf?extundelete-0.2.4.tar.bz2 cd?extundelete-0.2.4????????????????????????????????#進(jìn)入程序目錄 ./configure?????????????????????????????????????????#如下圖表示安裝成功
make?&&?make?install

這個(gè)時(shí)候會(huì)出現(xiàn)src目錄,下面有個(gè)extundelete可執(zhí)行文件以及相應(yīng)路徑,如下圖,其實(shí)默認(rèn)文件安裝在usr/local/bin下面,下面演示就在usr/local/bin目錄下。

使用extundelete,模擬數(shù)據(jù)誤刪除然后恢復(fù)的過(guò)程

1.檢查ECS現(xiàn)有的磁盤(pán)和可用分區(qū),并對(duì)/dev/vdb進(jìn)行分區(qū),格式化,此處不在介紹磁盤(pán)分區(qū)格式化方式,如果不會(huì)的話(huà)可以點(diǎn)擊此文檔查看操作方式“格式化和掛載數(shù)據(jù)盤(pán)”。

fdisk?-l

2.將分區(qū)后的磁盤(pán)掛載到/zhuyun目錄下,然后在/zhuyun下面新建測(cè)試文件hello,寫(xiě)入test。

mkdir?/zhuyun????????????????????????????????#新建zhuyun目錄 mount?/dev/vdb1?/zhuyun??????????????????????#將磁盤(pán)掛載到zhuyun目錄下 echo?test?>?hello????????????????????????????#寫(xiě)入測(cè)試文件

3.記錄文件MD5值,md5sum命令用于生成和校驗(yàn)刪除前和恢復(fù)后倆個(gè)文件的md5值。

md5sum?hello

4.模擬刪除hello文件。

rm?-rf?hello cd?~ fuser?-k?/zhuyun?????????????????????#結(jié)束使用某分區(qū)的進(jìn)程樹(shù)(確認(rèn)沒(méi)有資源占用的話(huà),可以跳過(guò)此步)

5.卸載數(shù)據(jù)盤(pán)。

umount?/dev/vdb1?????????????????????#任何的文件恢復(fù)工具,在使用前,均要將要恢復(fù)的分區(qū)卸載或掛載為只讀,防止數(shù)據(jù)被覆蓋使用

6.使用Extundelete工具恢復(fù)文件。

extundelete?--inode?2?/dev/vdb1??????#為查找某i節(jié)點(diǎn)中的內(nèi)容,使用2則說(shuō)明為整個(gè)分區(qū)搜索,如果需要進(jìn)入目錄搜索,只須要指定目錄I節(jié)點(diǎn)即可。這是可以看到刪除的文件名和inode
/usr/local/bin/extundelete??--restore-inode?12??/dev/vdb1????#恢復(fù)刪除的文件

這個(gè)時(shí)候會(huì)在執(zhí)行命令的同級(jí)目錄下出現(xiàn)RECOVERED_FILES目錄,查看是否恢復(fù)。

通過(guò)md5值查看,前后倆個(gè)文件,一樣說(shuō)明恢復(fù)成功。

注:

--restore-inode?12??????????????????#?--restore-inode?按指定的I節(jié)點(diǎn)恢復(fù) --extundelete?--restore-all?????????#?--restore-all???全部恢復(fù)

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享