恢復rm刪除的文件(ext3grep)(時間有限制,文件刪除馬上卸載分區)

恢復rm刪除的文件(ext3)

       df -T   # 首先查看磁盤分區格式,此軟件只針對ext3
       umount /data/     # 卸載掛載,數據丟失請首先卸載掛載,或重新掛載只讀
       ext3grep /dev/sdb1 --ls --inode 2         # 記錄信息繼續查找目錄下文件inode信息
       ext3grep /dev/sdb1 --ls --inode 131081    # 此處是inode
       ext3grep /dev/sdb1 --restore-inode 49153  # 記錄下inode信息開始恢復目錄


# 1、安裝
cd /tmp
wget http://ext3grep.googlecode.com/files/ext3grep-0.10.1.tar.gz
zypper install e2fsprogs e2fsprogs-devel
tar -zxf ext3grep-0.10.1.tar.gz
cd ext3grep-0.10.1
./configure
make
make install


# 2、新建文件並刪除

bj-bi-recommend10:/opt/huawei # touch 1.txt 2.txt
bj-bi-recommend10:/opt/huawei # rm 1.txt 2.txt



# 3,掃描分區
bj-bi-recommend10:~ # ext3grep /dev/xvdb --ls --inode 2
Running ext3grep version 0.10.1
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 4000
Loading group metadata... done
Minimum / maximum journal block: 65503746 / 65537061
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1395811917 = Wed Mar 26 13:31:57 2014
Number of descriptors in journal: 169; min / max sequence numbers: 6 / 11
Inode is Allocated
Loading xvdb.ext3grep.stage2... done
The first block of the directory is 1539.
Inode 2 is directory "".
Directory block 1539:
         .-- File type in dir_entry (r=regular file, d=directory, l=symlink)
         |          .-- D: Deleted ; R: Reallocated
Indx Next |  Inode   | Deletion time                        Mode        File name
==========+==========+----------------data-from-inode------+-----------+=========
  0    1 d       2                                         drwxr-xr-x  .
  1    2 d       2                                         drwxr-xr-x  ..
  2    4 d      11                                         drwx------  lost+found
  3    4 r      12  D 1395812112 Wed Mar 26 13:35:12 2014  rrw-------  1.txt
  4  end d21397505                                         drwx------  file
  5  end r      13  D 1395812112 Wed Mar 26 13:35:12 2014  rrw-------  2.txt


- - - - -


# 查詢
ext3grep /dev/xvdb --ls --inode 2

# 恢復單個 僅目錄 裏面的文件恢復失敗 ..
ext3grep /dev/xvdb --restore-file del --depth del

# 恢復目錄裏面的一個文件
ext3grep /dev/xvdb --restore-file del/1

# 恢復所有文件

bj-bi-recommend10:~ # ext3grep /dev/xvdb  --restore-all
Running ext3grep version 0.10.1
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 4000
Minimum / maximum journal block: 65503746 / 65537061
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1395811939 = Wed Mar 26 13:32:19 2014
Number of descriptors in journal: 45; min / max sequence numbers: 6 / 15
Loading xvdb.ext3grep.stage2... done
Restoring 1.txt
Restoring 2.txt

bj-bi-recommend10:~ # cd RESTORED_FILES/
bj-bi-recommend10:~/RESTORED_FILES # ls
1.txt  2.txt  lost+found



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

  ext3grep /dev/xvdb --restore-file 1.txt
時間段恢復文件  
date -d "2014-03-25 15:00:00" +%s  #把時間轉化爲數字
1395730800
date -d "2014-03-25 22:30:00" +%s  #把時間轉化爲數字
1395757800
 ext3grep /dev/xvdb  --restore-all  --after 1395730800 --before 1395757800
可以用這兩個參數指定時間,從2014-03-25 15:00:00 到 2014-03-25 22:30:00

需要注意的是,上面的文件路徑,是在該分區上文件路徑。假設我們要恢復/dev/xvdb 分區上文件,這個分區原來的安裝點是/opt/huawei,現在想恢復文件/home/easwy/vi/tips.xml,那麼輸入的命令應該是:

ext3grep /dev/xvdb --restore-file 1.txt

如果你忘記了文件名,或者你誤刪除的是一個目錄而你無法記全該目錄中的文件,你可以先用下面的命令查詢一下文件名:

ext3grep /dev/xvdb  --dump-names | tee 1.txt

上面的命令把ext3grep命令的輸出記錄到文件filename.txt中,你可以慢慢查看,或者使用grep命令過濾出你需要的信息。

當你知道了目錄/文件的信息後,就可以用上面說的命令進行恢復了。

在ext3grep命令中有一個–depth參數,應該是用來恢復目錄以及其中的所有子目錄和文件的,不過Easwy用這個參數無法恢復出任何文件,只好採用笨辦法,寫了個腳本,一個個文件的恢復。

經過幾個小時的折磨(中間走了一些彎路),同事的文件終於恢復成功了!





通過下面的方式可以獲取文件要恢復的路徑信息。

[root@localhost opt]# ext3grep /data0/disk1 --dump-names
Running ext3grep version 0.10.2
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 7
Minimum / maximum journal block: 16616 / 20729
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1380011783 = Tue Sep 24 16:36:23 2013
Number of descriptors in journal: 67; min / max sequence numbers: 2 / 12
Loading disk1.ext3grep.stage2... done
ext3grep
ext3grep.txt
initrd-2.6.32-358.el6.i686kdump.img
lost+found
profile

4.恢復單個文件

如果要恢復被刪除的某個文件,通過下面方式即可。

[root@localhost opt]# ext3grep /data0/disk1 --restore-file ext3grep.txt
Running ext3grep version 0.10.2
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 7
Minimum / maximum journal block: 16616 / 20729
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1380011783 = Tue Sep 24 16:36:23 2013
Number of descriptors in journal: 67; min / max sequence numbers: 2 / 12
Writing output to directory RESTORED_FILES/
Loading disk1.ext3grep.stage2... done
Restoring ext3grep.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章