linux误删除文件恢复
有没有为自己误删重要文件而后悔过?有没有为找不到恢复工具而痛苦呢?不妨参考一下本文吧。
总的来说,对于Linux下的ext4文件系统,可以利用extundelete工具恢复误删文件;而对于Windows恢复误删除文件,可以参考FinalData和easyrecovery的使用手册。下面来重点看一下Linux下误删文件的恢复。
为了使误删文件能成功恢复,希望铭记Tips:删除文件时,只删除了文件名,文件的数据还在存磁盘中,因此尽量避免磁盘中文件数据被覆盖,就能提高文件恢复的成功率,主要的方法是卸载要恢复文件所在分区或者以只读方式挂载。
1、模拟数据丢失找回
先创建个分区,挂载
复制一些数据到/tmp/sdb1 目录下
# rm -rf a hosts passwd
误删完之后要先卸载分区或者以只读的方式挂载,避免数据被覆盖。
# umount /tmp/sdb1
如果误删除的数据目录在/下,服务器就直接断电,把硬盘拔了换到另外一台服务器恢复(关机的话有可能有数据写入把以前的数据覆盖)
2、安装工具和依赖包
1)安装依赖包
# yum install e2fsprogs* -y
2)下载并安装extundelete
从https://sourceforge.net/projects/extundelete/下载extundelete安装包,然后按照如下步骤安装:
3、恢复数据
先利用extundelete工具扫描一下误删文件所在目录的文件信息(包括已删除的文件),其中目录的INODE_NUMBER可以通过ls -i命令查询
# extundelete /dev/sdb1 --inode
先建个目录,用于存放恢复数据
# mkdir test
# cd /test
(1)通过Inode恢复
例如恢复passwd文件,先查看文件的inode: 12
passwd 12 Deleted
# extundelete /dev/sdb1 --restore-indoe 12
# ls
RECOVERED_FILES
# cd RECOVERED_FILES/
# ls
file.12
这个文件就是恢复的passwd文件,可以对比下,两个文件的内容一样或md5值一样,就说明恢复成功。
# diff RECOVERED_FILES/file.12 /etc/passwd
# md5sum passwd /etc/passwd
e49d49a2d84a0524c1765fde1357c4b5 passwd
e49d49a2d84a0524c1765fde1357c4b5 /etc/passwd
(2)通过文件名恢复
# cd /test
# extundelete /dev/sdb1 --restore-file passwd
# cd RECOVERED_FILES/
# ls
file.12 passwd
上面的passwd就是恢复出来的文件,也就是以前的文件名。
(3)恢复某个目录,如目录a下的所有文件
# cd /test
# extundelete /dev/sdb1 --restore-directory a
(4)恢复所有文件
# extundelete /dev/sdb1 --restore-all (还有一个文件没有恢复kong.txt )
注:extundelete 在恢复文件的时候不能恢复创空文件和目录。
吕磊
2018年4月10日
领取专属 10元无门槛券
私享最新 技术干货