Linux 下重要文件被刪除?我有妙招

誤刪除linux系統文件了?不用急,本文將給你一個恢復linux文件的方法,讓你輕鬆應對運維中的各類風險問題。方法總比問題多~

說在前面的話

針對平常維護操做,不免會出現文件誤刪除的操做。你們熟知linux文件系統不一樣win有回收站,刪除後的文件能夠到垃圾箱尋回,要知道linux文件修復比較費勁,網絡上面的文檔也是五花八門。因此本次研究一種比較靠譜的文件和目錄恢復方法,也給維護人員留一條後路。node

分析對比debugfs. testdisk 6.14. extundelete,對比各自官網介紹和操做說明本次決定研究extundelete對文件和目錄的恢復操做。linux

extundelete下載官網地址:https://pkgs.org/download/extundelete
c++

0481ec50243044591dd27e7fa3a71f31.jpeg

Linux下文件誤刪除,使用extundelete恢復測試過程

  1. 給虛擬主機添加一塊磁盤,磁盤爲/dev/sdb,以下:
    1ee61e95644abd852e27047514b479d7.jpeg網絡

  2. 格式化磁盤,並進行掛載app

    # mkfs.ext4 /dev/sdb
    # mkdir /usr/local/dbdata/
    # mount /dev/sdb /usr/local/dbdata/

    f8678faa9f577f62f8056132b7ccc8ae.jpeg

  3. 測試誤操做刪除如下文件運維

    /usr/local/dbdata/gperftools-2.4.tar.gz #文件
    
    /usr/local/dbdata/pcre-8.32 #目錄

    執行誤操做:ide

    # rm -rf /usr/local/dbdata/gperftools-2.4.tar.gz /usr/local/dbdata/pcre-8.32
  4. 將誤操做所在分區進行只讀保護工具

    若是肯定文件被誤刪,在沒有備份的狀況下請立刻對分區實施寫入保護(預防新的寫入覆蓋誤刪的塊數據,所以權限給只讀):測試

     # mount -o remount,ro /dev/sdb
     # mount -o remount,ro /usr/local/dbdata/
  5. 數據恢復工具安裝網站

    工具安裝部署

    官方網站是http://extundelete.sourceforge.net/ ,其目前的穩定版本是extundelete-0.2.4.

    工具下載

     # wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

    解壓安裝

    依賴包

    # yum -y install gcc-c++ e2fsprogs.x86_64 e2fsprogs-devel.x86_64
    # tar -jxvf extundelete-0.2.4.tar.bz2
    # cd extundelete-0.2.4
    # ./configure
    # make && make install

    驗證安裝結果

    # extundelete -v
  6. 文件恢復過程

    恢復指定文件:

    原理:從根節點(inode=2)開始找到被刪除文件的i節點,而後recover i節點。

    如下是模擬刪除gperftools-2.4.tar.gz(文件)和pcre-8.32 (目錄)

    先檢測被刪除的文件有哪些:

    # extundelete /dev/sdb --inode 2

    be3396c6fa2db9f911d5aea4d59b93dd.jpeg

    從圈出來的能夠看到,有如下兩個

    gperftools-2.4.tar.gz 15 Deleted
    
    pcre-8.32 655361 Deleted

    注意:恢復過程不要在誤刪分區進行,謹防inode. block塊相互覆蓋

    先恢復文件(可根據文件名進行恢復):

    # extundelete /dev/sdb --restore-file gperftools-2.4.tar.gz

    bfffb6a47a0efa5060de5e04bf6ddc5b.jpeg

    恢復目錄(根據目錄名恢復):

    # extundelete /dev/sdb --restore-directory pcre-8.32

    681063e68517e950d2dea8fd0521947f.jpeg

    最後會在當前目錄下看到一個名爲RECOVERED_FILES的目錄,在目錄裏就能夠看到被誤刪除的文件以及目錄:

    說在後面的話

    4fd38224c2e02e013585e5be04e8732a.jpeg

    根據上面操做證實extundelete 工具能夠實現對誤刪數據的恢復,並且操做簡單。

總結:

  1. 使用rm必定要謹慎

  2. 磁盤按照功能進行分區是必要的

  3. 最少掌握一種數據恢復方式

本文來自 運維人生 轉載請註明;本文地址:http://www.ywadmin.com/?id=76

相關文章
相關標籤/搜索