linux-ext4格式文件误删除恢复

Posted 字母哥博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-ext4格式文件误删除恢复相关的知识,希望对你有一定的参考价值。

在开始进行实验之前,我已经新建了一个空目录​​/data​​​,并将该目录挂载了一块新硬盘,将硬盘分区格式化为ext4的格式,所以当我操作​​/data​​​目录下的文件及文件夹的时候,实际上就是针对新挂载的硬盘进行数据读写操作。首先通过下面的命令准备一下实验用的文件,新建一个文件​​/data/delfile1.txt​​​并写入数据,新建一个目录​​/data/deldir​​​,并在该目录下新建一个文件​​/data/deldir/delfile2.txt​​。

echo "ext4 delete test" > /data/delfile1.txt;
mkdir /data/deldir;
echo "ext4 delete test2" > /data/deldir/delfile2.txt;

完成上面的操作之后,​​/data​​目录下的文件路径树形结构如下:

/data
├── deldir
│ └── delfile2.txt
├── delfile1.txt

ext4格式的文件误删除恢复工具我们使用extundelete,先进性安装。

yum install extundelete -y;

安装完成之后,我们来正式进行实验,首先删除目录下面的文件及文件夹​​rm -fr /data/delfile1.txt /data/deldir​​​。在文件被误删除之后的第一时间,我们应该将硬盘从操作系统umount:​​umount /dev/sdb1​​,之所以这么做是防止操作系统进程不断向磁盘写入数据,造成数据块的覆盖。数据块被覆盖之后,该数据块上的文件就无法恢复了。

# extundelete /dev/sdb1 --inode 2
File name | Inode number | Deleted status
. 2
.. 2
lost+found 11
delfile1.txt 12 Deleted
deldir 262145 Deleted

使用上面的命令我们可以查看到被误删除的文件(node number=12)及文件夹(node number=262145)。备注说明:ext4文件系统的分区根目录的inode值为2,xfs分区根目录的inode值为64

extundelete /dev/sdb1  --restore-file delfile1.txt  #恢复文件
extundelete /dev/sdb1 --restore-directory deldir #恢复目录
extundelete /dev/sdb1 --restore-inode 12 #按照innode编号进行恢复
extundelete /dev/sdb1 --restore-all #全部恢复

进行上述的恢复操作之后,执行命令的文件夹下会新建一个RECOVERED_FILES,看看这个RECOVERED_FILES文件夹下面是不是已经有你误删除的文件或文件夹了呢?文件误删除恢复的操作是存在一定的失败的概率的


以上是关于linux-ext4格式文件误删除恢复的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 数据表误删恢复(转)

误删除或误格式化后的文件恢复

linux下恢复误删除的数据文件

SQL SERVER数据库误删除误格式化误重装软件覆盖数据恢复修复

SQLSERVER 2008误删除表,几百万行数据没了,怎么恢复

SQL SERVER数据库误删除误格式化误重装软件覆盖数据恢复修复