本文以恢复数据盘文件为例,介绍如何使用开源工具Extundelete快速恢复Linux实例中的误删除文件并进行校验。
使用云服务器时,如果因为误操作导致数据丢失,且数据丢失后未对磁盘进行写入操作,您可以参考本文使用Extundelete快速恢复被误删除的数据。Extundelete可以恢复主流文件系统ext3及ext4下被误删除的文件,但具体恢复程度与删除后是否被写覆盖等多种因素有关。
说明
修复数据前,请先对分区丢失的数据盘进行备份。建议您定期备份数据,以提高数据安全性。
执行以下命令,安装Extundelete所需依赖。yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel bzip2 gcc-c++
将下载好的安装包上传至云服务器,本文以上传至/home
下为例。详细操作请参考本地数据上传。
执行以下命令,解压Extundelete安装包。tar -xvif /home/extundelete-0.2.4.tar.bz2
执行以下命令,编译安装Extundelete。
cd extundelete-0.2.4 ./configure make && make install
执行/usr/local/bin/extundelete -v
查看安装情况,返回如下回显即为安装成功。
对数据盘进行分区格式化,本文设置文件系统为ext3。
依次执行以下命令,新建挂载点并挂载分区。本文以将分区 /dev/vdb1
挂载至 /test
为例。
mkdir /test mount /dev/vdb1 /test df -TH
返回如下回显信息即为挂载成功。
执行以下命令,在挂载点创建测试文件 test.txt。
cd /test vim test.txt
执行以下命令,记录 test.txt 文件md5值。md5值可用于校验删除前和恢复后的两个文件。md5sum test.txt
返回回显信息如下所示:
执行ls -i test.txt
,查看文件所在inode,用于后续恢复文件使用。
本文中 test.txt 文件inode为25。
执行以下命令,删除 test.txt 文件。rm -rf test.txt
cd ~ umount /test
extundelete /dev/vdb1 --restore-inode <删除文件所在的inode号码>
命令,恢复被删除文件。ls RECOVERED_FILES/
查看目录中存在的文件。md5sum RECOVERED_FILES/<已恢复文件名>
查看文件md5值,与删除前文件 md5值保持一致即为恢复成功。