mount -o remount,ro /dev/sdXn`ext3grep` 掃描 ext3 日誌與 inode 表,尋找已刪除文件的 inode 與數據塊關聯,嘗試恢復文件內容。屬於**文件系統級恢復**,不依賴備份。
# yum install -y e2fsprogs e2fsprogs-devel gcc-c++ make
確認關鍵庫:
# rpm -qa | grep e2fsprogs
e2fsprogs-1.45.x
e2fsprogs-libs-1.45.x # 必須存在
# cd /usr/local/src
# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ext3grep/ext3grep-0.10.2.tar.gz
# tar xzf ext3grep-0.10.2.tar.gz
# cd ext3grep-0.10.2
# ./configure
# make && make install
安裝後二進制位於 `/usr/local/bin/ext3grep`。
# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext3 50G 20G 28G 42% /home
假設誤刪文件在 `/home` (/dev/sda3)。
# umount /home
# 或
# mount -o remount,ro /home
# ext3grep /dev/sda3 --list
# 或指定 inode 範圍加速
# ext3grep /dev/sda3 --inode 123456 --list
# mkdir -p /recovery
# ext3grep /dev/sda3 --restore-file "user/report.txt" --destination /recovery
# 恢復所有 .jpg
ext3grep /dev/sda3 --restore-all --extension jpg --destination /recovery
# 恢復最近 24 小時刪除的文件
ext3grep /dev/sda3 --after $(date -d '1 day ago' +%s) --restore-all --destination /recovery
| 工具 | 支援文件系統 | 特點 |
|---|---|---|
| ext3grep | ext3 | 專注 ext3 日誌分析,恢復率高 |
| debugfs | ext2/3/4 | 底層調試器,手動操作複雜 |
| extundelete | ext3/4 | ext3grep 衍生版,支援 ext4,活躍維護 |
| TestDisk/PhotoRec | FAT/NTFS/exFAT/ext2/3/4... | 通用文件雕刻,不依賴文件系統結構 |