Linu下誤刪文件恢復

ps: 紅字字體爲重要部分, 仔細看node

當意識到誤刪除文件後,切忌千萬不要再頻繁寫入了,不然你的數據恢復的數量將會不多。 而咱們要作的是,第一時間把服務器上的服務所有停掉,直接killall 進程名 或者 kill -9 pid 。 而後把誤刪除文件所在分區,從新掛載成ro,只讀的 (mount  -o ro  /dev/sdb2  /data/)。bash

1、 利用系統工具debugfs恢復誤刪除文件服務器

        1. 首先建立一個目錄及文件;app

[root@Centos1 ~]# mkdir ceshi
[root@Centos1 ~]# echo 111 > ceshi/1.txt


        2. 刪除ceshi目錄下的全部文件;ide

[root@Centos1 ~]# rm -rf ceshi/*


        3. 利用系統自帶還原工具debugfs來修復;工具

[root@Centos1 ~]# debugfs
debugfs 1.41.12 (17-May-2010)
debugfs:  open /dev/mapper/VolGroup-lv_root


        4. 用ls -d參數顯示剛剛刪除文件的所在目錄;字體

debugfs:  ls -d /root/ceshi/
 144661  (12) .    128522  (4084) ..   <128531> (4072) 1.txt


        5. 顯示<>尖括號的就是咱們要找的文件inode號;spa

debugfs:  logdump -i <131458>


        6. 執行完後, 顯示了一屏信息, 咱們須要的是這一行, 而且記住後面的值(即標註紅色部分);.net

    Blocks:  (0+1): 127754 (2+1): 1768711539 (3+1): 7894382 (TIND): 1953724787


        7. 退出debugfs, 執行如下命令;debug

debugfs:  q
[root@Centos1 ~]# dd if=/dev/mapper/VolGroup-lv_root of=/root/ceshi/1.txt.bak bs=4096 count=1 skip=30
#     if=輸入的設備
#     of=輸出的社保
#     bs=指定一個block的大小
#     count=多少個block須要dump
#     skip=   Blocks:  (0+1):後的值


        8. 查看/root/ceshi/目錄下是否生成1.txt.bak文件;

[root@Centos1 ~]# cat /root/ceshi/1.txt.bak
111


2、利用extundelete恢復誤刪文件

        1. 利用yum安裝依賴包;

[root@Centos1 ~]# yum -y install e2fsprogs*
[root@Centos1 ~]# yum -y install gcc*                    #extundelete編譯時須要gcc環境


        2. 下載並安裝extundelete;

[root@Centos1 ~]# wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2


        3. 解包、配置、編譯及安裝;

[root@Centos1 ~]# tar -jxvf extundelete-0.2.4.tar.bz2
[root@Centos1 ~]# cd extundelete-0.2.4
[root@Centos1 extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete      
[root@Centos1 extundelete-0.2.4]# make && make install


        4. 檢驗是否安裝成功;

[root@Centos1 extundelete-0.2.4]# cd /usr/local/extundelete/bin
[root@Centos1 bin]# ./extundelete -v
extundelete version 0.2.4
libext2fs version 1.41.12
Processor is little endian.


        5. 掃描LVM分區誤刪的文件;

[root@Centos1 bin]# /usr/local/extundelete/bin/extundelete /dev/mapper/VolGroup-lv_root --inode 2

   

        6. 恢復aaa.txt文件;

[root@Centos1 bin]# /usr/local/extundelete/bin/extundelete --restore-file aaaa.txt /dev/mapper/VolGroup-lv_root 
[root@Centos1 bin]# /usr/local/extundelete/bin/extundelete  --restore-all /dev/sdb2          #恢復分區


        7. 查看恢復文件;

[root@Centos1 bin]# ls -l RECOVERED_FILES/     
恢復後的文件也是在   ./RECOVERED_FILES/  下,可否恢復就看你的運氣好很差了。
相關文章
相關標籤/搜索