首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Linux 誤刪資料夾緊急恢復:debugfs、extundelete 實戰操作指南

     編輯:程式設計疑難解答

前言:非 root 用戶誤刪腳本資料夾,能否找回?

Linux 檔案系統(ext3/ext4)刪除檔案實為釋放 inode 與區塊,資料實體暫時殘留於磁碟,若未被覆寫,理論可恢復。但操作風險高,需謹慎。

核心原則

  • 立即停止寫入:卸載分區或掛載為唯讀 mount -o remount,ro /dev/sdXn。
  • 勿在原分區安裝工具:使用 Live CD/USB 或另一台機器掛載映像檔操作。
  • 先在測試環境練習:建立測試分區、寫入檔案、刪除、嘗試恢復,熟悉流程後再動生產資料。

工具一:debugfs(底層檔案系統除錯器)

# 1. 進入 debugfs
debugfs /dev/sdXn

# 2. 查找被刪除的 inode
debugfs: lsdel
# 列出最近刪除的 inode 號與檔案名片段

# 3. 恢復特定 inode
debugfs: dump <inode號> /tmp/recovered_file
# 或批次恢復目錄
debugfs: rdump <inode號> /tmp/restore_dir

# 4. 退出
debugfs: quit

工具二:extundelete(專門針對 ext3/ext4 刪除恢復)

# 安裝
yum install extundelete  # 或 apt-get install extundelete

# 恢復單一檔案
extundelete /dev/sdXn --restore-file path/to/deleted/file

# 恢復整個目錄
extundelete /dev/sdXn --restore-directory path/to/deleted/dir

# 恢復所有已刪除
extundelete /dev/sdXn --restore-all

輸出預設在當前目錄下的 RECOVERED_FILES/。

參考資源

最後提醒

若分區為 SSD 且啟用 TRIM,資料區塊可能已被控制器清空,恢復機率極低。平時建立 rsync、git、快照備份才是根本之道。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved