在linux下使用debugfs恢復rm刪除的文件


 

    原理主要是刪除的文件並沒有實際上從硬盤上摸去,只是inode索引刪除了相關的信息,因此只要找到剛刪除文件的block上,就可以恢復已經刪除的文件。

    以下方法在ext3的文件系統上測試通過,ext2的沒有測試過。假設刪除的文件在dir下面,位於/dev/sda5上。

    主要借助debugfs

    1 運行debugfs,進入調度模式

    2 執行open /dev/sda5

    3 執行ls -d dir 會列出此目錄最近的操作,其中可以看到<num>的日志刪除記錄

    4 執行logdump -i <num> 顯示此日志內容

    5 在輸出中尋找刪除文件對應的block,記錄下來blockid

    6退出debugfs,運行dd if=/dev/sda5 of=/tmp/saved  bs=1024 count=1 skip=blockid

    此時就把刪除的文件恢復了,不過這個方法有個問題,如果刪除的是大文件,則占用多個block,操作起來比較麻煩。

   debugfs在調試模式下,命令行比較難用,不過其支持-R選項,可以在SHELL里執行,就是用多個-R把要執行的命令連接起來,若命令中需要指定參數則需要加"",否則SHELL解析會有問題。

    比較好用的工具有testdisk,之前用過他來恢復和備份系統的分區表,沒有恢復過文件。以后出問題也可以試試。

  來源:http://blog.csdn.net/zzulp/article/details/7466866

 
 


免責聲明!

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



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