文件恢復--轉載

源碼包下載位置:http://down.51cto.com/data/709491

環境介紹: 系統版本:CentOS release 5.4 (Final)

1 安裝之前先檢查有沒有這個包: rpm -qa | grep e2fsprogs

2 ext4grep 是個源碼包,需要編譯安裝

檢查一下e2fsprogs包是否完整,我的卻一個-devel的包,所以要先yum install e2fsprogs* 我偷懶了嘿嘿

解壓ext3源碼包

進入源碼包,然後開始檢查包的完整性 執行: ./configure 如果在這個過程中到最後有error那麼先檢查你的是不是少 e2fsprogs-devel

在進行 make && make install (編譯 編譯安裝) 一般這裏不會有問題如果這裏報錯了 檢查你係統是不是缺少 gcc gcc-c++ 這倆包 你可以 yum install gcc* 全部安裝 有好處沒有壞處哈哈哈

等待完整完,,好了安裝完以後。可以先查看一個是否完成成功了,用: ext3grep -v 命令查看ext3的版本信息如下如:

當然如果不知道命令怎麼用可以輸入:ext3grep --help 查看

然後我需要手動創建一個分區, 創建命令: fdisk /dev/sda 這個因爲沒有辦法保存圖像所有我直接顯示的創建完成以後的。如果大家不知道怎麼創建 可以查看我的 linx基本命令(文件系統章節)。

然後 把這個分區y用ext3分區格式格式化 並且掛載到mnt目錄下。



然後 我進入了掛載的目錄裏, 創建了xcy目錄, 把/etc/passwrd 和 /etc/my.cnf 倆個文件複製到了/mnt/xcy目錄中,並且 把倆個文件改了下名字 爲了我的辨認。 最後我執行了 rm -rf /xcy/* 把xcy文件中的文件都刪除了。

咳咳,然後我首先做的是卸載下來 把掛載的分區,因爲 怕別人動了我的文件夾 在裏面複製了東西我就沒有辦法恢復了,在下面我執行:ext3grep /dev/sda5 --ls --inode 2 給你們解釋一下

ext3grep 刪除文件的分區 --ls --innode inode號

爲什麼最後我們要寫2 因爲我不知道我的刪除的文件的inode號多少, 所有我寫的是最大的inode / 的inode號 可以用: ls -id / 查看

執行下去以後就會看到 他在刷幫你找刪除的文件們。。


繼續走,,掃到最後我們想要知道的文件夾的inode號是2099 然後我們繼續執行掃描命令: ext3grep /dev/sda5/ --ls --lnode 2009 這個命令他就會掃 xcy目錄下的所有文件(包括刪除 還有沒有刪除文件的inode號了) ,然後我們就可以掃除來了,my.cnf.xcy innode號 是2011 passwd.xcy 文件的inode號 是2010


現在我們的目標馬上就要達到了,知道了倆個文件的inode號 就可以進行恢復了.

然後我們執行 ext3grep /dev/sda5 --restore-inode 2011 (恢復my.cnf.xcy文件)

我們在執行 ext3grep /dev/sda5 --restore-inode 2010 (恢復passwrd.xcy文件)

然後我們將卸載的文件系統重現掛載上去。

恢復了,文件不會在原來的位置,他會自動在/ 下創建一個叫RESTORED_FILES 目錄 你以後所有恢復的文件都會在這裏保存着,還有文件的名字是以inode號命名的 你需要手動修改回來原名字,不要怕不知道那個文件是那個,還記得我們 --ls 掃描的時候他都有對應的文件和inode號


 

文件恢復了,解決了liunx 下不能恢復的問題,這樣就可以大大節約成本 不用找硬盤恢復工具 不用花錢了, 對了還有呢, 這個同樣可以恢復 mysql 數據庫 誤操作刪除了庫或者表 都可以恢復 原理嘛 其實就是恢復相對應的mysql數據庫中的文件了,自己嘗試一下吧,

對了在說一下,我截圖中 圈起來了是正確的命令,別的很多有操作錯誤的,因爲畢竟第一次試驗

最後來個總結缺點: 試驗發現這個功能有些缺點:

1 條件必須是ext3 ext4 日誌文件系統纔可以做到,別的我就不清楚了。

2 我這個是自己創建的分區/dev/sda5 也就是說我知道刪除的文件在那個分區上,假如你刪除了文件知道在哪裏分區中 那麼你就需要從sda1 ....sdaN 都試一遍吧。

 

此篇文章爲轉載如有違權請留言刪除

 

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