首页 Linux网维 我把Linux系统上面误删的数据找回来了

我把Linux系统上面误删的数据找回来了

一、背景突发事件,应用上传的数据被程序自动删掉了,可悲的是还没有数据备份,数据是放在系统的 /data/webapps/xxxx/upload 目录下面,可把我们急坏了,之前又没有…

一、背景突发事件,应用上传的数据被程序自动删掉了,可悲的是还没有数据备份,数据是放在系统的 /data/webapps/xxxx/upload 目录下面,可把我们急坏了,之前又没有做过数据恢复的测试,然后我找到了一款数据恢复的软件,成功把删除的大部分数据找回来了,我的数据恢复过程如下。

二、安装恢复软件1、epel 仓库安装如果我们的源里面添加了 epel 仓库的话,我们可以直接使用下面的命令安装yum install extundelete -y 2、源码编译安装wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2。

yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ maketar -xvjf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4

./configuremake && make install三、删除数据查找因为我的数据路径比较深,所以我们需要一步步查找,可以先从根分区 inode 查找extundelete /dev/sdb1 –inode 2

我把Linux系统上面误删的数据找回来了插图

我们会看到 weapps 目录的inode,extundelete /dev/sda5 –inode 24641537

我把Linux系统上面误删的数据找回来了插图1

我们看到项目的 inode,extundelete /dev/sda5 –inode 24903688

我把Linux系统上面误删的数据找回来了插图2

我们找到了最终删除数据的目录 uploadextundelete /dev/sda5 –inode 24904454

我把Linux系统上面误删的数据找回来了插图3

我们可以看到标称的 Deleted,这些数据就是我们要进行恢复的数据四、数据恢复那我们就恢复指定目录,以当前分区为根分区进行路径设定,项目名进行掩盖extundelete /dev/sda5 –restore-directory /webapps/xxxx/upload 。

我把Linux系统上面误删的数据找回来了插图4

因为磁盘数据一直在读写,所以有些文件之前的 inode 已经被重新分配了,导致部分数据无法恢复,数据最后会告诉我们有多少文件没有回复,但是大部分数据我们已经恢复了,这就是很重要的事情了那我们查看一下回复的数据吧,软件会在当前目录生成一个目录 RECOVERED_FILES 里面就是我们恢复的数据。

我把Linux系统上面误删的数据找回来了插图5

恢复全部数据可以使用命令extundelete /dev/sda5 –restore-all 使用方法extundelete –help其中,参数(options)有: –version, -[vV],显示软件版本号。

–help,显示软件帮助信息 –superblock,显示超级块信息 –journal,显示日志信息 –after dtime,时间参数,表示在某段时间之后被删的文件或目录 –before dtime,时间参数,表示在某段时间之前被删的文件或目录。

动作(action)有: –inode ino,显示节点“ino”的信息 –block blk,显示数据块“blk”的信息 –restore-inode ino[,ino,…],恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。

–restore-file path,恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RECOVERED_FILES目录中 –restore-files path,恢复命令参数,表示将恢复在路径中已列出的所有文件。

–restore-all,恢复命令参数,表示将尝试恢复所有目录和文件 -j journal,表示从已经命名的文件中读取扩展日志 -b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件。

-B blocksize,通过指定数据块大小来打开文件系统,一般用于查看已经知道大小的文件在数据删除之后,首先要卸载被删除数据所在的磁盘或是分区,如果是系统根分区遭到误删除,就需要进入单用户模式下,将根分区以只读的方式挂载。

原因:因为文件删除之后,仅仅是将文件的inode节点中的扇区指针清零,实际上文件还存在磁盘上面,如果磁盘以读写方式挂载,这些删除的数据块可能会被系统从新分配出去,这些数据块被覆盖之后,这些数据就真的丢失了,所以以只读的方式挂载,尽可能避免数据被覆盖。

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: 3182235786a

为您推荐

linux文件命令

linux文件命令

在 Linux 中,我们可以使用 `with open()` 语句和 `write()` 函数来写入文件。以下是一个简单...
linux的命令

linux的命令

以下是一个简单的 Linux 命令示例,该命令将显示当前日期和时间: “`c #include <st...
linux 命令

linux 命令

由于 Linux 命令是由 C 语言编写的,因此下面是一个简单的用中文编写的 Linux 命令示例,它将输出“Hello...
linux命令tar

linux命令tar

这个问题看起来有些模糊,我不确定您是想了解如何在 Linux 系统中使用 tar 命令,还是如何编写一个名为 tar 的...
linux压缩命令

linux压缩命令

Linux压缩命令:高效管理文件和目录 Linux操作系统提供了一系列强大的压缩命令,使您能够高效地管理文件和目录。无论...

发表回复

返回顶部