误删数据恢复系列1

简介: 误删数据恢复系列1

数据误删一般有两种场景,一是从数据盘直接删除,二是从数据库删除。今天主要介绍场景1数据盘数据误删

常见情况下来说呢,数据盘数据误删主要有两种场景:

场景一 :在执行rm -rf 删除文件时,该文件正在被进程使用。

场景二:这个文件没有被进程占用,从而被误删除。

所以理论上可以通过block块找回数据,因为上面保存着真实的数据。

风险:如果有进程在在不断地往磁盘写数据时,需要申请新的block块,如果操作系统分配已删除的block块时,新写入的数据就会覆盖原来的数据,此时就会造成数据真正丢失。

在这种情况下,应该第一时间umount目录所在的磁盘,或者不对磁盘进行任何写入,以保证理论数据还存在磁盘上,那么还可以通过相关分析找回数据。

针对场景一 搭建测试环境:

# 创建测试文件夹

mkdir /tmp/test

# 创建测试文件

echo "aaa.al" > /tmp/test/aaa.txt

tail -f /tmp/test/aaa.txt

此时,新开一个终端二,删除aaa.txt文件。

rm -rf /tmp/test/aaa.txt

此时的状态为终端一仍在占用进程,终端二中把文件删除掉了。

场景一恢复:

下面执行恢复操作,使用lsof命令:

# lsof | grep 删除的文件名,如:

lsof | grep aaa.txt

可以看到查询出来的结果处于“deleted”的状态,我需要找到此进程的pid,比如我这里的结果pid为9403。

根据pid号查找文件句柄:

# cd /proc/记录的pid号/fd,如:

cd /proc/1364000/fd

ll

恢复文件,执行以下命令,可以看到数据已经恢复回来了。

cp 3 /tmp/test/aaa.txt.bak

cat /tmp/test/aaa.txt.bak

4、场景二演示

场景二搭建:

我们这里使用单独的一块硬盘来做演示,我这里的硬盘是/sdb1,格式为ext4。

我这里在挂载的目录创建aaa.txt,写入内容和aaa的文件夹。

echo "aaa.al" > /test/aaa.txt

mkdir -p  /test/aaa

cd /test

ls

然后对硬盘内容删除:

cd /test

rm -rf *

ls

场景二恢复:

恢复前需要对硬盘进行取消挂载:

umount /test -l

# 创建一个用于恢复数据的目录

mkdir /tmp/test

cd /tmp/test

执行extundelete命令,如果没有此命令,可以直接安装:

yum -y install epel-release

yum -y install extundelete

完成后,执行命令,可以看到最后显示出误删除的文件,状态为Deleted。

开始恢复文件,找到我们需要恢复文件的Inode number,比如我这里图示为12,则执行以下命令,执行后,会在当前目录下生成RECOVERED_FILES目录,里面包含我们恢复的文件:

同样还可以恢复文件夹和所有文件,命令格式如下:

1)通过inode号(extundelete /dev/sdb1 --restore-inode InodeNum)

2)通过file文件名(extundelete /dev/sdb1 --restore-file FileName)

3)通过directory目录名(extundelete /dev/sdb1 --restore-directory DirectoryName)

4)all全部恢复(extundelete /dev/sdb1 --restore-all)

同样的xfs格式可以使用xfs_undelete工具修复

下载地址https://github.com/ianka/xfs_undelete

tcllib下载地址:https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/t/tcllib-1.14-1.el7.noarch.rpm

xfs文件系统删除恢复

查看文件系统格式

df -h

cd /data                                                            

ls -l    

ls -l ahi-python

find ./ -name *.gz|xargs ls -l

rm -rf /data/*  

发现误删除文件后,立马把误删除文件所在的分区设置成只读状态,或者卸载掉该分区,让分区没有写操作

umount /data/            

使用xfs_undelete工具修复

误删文件所在的文件系统格式是xfs,所以选择了xfs_undelete工具进行修复

https://github.com/ianka/xfs_undelete

tcllib下载地址:

https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/t/tcllib-1.14-1.el7.noarch.rpm

源码安装tcllib

# tar -xf pgs.tar.gz                                                  

# cd pgs/ # tar -xf tcl8.6.11-src.tar.gz                              

# cd tcl8.6.11/unix/                                                  

# ./configure && make && make install  

# cd /opt/pgs/                                                      

# ls -l      

执行xfs_undelete工具找回误删的文件

# unzip xfs_undelete-master.zip                                    

# cd xfs_undelete-master                                            

# ls -l

存放在目录下./xfs_undeleted,文件和之前的有差异,根据文件比对找到对应的数据,主要恢复sh、py和zip文件

# find ./ -name *.gz|xargs ls -l          

# tar -tf ./2021-02-24-21-00_423425453.tar.gz|head -n 10    

使用testdisk工具找回文件

这个工具使用比较简单,无需源码编译,解压即可使用

https://www.cgsecurity.org/wiki/TestDisk

photorec找回文件

# tar -xf testdisk-7.2-WIP.linux26-x86_64.tar.bz2                  

# cd testdisk-7.2-WIP                                              

# ]# mkdir data_recovery                                            

# ./photorec_static                                                

选择/dev/mapper/centos-data逻辑分区 ,Proceed继续

选择XFS分区,file opt可以选择修复的文件类型,如txt压缩等等,最后选择search继续

选择other文件系统,enter继续

选择要恢复文件所要存放的路径

开始恢复文件

相关文章
|
4月前
|
SQL 数据库 数据安全/隐私保护
误删数据怎么办?
误删数据怎么办?
|
存储 安全
u盘文件损坏怎么恢复数据 ,兔八哥爱分享轻松带你恢复数据
随着电脑和移动设备的广泛使用,U盘已经成为了人们在数据传输和备份中不可或缺的重要工具之一。特别是在计算机方面,一天要用的数据很多。但有时,我们可能会遇到U盘文件损坏的情况,导致无法访问里面的数据,又不清楚是什么原因造成的,这也是很让人烦恼的。那我们可以用什么方法呢?其实先了解u盘出现损坏的原因再对症下药会简单很多。今天兔八哥爱分享就给大家分享一些 u盘恢复数据方法,操作方法简单实用,大家可以试试!
2423 0
u盘文件损坏怎么恢复数据 ,兔八哥爱分享轻松带你恢复数据
|
29天前
|
固态存储 Java
磁盘误删卷数据恢复工具
磁盘误删卷数据恢复工具
25 0
|
4月前
|
SQL 关系型数据库 MySQL
恢复误删除的mysql数据库
恢复误删除的mysql数据库
172 1
|
存储 Windows
不小心把u盘里的文件删除了怎么恢复丢失怎么办?,用什么数据恢复软件恢复
自从手机和电脑可以无线传输文件后,U盘就被遗忘在包里,偶尔看见,但基本上没再用过。昨天突然想看看U盘里还有什么文件资料,结果,插在电脑上却读不出来,这是怎么回事呢?u盘在电脑上读不出来数据怎么修复?紧急求救身边的懂电脑小哥哥,他教我一招,就轻松解决了这个难题。
238 0
不小心把u盘里的文件删除了怎么恢复丢失怎么办?,用什么数据恢复软件恢复
|
Oracle 关系型数据库 MySQL
Linux服务器误删恢复
Linux服务器误删恢复
167 0
|
存储 监控 固态存储
EasyRecovery数据恢复可以轻松恢复删除和丢失的任何数据
Ontrack EasyRecovery易恢复是由全球著名数据厂商Kroll Ontrack出品的一款专业级数据文件恢复软件,号称最好的数据恢复软件!
229 0