如果你不小心誤刪除了一個重要的文件,如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下來(當然有工具可以省不少力氣)。
算了,我還是寫一個詳細的教程吧。(大家不要心急啊。過幾天見,國慶我可是導游啊!)
多謝老兄,祝老兄節日快樂 !
其實做到這一步,兄弟已經感動萬分了。因為兄弟通過老兄的教程看到了linux系統出了意外事故也是能應對的。不能應對,說明兄弟的技術水平不行。還得請老兄多多指教。
期待中,但不急。。。。
北南 致意!
今天游了一天的西湖。
明天還要去。只有晚上空一點。
我發現e2fsprogs1.29版的比較好用,用它來恢復文件較好,建議升級。另外,使用工具的話,建議使用mc, 下載地址為 http://www.gnome.org/projects/mc/ .今天我用Google搜索了一下(關鍵詞 rm linux recover how ),發現網上的教程其實很多。缺少的是一些原理的分析部分(其實學過匯編及unix系統的兄弟應該很清楚才對),我過幾天就補充講一下。
wxz8兄數據恢復方法操作圖,本圖由wxz8兄提供。請弟兄們多多實踐,有問題,請跟帖。
www.linuxsir.com.cn/photo/wxz8/rcv01.gif
__________________