1. 程式人生 > >Linux下重要檔案不小心被刪除?彆著急,看這裡!

Linux下重要檔案不小心被刪除?彆著急,看這裡!

功能快捷鍵

針對日常維護操作,難免會出現檔案誤刪除的操作。大家熟知linux檔案系統不同win有回收站,刪除後的檔案可以到垃圾箱尋回,要知道linux檔案修復比較費勁,網路上面的文件也是五花八門。

所以本次研究一種比較靠譜的檔案和目錄恢復方法,也給維護人員留一條後路。

分析對比debugfs、testdisk 6.14、extundelete,對比各自官網介紹和操作說明本次決定研究extundelete對檔案和目錄的恢復操作。

Linux下檔案誤刪除,使用extundelete恢復測試過程

1、給虛擬主機新增一塊磁碟,磁碟為/dev/sdb,如下:

2、格式化磁碟,並進行掛載

mkfs.ext4 /dev/sdb

mkdir /usr/local/dbdata/

mount /dev/sdb /usr/local/dbdata/

3、測試誤操作刪除以下檔案

/usr/local/dbdata/gperftools-2.4.tar.gz #檔案

/usr/local/dbdata/pcre-8.32 #目錄

執行誤操作:

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.

工具下載

解壓安裝

依賴包

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

從圈出來的可以看到,有以下兩個:

gperftools-2.4.tar.gz 15 Deleted

pcre-8.32 655361 Deleted

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

先恢復檔案(可根據檔名進行恢復):

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

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

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

最後會在當前目錄下看到一個名為RECOVERED_FILES的目錄,在目錄裡就可以看到被誤刪除的檔案以及目錄:

說在後面的話

根據上面操作證明extundelete 工具可以實現對誤刪資料的恢復,而且操作簡單。

總結:

1、使用rm一定要謹慎

2、磁碟按照功能進行分割槽是必要的

3、最少掌握一種資料恢復方式

ServiceHot ITSOM 平臺

持續免費試用中>>>