参考网上关于 "debugfs 恢复被误删的文件" 相关文章,自己试了一下,走了点弯路,现在把用过的正确的步骤贴出来,希望能方便大家
方法1:
以/dev/sdc盘的 a.txt文件为例
一:
使用mount –r –o remount /dev/sdc1 将该分区重新以只读的方式重新挂载
二:
使用 debugfs /dev/sdc1
三 :
使用lsdel命令可以列出很多被删除的文件的信息:
debugfs:lsdel
四:
找到最近被删除的文件的inode,dump <12> /mnt/sdc2
注意/mnt/sdc2是/dev/sdc2(另一个分区)被挂载的目录
五:
退出debugfs: q
方法2:(完全拷贝网上的。。。)
手工编辑inode
debugfs:mi <196829>
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574]
Link count [0]
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
……………………………
Triple Indirect Block
使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:
debugfs:quit
然后用fsck检查/dev/hda5
fsck /dev/hda5
程序会说找到丢失的数据块,放在lost+found里面。这个目录里的文件就是我们要的东东