暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux下误删除文件恢复

312

一、Linux下ext3/ext4文件系统的恢复

EXT类型的文件系统在删除文件实际上并不会清除inode节点和块数据,而是删除文件父目录下块中的文件名。Linux通过链接数控制文件删除,只有当文件没有链接时才会删除文件。

误删数据后,首先要做的就是卸载被删除数据所在的分区。如果根分区的数据被误删,需要进入系统进入单用户模式,并以只读模式挂载根分区。这样做的原因很简单,因为删除文件后,只清除了文件inode节点中的扇区指针,实际文件也存储在磁盘上。如果磁盘继续以读写方式挂载,则被删除文件的数据块可能会被操作系统重新分配,这些数据库将是新的。数据覆盖后,这些数据真的就丢失了,恢复工具也无能为力了。因此,以只读方式挂载磁盘可以将数据库中数据覆盖的风险降到最低。 

二、文件误删后恢复的原理

使用存储在分区日志中的信息,尝试恢复已从ext3或ext4的分区中删除的文件

恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息(根目录的inode一般为2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。 

三、常用的工具

extundelete:

命令行操作方式

有些文件无法恢复,不稳定 

ext4magic:

extundelete无法恢复的文件使用ext4magic可以恢复,但是超过32T的文件系统,

ext4magic会报错。

ext4magic小盘可以用 先用rpm包的 ,但是测试20多的T就会报错

验证在centos的系统上小盘可以使用, openeuler使用不行,扫描不出来,可能是文件系统版本的问题 。

testdisk:

testdisk提供向导式的交互,也支持恢复分区表和分区信息,但是这种向导方式在文件数据量多的时候很难使用,不支持搜索。

且经验证,testdisk也无法有效恢复数据。


testdisk针对误删除分区的这种情况 也是有效的 可以用的

r-studio:

R-STUDIO Technician 9.3.191230

可以找回centos7上ext4文件系统误删除的数据 20多T的盘也能支持

将centos上的盘通过iscsi做为target映射出来 连接到windows上,用R-studio扫描,针对openeuler的黑方的ext4文件系统,扫描效果不行,

20多T有效数据4T多,扫描时间1h25min。 

四、总结

Linux下ext4文件恢复工具,主要依靠的是文件系统的日志,一旦发生误删除等操作后,要立即卸载文件系统,防止新写入的数据覆盖掉误删除的数据内容。


文章转载自戏说数据那点事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论