ext3grep 是專門針對 ext3/ext4 檔案系統的資料恢復工具,通過掃描日誌與 inode 表重建已刪除文件。本文記錄從原始碼編譯安裝、核心參數分類解析到實戰恢復流程的完整指南。
Linux localhost.localdomain 2.6.18-164.el5 #1 SMP i686
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
ext3grep 版本:0.10.2
tar zxvf ext3grep-0.10.2.tar.gz
cd ext3grep-0.10.2
./configure --prefix=/usr/local/ext3grep
make && make install
# 驗證
/usr/local/ext3grep/bin/ext3grep --version
# Running ext3grep version 0.10.2
| 參數 | 功能 |
|---|---|
--superblock | 顯示超級塊資訊 (預設動作) |
--print | 輸出塊/Inode 內容 |
--ls | 列出目錄項 (單行/項),常配合過濾器 |
--journal | 顯示日誌內容 |
--dump-names | 輸出文件路徑至 stdout (隱含 --ls) |
| 參數 | 功能 |
|---|---|
--deleted | 僅處理已刪除項目 |
--allocated | 僅處理已分配 inode/塊 |
--unallocated | 僅處理未分配 inode/塊 |
--after dtime | 僅刪除時間 ≥ 指定時間 |
--before dtime | 僅刪除時間 < 指定時間 |
--group grp | 僅處理指定群組 |
--directory | 僅處理目錄 inode |
--depth N | 遞歸深度限制 |
| 參數 | 功能 |
|---|---|
--inode N | 顯示 Inode N 資訊 (配合 --ls 列出目錄項) |
--block N | 顯示塊 N 資訊 |
--inode-to-block N | 輸出包含 Inode N 的塊號 |
--search-start "str" | 搜尋以字串開頭的塊 |
--search "str" | 搜尋包含字串的塊 |
--search-inode N | 搜尋引用塊 N 的 inode |
--histogram=atime|ctime|mtime|dtime|group | 生成時間/群組直方圖 |
--accept "filename" # 將檔名加入合法名單 (可多次)
--accept-all # 接受所有檔名
# 注意:修改 --accept 後必須刪除 stage* 快取檔!
umount /home
# 若為根分區,需單用戶模式或 LiveCD 操作
ext3grep /dev/sda3 --superblock
ext3grep /dev/sda3 --dump-names --deleted --after "2024-01-15 10:00:00" > /tmp/deleted_files.txt
# 輸出範例:
# /home/user/docs/important.txt (inode 123456)
# /home/user/docs/old.log (inode 123457)
# 方法 A:輸出內容到 stdout 重定向
ext3grep /dev/sda3 --inode 123456 --print > /recovery/important.txt
# 方法 B:恢復整個目錄樹
ext3grep /dev/sda3 --inode 123456 --ls --restore-all --restore-dir /recovery
# 恢復所有已刪除 .txt
ext3grep /dev/sda3 --restore-all --restore-dir /recovery --accept "*.txt" --deleted
# 搜尋包含 "confidential" 的塊
ext3grep /dev/sda3 --search "confidential" --print > /recovery/found.bin
# 人工提取有效片段
xfs_repair、btrfs restore、zfs send 等專用工具extundelete (基於 ext3grep 改進)、testdisk (分區表+文件恢復)、photorec (無視檔案系統按檔頭恢復)chattr +i 關鍵檔、rm -i 別名掌握 ext3grep 的參數體系與恢復流程,可在 ext3/ext4 誤刪事故中爭取最大恢復可能;但生產環境務必建立多層次備份體系,將恢復工具作為最後防線。
Ubuntu 軟體中心提示 Lists 錯誤?一鍵修復指令教學
Ubuntu 安裝遊戲 Battle for Wesnoth (韋諾之戰) 1.12 從源碼編譯完整步驟
Ubuntu 12.04 笔记本过热严重解决方案:关闭独立显卡与集显优化
Linux 使用 rdesktop 遠程桌面連線 Windows 系統安裝與使用指南
Linux cut 指令詳解:從文字資料中精準擷取欄位與字元
traceroute 追蹤網路路徑:Linux/Windows 差異、TTL 原理、三次探測、參數全表、防火牆導致星號、DNS 解析延遲、跳數限制、IDC 故障回報
Linux 升級 OpenSSH 至 6.6p1 完整步驟:本地源配置、依賴安裝、備份舊配置、編譯安裝、服務重啟驗證、版本確認