首先我们要知道在centos6 ext4文件系统中误删除文件到底能不能删除
linux文件系统有三部分,文件名 inode block
例如a.txt inode(文件元数据信息) block 真正存放数据的地方
如果文件误删除我们第一件事情是什么
第一步:
要禁止继续写入(卸载或者只读权限)
第二步:
方法一: 找备份
方法二: 软件—恢复inode号
# 使用extundelete软件
创建新的硬盘,分区,挂载,
1创建20G ,加载新的硬盘 热拔插
加入一个新的磁盘,init 6
2sdc 分区 ,3G大小分区
分区fdisk /dev/sdb(这里加入的磁盘为/dev/sdb)
进入分区新建一个3G大小的分区
通过fdisk -l来查看我们的磁盘分区
3通过ll 查看dev/sdb1
在上面的分区创建测试文件
1、格式化sdb1
mkfs.ext4 /dev/sdb1
2、创建挂载目录 /sdb1
mdkir /sdb1
3、在根下创建一个/sdb1,用来挂载我们刚才的分区
mount /dev/sdb1 /sdb1
删除测试文件
1、复制过来一些文件
cp /etc/passwd /sdb1/
cp /etc/hosts /sdb1/
也可以自己创建一些文件来实验
echo 123 > a.txt
2、删除文件
rm -rf ./*
注:一般情况不明不建议去使用通配符来删除,所以我们还是一个文件一个文件来删除比较好
使用extundelte恢复
上传extundelte压缩包
安装编译软件
yum -y install gcc* *2fs*
解压
unzip extundelete-0.2.4.zip
cd extundelete-0.2.4
./configure
make
make install
安装期间用echo $? 来查看我们编译安装是否成功
如果结果为0则表示成功,为其他数则表示失败
使用extundelte恢复
inode号恢复
extundelete /dev/sdb1 --restore inode-2
通过二进制来查看我们删除了那些文件和目录找到他们的inode号来进行恢复
extundelete /dev/sdb1 --restore-inode 12
这样的恢复呢就是通过inode号来恢复我们删除的文件但是恢复之后文件名为file.12。通过对比其源文件的md5值来判断是否恢复正确
md5sum 原文件路径 恢复的文件
通过文件名恢复
extundelete /dev/sdb1 --restore-file 删除的文件名
直接恢复全部
extundelete /dev/sdb1 --restore-all
在ext4文件系统中空文件是不能恢复的