当前位置: 首页 > 后端技术 > Java

一个linux-ext4格式的文件被误删,如何恢复?

时间:2023-04-02 10:20:06 Java

在开始实验之前,我新建了一个空目录/data,并将新硬盘挂载到该目录下,并将硬盘分区格式化为ext4,所以在操作/data目录和文件夹下的文件时,它实际上是对新挂载的硬盘进行数据读写操作。首先通过以下命令准备实验文件,新建文件/data/delfile1.txt并写入数据,新建目录/data/deldir,在该目录下新建文件/data/deldir/delfile2.txt.echo"ext4deletetest">/data/delfile1.txt;mkdir/data/deldir;echo"ext4deletetest2">/data/deldir/delfile2.txt;完成以上操作后,/data目录下的文件路径树如下:/data├──deldir│└──delfile2.txt├──delfile1.txt4格式文件误删恢复工具我们使用extundelete,高级安装。yum安装extundelete-y;安装完成后,我们正式进行实验,先删除rm-fr/data/delfile1.txt/data/deldir目录下的文件和文件夹。文件被误删后,我们应该立即从操作系统中卸载硬盘:umount/dev/sdb1。这样做的原因是为了防止操作系统进程不断向磁盘写入数据,导致数据块被覆盖。数据块被覆盖后,数据块上的文件将无法恢复。#extundelete/dev/sdb1--inode2文件名|索引节点号|删除状态。2..2lost+found11delfile1.txt12Deleteddeldir262145Deleted使用上面的命令,我们可以查看误删的文件(节点号=12)和文件夹(节点号=262145)。备注:ext4文件系统分区根目录inode值为2,xfs分区根目录inode值为64extundelete/dev/sdb1--restore-filedelfile1.txt#恢复文件extundelete/dev/sdb1--restore-directorydeldir#恢复目录extundelete/dev/sdb1--restore-inode12#根据inode号恢复extundelete/dev/sdb1--restore-all#全部恢复执行上面的恢复操作后,新建一个会在执行命令的文件夹下创建一个RECOVERED_FILES,看看RECOVERED_FILES文件夹下有没有你误删的文件或文件夹?文件误删恢复操作有一定的失败概率。