rm刪除文件後的恢復

 

 
只針對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://www.safe5.com/tech/tuwenjiaocheng/20110610/26568.html
 
 
對於ext3文件系統:
1.先研究分區,查看是否是ext3:
df -T 能看到各個分區的文件系統類型(比如ext3)
一般的查看磁盤分區的命令:fdisk -l  或者  df -lh
 
2.嘗試增加虛擬機的分區,然後在新增的分區上進行測試
(因爲恢復數據的時候需要umount才能進行,如果是主分區的話需要到恢復模式,比較麻煩)
 
3.虛擬機裏增加磁盤空間的方法:
到vmware安裝目錄,運行:vmware-vdiskmanager -x 10Gb "D:\Virtual\Ubuntu-9.04\Ubuntu-9.04.vmdk"
注意:10Gb是總大小,運行命令前需要將虛擬機的快照都刪除
 
4.分區命令:
fdisk -l 查看目前的分區表
fdisk /dev/sda  
command(m for help):
p  列出分區表
m  列出菜單
n  增加分區
w  保存並退出
 
舉例:我的虛擬機裏有/dev/sda1  /dev/sda2  /dev/sda5
所以我創建新的磁盤:
command(m for help):n
p 是主分區,e是擴展分區,我用的是p
primary partition(1-4):3
First cylinder (1045-1305, default 1045): 1045
Last cylinder, +cylinders or +size{K,M,G} (1045-1305, default 1305): 1305
 
然後再列出分區表,用參數p
可以看到/dev/sda3這個新分區
 
最後w
 
然後reboot
 
 
5.分區後需要格式化新分區
在根目錄創建一個文件夾mkdir /testrm
然後再mount:mount /dev/sda3 /testrm
 
還需要讓這個分區開機自動加載:
修改分區表文件:vi /etc/fstab
添加語句:/dev/sda3 /testrm ext3 defaults 0 0
 
6.需要安裝ext3grep 下載後,發現虛擬機要安裝好多插件才行,update後再進行處理
在更換源之後,可以apt-get -install文件,安裝ext3grep後運行命令
 
注意:使用恢復工具前,需要將目錄umount
cd /
umount /testrm
 
然後再運行以下命令:
cd /testrm
ext3grep /dev/sda3 --ls --inode 2  (可以查看所有sda3上面刪除過的文件)
 
7.如果恢復?
經過測試發現恢復只能制定文件,不能恢復目錄
舉例:
ext3grep /dev/sda3 --restore-file test/test1   (這裏的文件路徑要注意,是testrm後面的目錄)
 
或者還有一個辦法,用參數all,將所有刪除過的文件都恢復,這樣就會產生很多垃圾文件
ext3grep /dev/sda3 --restore-all
 
8.重要:
這個和windows一樣,恢復出來的數據,需要copy到別的目錄
cp -rf /testem/* /testrm1
然後再mount /dev/sda3 /testrm
再將testrm1裏面的數據回寫到testrm。或者直接mount /dev/sda3 /testrm1
 
 
===================================================================
 
後續可能還會研究ext4的數據恢復
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章