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 平臺
持續免費試用中>>>