在实验室做项目时使用的是ubuntu16.04
某次开发时打字太快从而误删除别的文件,而且还是很重要的文件,ubuntu没有像windows一样的回收站,因此删完就没了,只能通过其他办法恢复。
第一步:进入误删除文件的目录内,查看被删文件的挂载分区
如 cd /home/conference 进入到conference目录,原来的误删除的文件处于此目录内
使用df -h命令查看此目录的挂载分区,如/dev/sda1是误删文件所在的分区
第二步: 安装恢复工具extundelete
使用命令: sudo apt-get install extundelete
第三步:恢复文件
使用命令: sudo extundelete /dev/sda1 --restore-all
通过以上三步骤后,会在当前目录中生成一个名为RECOVERED_FILES目录,并且将恢复的文件放到这个目录中,然后自己去一个一个找需要用到的文件。
(1)查找已经删除的文件,通过inode号来查找,命令如下:
extundelete --inode ${inode_num} ${dev_describer}
其中,inode_num是文件系统的inode号,dev_describer是误删文件所在的磁盘分区的设备描述符
如果不知道误删文件inode号,就直接填2,它会从根目录开始找,但是它的显示结果只会显示一层目录的inode号。关键是记住自己文件所有的路径,然后记下上述命令执行后显示的文件夹的inode号,然后一层层的找,误删文件,这个方法有点麻烦,但是很有效。
(2)恢复文件,通过(1)找到误删文件inode号,就可以使用如下的命令进行文件恢复:
extundelete ${dev_describer} --restore-inode ${inode}
其中,dev_describer意义与(1)中的描述一致;inode是指误删文件的inode号
当然,如果记得误删文件的完整路径,那也可以直接通过文件路径来恢复文件,但是前提是要记得这个路径名,使用的命令如下所示:
extundelete ${deb_describer} --restore-file ${path}
其中,dev_describe意义与(1)中的描述一致,path是误删文件的完整路径
对于extundelete其它的命令参数的用法,可以通过如下命令来了解学习:
extundelete --help