debugfs恢復linux上rm誤刪的文件


前情

因手快誤將Linux系統上辛苦編寫的代碼直接rm誤刪,由於未將代碼更新到git,代碼改動又比較大,重寫起來太費勁,因此想着怎樣才能恢復誤刪的文件。

 

網上查了許多資料,目前總結出一個比較實用於自己的恢復方法,記錄於此:

 

神器debugfs

 

1 執行sudo debugfs -w /dev/sda1 命令,進入debugfs模式,其中sda1是你所在的分區,因人而異。

2 執行lsdel,列出最近所有刪除的文件,結果是按時間順序從老到新排列

  結果格式類似:

    Inode Owner Mode Size Blocks Time deleted
    8934222 14456 100664 592 1/ 1 Wed Aug 26 11:49:48 2015

  如果結果太多,可以直接執行如下命令: echo lsdel | debugfs /dev/sda1 > lsdel.out

  如此可將結果輸出成本地文件。

3 從列出的刪除結果中,或從保存的結果文件中找到被刪除的文件,可根據刪除時間、文件所有者確認。找到被刪除文件后,第一個數字為inode號。

4 在debugfs模式下,執行 dump <123456> /tmp/123456.bak,可將被刪除的文件恢復,其中123456為被刪除文件的inode號。

5 確認恢復的文件是否為期望的文件。

 

后記

祝文件恢復成功,願不再手快直接rm。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM