Linux 恢复误删除文件

目录

做运维工程师久了,难免遇到误删除文件的情况。我有一个朋友最近也遇到了这样的情况,找到我帮忙恢复文件,这里记录一下过程。

保护现场

  在误删除发生的第一时间千万不要慌,不要乱动系统(这点我们由于没有经验做也没做好)。尽最大努力保护现场,怎么保护呢,首先就是停掉系统上所有
用户进程,然后把删除内容的分区挂载为只读模式(这个目的是为了防止系统发生新的写入和新的文件产生,最大化的保护现场)。
kill pid
umount /data
mount -o ro /dev/xvdb /data

下载编译 extundelete

yum install e2fsprogs* e2fslibs* -y
# 下载软件
https://sourceforge.net/projects/extundelete/files/?source=navbar

# 编译安装
./configure 
make
# 可以不用 make install 产生的可执行文件在 extundelete-0.2.4/src/中 直接执行就是了

准备恢复文件的分区

# 如果你的服务器剩余的空间不够,需要一块新的磁盘来放置恢复的文件

我们加了一块新的磁盘/dev/xvdf
# 给新磁盘分区
fdisk /dev/xvdf

# 格式化新分区
mkfs.ext4 /dev/xvdf1

# 挂载新分区
mkdir /data1
mount /dev/xvdf1 /data1

开始恢复文件

# 把我们编译好的程序拷贝的新的分区
cp -a extundelete-0.2.4 /data1

# 查看找到额哪些可以恢复的文件 
cd /data1
./extundelete-0.2.4/src/extundelete /dev/xvdb --inode 2

# 执行恢复命令
./extundelete-0.2.4/src/extundelete /dev/xvdb --restore-all

# 最终我们只恢复了多半的文件,不知道是不是恢复的步骤还是有问题,但是比数据完全丢失要好得多

rm -rf 要谨慎

目录