Linux下修复被误删的文件

参考网上关于 "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里面。这个目录里的文件就是我们要的东东

你可能感兴趣的:(linux,file,access,user)