天天看點

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。