在linux下使用debugfs恢復rm刪除的文件
以下方法在ext3的文件系統上測試通過, 以下是通過root來實現的
主要藉助debugfs
fdisk /dev/vda
mkdir /mnt/test
mount /dev/vda3 /mnt/test
1 運行debugfs,進入調度模式
[root@host51 test]# debugfs -w /dev/vda3
/////////////////////////[root@host51 test]#sudo debugfs -w /dev/vda3
2 執行open /dev/vda3
3 執行ls -d會列出此目錄最近的操作,其中可以看到<num>的日誌刪除記錄
4 執行logdump -i <num> 顯示此日誌內容
debugfs: logdump -i <13>
5 在輸出中尋找刪除文件對應的block,記錄下來blockid
6退出debugfs,運行[root@host51 test]#dd if=/dev/vda3 of=/tmp/saved bs=1027 count=138476 skip=47
此時就把刪除的文件恢復了,不過這個方法有個問題,如果刪除的是大文件,則佔用多個block,操作起來比較麻煩。
debugfs在調試模式下,命令行比較難用,不過其支持-R選項,可以在SHELL裏執行,就是用多個-R把要執行的命令連接起來,若命令中需要指定參數則需要加"",否則SHELL解析會有問題。