当意识到误删除文件后,切忌千万不要再频繁写入了,否则你的数据恢复的数量将会很少。而我们要做的是,第一时间把服务器上的服务全部停掉,直接killall 进程名或者 kill-9 pid 。然后把误删除文件所在分区,重新挂载成ro,只读的 (mount-oro/dev/sdb2/data/)。
然后我们需要去下载和安装一个工具叫做 extundelete
1.安装依赖包
# yuminstall e2fsprogs* -y
2.下载并安装extundelete
# wgethttp://nchc.dl.sourceforge.net/p ... elete-0.2.4.tar.bz2
# tar-jxvf extundelete-0.2.4.tar.bz2
# cdextundelete-0.2.4
#./configure --prefix=/usr/local/extundelete
# make&& make install
3.验证是否安装成功
# cd/usr/local/extundelete/bin
#./extundelete -v
---------------------
extundeleteversion 0.2.4
libext2fsversion 1.41.12
Processoris little endian.
---------------------
假如我们误删除文件所在分区为/dev/sdb2
恢复步骤如下:
/usr/local/extundelete/bin/extundelete/dev/sdb2--inode 2 //可以扫描哪些文件被删除了
假如我们有一个文件叫做1.txt被删除了。 那么恢复它的命令为:
/usr/local/extundelete/bin/extundelete--restore-file 1.txt/dev/sdb2
被恢复的文件在当前目录下的RECOVERED_FILES/ 目录
ls./RECOVERED_FILES/可以看到有1.txt
而想恢复整个分区上的文件可以这样:
/usr/local/extundelete/bin/extundelete--restore-all/dev/sdb2
恢复后的文件也是在 ./RECOVERED_FILES/下,能否恢复就看你的运气好不好了。
当然后续工作还有:
1. 重新挂载该分区为可写
2. 备份一下重要数据
3. 覆盖我们恢复出来的数据 4. 重启服务器,恢复各种服务