天天看點

linux誤删除了檔案

 昨天又看了一下Linux檔案系統方面的資料,想到一個問題,就是誤删除了檔案應該是可以恢複的,

本想寫一個這方面的共享軟體,今天google了下,已經n多這方面的資料和工具了... ...

  餘又可以偷懶了...轉載自google搜尋出的結果,所有權利歸作者,如有侵犯權利,請mail至[email protected],當即刻删除。

   以下為轉載内容:

如果你不小心誤删除了一個重要的檔案,如rm -rf kkk ,而kkk是你的一個非常重要的檔案,你肯定非常痛苦,這時你千萬不能驚慌,應該馬上停止向你的硬碟寫入任何檔案。它完全是可以恢複的。(我這裡專門針對 ext2檔案系統寫了如下的内容,其它的檔案系統也有辦法,我以後在寫):

#debugfs /dev/hda1(被删除檔案所在的分區)

debugfs:lsdel

就可列出你最近被删除檔案的inode表,大緻如下:

Inode Owner Mode Size Blocks Time deleted

依此是節點表号,屬主,檔案屬性(即讀、寫等),大小,block(一般1block=1K),被删除時的時間。有了這些資訊,你應該能很快就判斷出那個檔案是你想恢複的。這時用

debugfs:dump <你想恢複的inode表值> /home/directory(到那個目錄)

OK!就這麼簡單,在/home/directory中可以找到它。

當然,如果你的檔案很多,這樣做一個一個的肯定很麻煩,你可以下載下傳一些工具。我這裡給個位址:

http://revocer.sourceforge.net/linux/recover 。

各位,去試試吧,有什麼困難可以根我聯系。

多謝老兄,這是弟兄們最想要的。

兄弟在實踐過程中,出現這樣的資訊,不知道如何處理。請老兄指教。

311543 0 100600 7603556 14/ 14 Wed Oct 2 18:39:21 2002

586046 0 100644 7044 2/ 2 Wed Oct 2 18:51:50 2002

760593 0 100600 363 1/ 1 Wed Oct 2 18:53:35 2002

9551 deleted inodes found.

debugfs: dump 311543

dump: Usage: dump_inode [-p] <file> <output_file>

debugfs: dump 311543 /root

311543: File not found by ext2_lookup

debugfs:

兄弟想恢複311543這個,因為我是在/root目錄下删除了一個檔案,我看了就是311543這個,但用下面指令恢複,就出現了如上的提示, 不知如何下手。請老兄助兄弟一力。

你應該這樣的.

debugfs:dump <311543> /root/ppp(随便什麼檔案名).

你再試試.

成功了沒?

我現在在windows下,而我的linux是JFS的.恢複比較友善.等會我切到LINUX再建一個ext2系統,我以前試過,應該肯定是可以的.

老兄厲害,服了,一下就OK了。。。。

現在兄弟有一個疑問:我删除的是一個.tar.gz檔案,但恢複完成後,卻不能用

#tar zxvf *tar.gz來解壓了。

另外就是如何才能恢複成原來那樣的檔案名,比如我删除的是wine.tar.gz,但事先我記不得這個具體的檔案名是什麼的了,但我還想恢複成原來的檔案名,比如我删除了系統中重要的檔案,但我又不記得它是什麼樣的檔案名了,但這個檔案名對系統來說又是極為重要的,比如/usr/bin下的 mozilla。我該如何做呢??

哈哈。這個也好辦。

主要是要知道原因。先回答簡單的。要知道檔案名用:

debugfs:ls -d 就可以了。

至于檔案不能用,是因為dump下來的是連續塊,而你的檔案可能不是連續塊。

用debugfs:stat <inode>可以看它的狀态,原後将他們一一dd下來(當然有工具可以省不少力氣)。

算了,我還是寫一個詳細的教程吧。(大家不要心急啊。過幾天見,國慶我可是導遊啊!)

明天還要去。隻有晚上空一點。

我發現e2fsprogs1.29版的比較好用,用它來恢複檔案較好,建議更新。另外,使用工具的話,建議使用mc, 下載下傳位址為 http://www.gnome.org/projects/mc/ .今天我用google搜尋了一下(關鍵詞 rm linux recover how ),發現網上的教程其實很多。缺少的是一些原理的分析部分(其實學過彙編及unix系統的兄弟應該很清楚才對),我過幾天就補充講一下。

繼續閱讀