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

信息安全公益宣传,信息安全知识启蒙。

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

安装恢复软件

1、epel 仓库安装

如果我们的源里面添加了 epel 仓库的话,我们可以直接使用下面的命令安装。

2、源码编译安装

删除数据查找

因为我的数据路径比较深,所以我们需要一步步查找,可以先从根分区 inode 查找

我们会看到 weapps 目录的inode,

我们看到项目的 inode,

我们找到了最终删除数据的目录 upload

我们可以看到标称的 Deleted,这些数据就是我们要进行恢复的数据。

数据恢复

那我们就恢复指定目录,以当前分区为根分区进行路径设定,项目名进行掩盖。

因为磁盘数据一直在读写,所以有些文件之前的 inode 已经被重新分配了,导致部分数据无法恢复,数据最后会告诉我们有多少文件没有回复,但是大部分数据我们已经恢复了,这就是很重要的事情了。

那我们查看一下回复的数据吧,软件会在当前目录生成一个目录 RECOVERED_FILES 里面就是我们恢复的数据。

恢复全部数据可以使用命令

使用方法

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

本文来自企鹅号 - 计算机与网络安全媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏idba

主从替换之后的复制风暴

一套MySQL主-备-备-备数据库,其中的备库升级到主库之后,系统监控报警 Seconds_Behind_Master 瞬间为0,瞬间为数十万秒。第一感觉是遇...

20220
来自专栏人工智能LeadAI

分布式资源管理

DRM(分布式资源管理) 大型的分布式系统中存在很多的配置文件,分布式资源管理解决了配置文件同步更新的问题,不仅仅是配置文件,此技术还可以支持缓存数据的同步一致...

37850
来自专栏xingoo, 一个梦想做发明家的程序员

《linux c编程指南》学习手记3

6.3.1 多个进程之间的关系 进程组:getpgrp(void)用来返回进程组号 setpgid用来创建一个新的进程组或将一个进程加入另一个已存在的进程组 6...

19680
来自专栏Web项目聚集地

扫码登录实现原理

首先,介绍下什么是扫码登录。现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件。而开发这些app的企业,都有他们相对应的网站。为了让用户在使用他们的网站...

16120
来自专栏加米谷大数据

技术干货 | hadoop之hdfs安全模式

namenode启动时,首先将映像文件(fsimage)载入内存,并中兴编辑日志中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsima...

37860
来自专栏JAVA高级架构

高并发解决方案--负载均衡

28820
来自专栏北京马哥教育

小白学Python | 最简单的Django 简明教程

? 一、Django简介 1. web框架介绍 具体介绍Django之前,必须先介绍WEB框架等概念。 web框架: 别人已经设定好的一个web网站模板,你学...

48070
来自专栏北京马哥教育

看完这一篇,误删后再也不用跑路了

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

32890
来自专栏微信公众号:Java团长

扫码登录实现原理

首先,介绍下什么是扫码登录。现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件。而开发这些app的企业,都有他们相对应的网站。为了让用户在使用他们的网站...

54840
来自专栏Laoqi's Linux运维专列

恢复删除的数据

17530

扫码关注云+社区

领取腾讯云代金券