新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux下高效數據恢復軟件extundelete應用實戰

        Linux下高效數據恢復軟件extundelete應用實戰

        作者: 時間:2016-09-12 來源:網絡 收藏

        作為一名運維人員,保證數據的安全是根本職責,所以在維護系統的時候,要慎之又慎,但是有時難免會出現數據被誤刪除的情況,在這個時候改如何快速、有效地恢復數據呢?本文我們就來介紹一下系統下常用的幾個工具。

        本文引用地址:http://www.104case.com/article/201609/304179.htm

        一、如何使用“rm -rf”命令

        系統下,通過命令“rm -rf”可以將任何數據直接從硬盤刪除,并且沒有任何提示,同時下也沒有與Windows下回收站類似的功能,也就意味著,數據在刪除后通過常規的手段是無法恢復的,因此使用這個命令要非常慎重。在使用rm命令的時候,比較穩妥的方法是把命令參數放到后面,這樣有一個提醒的作用。其實還有一個方法,那就是將要刪除的東西通過mv命令移動到系統下的/tmp目錄下,然后寫個腳本定期執行清除操作,這樣做可以在一定程度上降低誤刪除數據的危險性。

        其實保證數據安全最好的方法是做好備份,雖然備份不是萬能的,但是沒有備份是萬萬不行的。任何工具都有一定局限性,都不能保證完整地恢復出所有數據,因此,把備份作為核心,把工具作為輔助是運維人員必須堅持的一個準則。

        二、與ext3grep的異同

        在Linux下,基于開源的數據恢復工具有很多,常見的有debugfs、R-Linux、ext3grep、等,比較常用的有ext3grep和,這兩個工具的恢復原理基本一樣,只是extundelete功能更加強大,本文重點介紹extundelete的使用。

        三、extundelete的恢復原理

        在介紹使用extundelete進行恢復數據之前,簡單介紹下關于inode的知識。在Linux下可以通過“ls –id”命令來查看某個文件或者目錄的inode值,例如查看根目錄的inode值,可以輸入:

        [root@cloud1 ~]# ls -id /

        2 /

        由此可知,根目錄的inode值為2。

        在利用extundelete恢復文件時并不依賴特定文件格式,首先extundelete會通過文件系統的inode信息(根目錄的inode一般為2)來獲得當前文件系統下所有文件的信息,包括存在的和已經刪除的文件,這些信息包括文件名和inode。然后利用inode信息結合日志去查詢該inode所在的block位置,包括直接塊,間接塊等信息。最后利用dd命令將這些信息備份出來,從而恢復數據文件。

        四、 安裝extundelete

        extundelete的官方網站是http://extundelete.sourceforge.net/ ,其目前的穩定版本是extundelete-0.2.4。,在安裝extundelete之前需要安裝e2fsprogs和e2fsprogs-libs兩個依賴包。

        e2fsprogs和e2fsprogs-libs安裝非常簡單,這里不做介紹。下面是extundelete的編譯安裝過程:

        [root@cloud1 app]#tar jxvf extundelete-0.2.4.tar.bz2

        [root@cloud1 app]#cd extundelete-0.2.4

        [root@cloud1 extundelete-0.2.4]#./configure

        [root@cloud1 extundelete-0.2.4]#make

        [root@cloud1 extundelete-0.2.4]#make install

        成功安裝extundelete后,會在系統中生成一個extundelete可執行文件。extundelete的使用非常簡單,讀者可以通過“extundelete --help”獲得此軟件的使用方法。

        五、extundelete用法詳解

        extundelete安裝完成后,就可以執行數據恢復操作了,本節詳細介紹下extundelete每個參數的含義。extundelete用法如下:

        extundelete --help

        命令格式:

        1

        extundelete [options] [action] device-file

        其中參數(options)有:

        --version, -[vV],顯示軟件版本號。

        --help,顯示軟件幫助信息。

        --superblock,顯示超級塊信息。

        --journal,顯示日志信息。

        --after dtime,時間參數,表示在某段時間之后被刪的文件或目錄。

        --before dtime,時間參數,表示在某段時間之前被刪的文件或目錄。

        動作(action)有:

        --inode ino,顯示節點“ino”的信息。

        --block blk,顯示數據塊“blk”的信息。

        --restore-inode ino[,ino,...],恢復命令參數,表示恢復節點“ino”的文件,恢復的文件會自動放在當前目錄下的RESTORED_FILES文件夾中,使用節點編號作為擴展名。

        --restore-file 'path',恢復命令參數,表示將恢復指定路徑的文件,并把恢復的文件放在當前目錄下的RECOVERED_FILES目錄中。

        --restore-files 'path',恢復命令參數,表示將恢復在路徑中已列出的所有文件。

        --restore-all,恢復命令參數,表示將嘗試恢復所有目錄和文件。

        -j journal,表示從已經命名的文件中讀取擴展日志。

        -b blocknumber,表示使用之前備份的超級塊來打開文件系統,一般用于查看現有超級塊是不是當前所要的文件。

        -B blocksize,表示使用數據塊大小來打開文件系統,一般用于查看已經知道大小的文件。

        六、實戰:extundelete恢復數據的過程

        在數據被誤刪除后,第一時間要做的是卸載被刪除數據所在的磁盤或磁盤分區,如果是系統根分區的數據遭到誤刪除,就需要將系統進入單用戶,并且將根分區以只讀模式掛載。這樣做的原因很簡單,因為將文件刪除后,僅僅是將文件的inode結點中的扇區指針清零,實際文件還存儲在磁盤上,如果磁盤以讀寫模式掛載,這些已刪除的文件的數據塊就可能被操作系統重新分配出去,在這些數據塊被新的數據覆蓋后,這些數據就真的丟失了,恢復工具也回力無天。所以,以只讀模式掛載磁盤可以盡量降低數據塊中數據被覆蓋的風險,以提高恢復數據成功的比率。

        6.1通過extundelete恢復單個文件

        1.模擬數據誤刪除環境

        在演示通過extundelete恢復數據之前,我們首先要模擬一個數據誤刪除環境,這里我們以ext3文件系統為例,在ext4文件系統下的恢復方式與此完全一樣。簡單的模擬操作過程如下:

        [root@cloud1 ~]#mkdir /data

        [root@cloud1 ~]#mkfs.ext3 /dev/sdc1

        [root@cloud1 ~]#mount /dev/sdc1 /data

        [root@cloud1 ~]# cp /etc/passwd /data

        [root@cloud1 ~]# cp -r /app/ganglia-3.4.0 /data


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绵竹市| 汉源县| 剑川县| 天津市| 手机| 眉山市| 西乌珠穆沁旗| 鄂尔多斯市| 呼玛县| 英吉沙县| 昌图县| 昌邑市| 南部县| 柯坪县| 哈巴河县| 嘉义市| 荃湾区| 金阳县| 德阳市| 漯河市| 泗阳县| 蛟河市| 昭苏县| 咸宁市| 阜宁县| 柏乡县| 库车县| 颍上县| 霍州市| 永福县| 鄂托克前旗| 台湾省| 东海县| 盈江县| 乌海市| 辽宁省| 呼和浩特市| 隆回县| 六枝特区| 娱乐| 大同市|