第一种:
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节点号