ext3grep恢復(fù)rm誤刪除文件實(shí)戰(zhàn)

一個(gè)同事不小心使用rm -rf命令誤刪了自己的代碼捷绒,這意味著一個(gè)月的工作丟失了(一個(gè)月沒(méi)有備份過(guò)代碼岸晦,看來(lái)他以前一定沒(méi)經(jīng)歷計(jì)算機(jī)崩潰的災(zāi)難)。我們知道rm命令無(wú)法撤銷褪秀,那么有沒(méi)有辦法恢復(fù)這個(gè)被刪除的目錄以及其中的全部文件呢空猜?

在網(wǎng)上搜索了一下绽慈,找到一個(gè)名為ext3grep的工具恨旱,以及它的作者的一篇文章(見(jiàn)參考文檔)。在這個(gè)工具出現(xiàn)以前坝疼,恢復(fù)ext3文件系統(tǒng)中被刪除的數(shù)據(jù)是不可能的搜贤。因?yàn)閑xt3文件系統(tǒng)不同于ext2文件系統(tǒng),它在刪除一個(gè)文件后钝凶,會(huì)把文件inode結(jié)點(diǎn)中扇區(qū)指針清為0仪芒,而這讓文件恢復(fù)看起來(lái)不太可能。不過(guò)耕陷,正如ext3grep工具作者所說(shuō)的掂名,因?yàn)閑xt3是一個(gè)日志型的文件系統(tǒng),通過(guò)分析日志信息哟沫,有很大的可能重新解析出塊指針饺蔑,從而恢復(fù)出目錄和文件。

以下是Easwy恢復(fù)文件所采用的步驟南用,希望對(duì)大家有幫助膀钠。

[ 卸載被誤刪除文件所在的分區(qū)掏湾,或以只讀方式mount ]

當(dāng)你發(fā)現(xiàn)你誤刪除了文件后裹虫,要做的第一件事是馬上卸載被誤刪除文件所在的分區(qū),或者以只讀的方式來(lái)掛載該分區(qū)融击。原因大家都很清楚筑公,文件被刪除后,文件中的數(shù)據(jù)還存在磁盤上尊浪,除非存放這些數(shù)據(jù)的數(shù)據(jù)塊又被操作系統(tǒng)分配出去了匣屡。我們這一步就是盡量降低數(shù)據(jù)塊中數(shù)據(jù)被覆蓋的風(fēng)險(xiǎn),以提高恢復(fù)數(shù)據(jù)成功的比率拇涤。

如果被誤刪的文件在根分區(qū)捣作,那么你最好重啟計(jì)算機(jī),進(jìn)入單用戶模式鹅士,以只讀的方式掛載根分區(qū)券躁,然后再進(jìn)行恢復(fù)。要進(jìn)行單用戶模式掉盅,請(qǐng)看Grub中進(jìn)入單用戶模式的方法也拜。

進(jìn)入單用戶模式后,根分區(qū)還是以讀寫方式mount的趾痘,用下面的命令慢哈,把掛載方式由讀寫(rw)改為只讀(ro):

mount -o ro,remount /
如果被刪除的文件不是根分區(qū),也可以用unmount的方式將該分區(qū)卸載永票。假設(shè)文件在分區(qū)/dev/sda3中卵贱,該分區(qū)掛載到/home滥沫,那么我們用下面的命令來(lái)卸載:

umount /dev/sda3 

或者命令:

umount /home 

當(dāng)然,在卸載前要保證沒(méi)有程序在訪問(wèn)該分區(qū)键俱,否則卸載會(huì)失敗佣谐。所以,Easwy一般推薦進(jìn)入單用戶模式來(lái)恢復(fù)文件方妖。

[ 安裝ext3grep工具 ]

恢復(fù)的第一步當(dāng)然是安裝ext3grep工具狭魂。對(duì)于Debian/Ubuntu用戶來(lái)說(shuō),安裝ext3grep工具非常簡(jiǎn)單党觅,只需要執(zhí)行下面的命令:

aptitude install ext3grep
不過(guò)Easwy公司所使用的Linux版本是Centos雌澄,所以需要自己手工編譯ext3grep工具,其實(shí)這也很簡(jiǎn)單杯瞻,首先到ext3grep主頁(yè)上下載它的源代碼镐牺,然后用下面的命令解壓/編譯/安裝這個(gè)工具。

tar zxf ext3grep-0.10.1.tar.gz
cd /home/easwy/ext3grep-0.10.1
./configure
make
make install
注:在網(wǎng)上搜了一下魁莉,ext3grep也有rpm包可以下載睬涧,比如,RHEL/CentOS的RPM包可以在這里下載旗唁。其它Linux發(fā)行版的RPM也可以在rpmfind.net上找到畦浓。

Easwy前面說(shuō)過(guò),發(fā)現(xiàn)誤刪除后检疫,要卸載掉該分區(qū)讶请,或者進(jìn)入單用戶模式。所以最好在另外一臺(tái)計(jì)算機(jī)上來(lái)編譯或安裝這個(gè)工具屎媳,然后把ext3grep這個(gè)可執(zhí)行文件拷貝到U盤中再進(jìn)行恢復(fù)夺溢。這也正是Easwy所用的方法,因?yàn)橥碌奈募『迷诟謪^(qū)中烛谊。如果你也是這種情況风响,那么在用RPM包安裝時(shí),則需要把RPM包安裝到你你指定的目錄中丹禀,然后再把它拷貝到U盤中状勤。

U盤里只需要拷貝ext3grep一個(gè)文件即可,它不需要?jiǎng)討B(tài)加載庫(kù)就可以執(zhí)行湃崩。接下來(lái)把U盤插到待恢復(fù)的電腦上荧降,用下面的命令加載:

mount -t vfat /dev/sdb1 /mnt
把上面的設(shè)備號(hào)和安裝點(diǎn)換成你自己的。如果你的設(shè)備文件還不存在的話(這也剛好是Easwy的情況)攒读,用mknod命令創(chuàng)建一下吧朵诫。

現(xiàn)在,我們可以開始文件恢復(fù)了薄扁。

[ 恢復(fù)文件 ]

在開始恢復(fù)前剪返,選擇一個(gè)目錄來(lái)存放被恢復(fù)的文件废累。ext3grep程序會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)名為RESTORED_FILES的目錄來(lái)存放被恢復(fù)的文件。因此在運(yùn)行ext3grep命令前脱盲,先要切換到一個(gè)你可讀寫的目錄中邑滨。

對(duì)Easwy來(lái)講,因?yàn)檫M(jìn)入了單用戶模式钱反,并且將根分區(qū)設(shè)成了只讀掖看,那么只能把恢復(fù)出來(lái)的文件放在U盤中了。因此面哥,先cd /mnt進(jìn)入U(xiǎn)盤目錄哎壳。

如果你有幸記得你誤刪除的文件名及其路徑的話,就可以直接用下面的命令進(jìn)行恢復(fù)了:

ext3grep /dev/your-device --restore-file path/to/your/file/filename 

需要注意的是尚卫,上面的文件路徑归榕,是在該分區(qū)上文件路徑。假設(shè)我們要恢復(fù)/dev/sda3分區(qū)上文件吱涉,這個(gè)分區(qū)原來(lái)的安裝點(diǎn)是/home刹泄,現(xiàn)在想恢復(fù)文件/home/easwy/vi/tips.xml,那么輸入的命令應(yīng)該是:

ext3grep /dev/sda3 --restore-file easwy/vi/tips.xml 

如果你忘記了文件名怎爵,或者你誤刪除的是一個(gè)目錄而你無(wú)法記全該目錄中的文件特石,你可以先用下面的命令查詢一下文件名:

ext3grep /dev/sda3 --dump-names | tee filename.txt
上面的命令把ext3grep命令的輸出記錄到文件filename.txt中,你可以慢慢查看疙咸,或者使用grep命令過(guò)濾出你需要的信息县匠。

當(dāng)你知道了目錄/文件的信息后,就可以用上面說(shuō)的命令進(jìn)行恢復(fù)了撒轮。

在ext3grep命令中有一個(gè)–depth參數(shù),應(yīng)該是用來(lái)恢復(fù)目錄以及其中的所有子目錄和文件的贼穆,不過(guò)Easwy用這個(gè)參數(shù)無(wú)法恢復(fù)出任何文件题山,只好采用笨辦法,寫了個(gè)腳本故痊,一個(gè)個(gè)文件的恢復(fù)顶瞳。

經(jīng)過(guò)幾個(gè)小時(shí)的折磨(中間走了一些彎路),同事的文件終于恢復(fù)成功了愕秫!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慨菱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子戴甩,更是在濱河造成了極大的恐慌符喝,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甜孤,死亡現(xiàn)場(chǎng)離奇詭異协饲,居然都是意外死亡畏腕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門茉稠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)描馅,“玉大人,你說(shuō)我怎么就攤上這事而线∶郏” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵膀篮,是天一觀的道長(zhǎng)况凉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)各拷,這世上最難降的妖魔是什么刁绒? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮烤黍,結(jié)果婚禮上知市,老公的妹妹穿的比我還像新娘。我一直安慰自己速蕊,他們只是感情好嫂丙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著规哲,像睡著了一般跟啤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唉锌,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天隅肥,我揣著相機(jī)與錄音,去河邊找鬼袄简。 笑死腥放,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绿语。 我是一名探鬼主播秃症,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吕粹!你這毒婦竟也來(lái)了种柑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤匹耕,失蹤者是張志新(化名)和其女友劉穎聚请,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泌神,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡良漱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年舞虱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片母市。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矾兜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出患久,到底是詐尸還是另有隱情椅寺,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布蒋失,位于F島的核電站返帕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏篙挽。R本人自食惡果不足惜荆萤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铣卡。 院中可真熱鬧链韭,春花似錦、人聲如沸煮落。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蝉仇。三九已至旋讹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轿衔,已是汗流浹背沉迹。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呀枢,地道東北人胚股。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像裙秋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缨伊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容