linux 恢复误删文件

第一种:

1 搞到root权限切换root
2 安装e2fsprogs,有的linux自带,有的不自带,需要安装
3  debugfs /dev/sda3(文件所在分区)
4 等到出现debugs:输入 lsdel  (罗列被删除的文件) 请等待
5 根据删除时间,找到文件的inode号
6 dump <inode号> /XX/XX/file
一旦发生误删就不要再修改和写文件了,因立即恢复,以防止被删文件的inode被覆盖
以后rm的时候还是要注意一下。为了避免再次出现这种状况,写了一个脚本将rm改造成move进回收站,类似于windows,直接在bash_profile中执行就可以了

mkdir -p ~/.trash
alias rm=trash 
alias r=trash  
alias rl='ls ~/.trash'  // rl 命令显示回收站中的文件 
alias ur=undelfile // ur命令找回回收站中的文件 
undelfile() //找回回收站下的文件 
{  
  mv -i ~/.trash/$@ ./  
}  
trash()
{  
  mv $@ ~/.trash/  
}  
cleartrash() 
{  
    read -p "clear sure?[n]" confirm   
    [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf ~/.trash/*   
} 

第二种:

  使用extundelete

  --restore-inode 12              # --restore-inode 按指定的I节点恢复
  --restore-file zw.txt           # --restore-file 按指定的文件名恢复
  --extundelete --restore-all     # --restore-all  是全部恢复 ,默认全将恢复出来的文件放在当前路径 RECOVERED_FILES/ 目录下,文件名为 file.I节点号

原文地址:https://www.cnblogs.com/zhanghaibo8/p/8534777.html