自己动手完成数据恢复

数据恢复

   数据恢复是一个很大的概念,包括文件恢复,分区恢复,分区格式化恢复,等等。我今天主要就讲一讲文件恢复。相信大家在日常生活中会遇到过误删了一些文件吧,比如可能明天要交的实验报告或者是一些珍贵的照片被删除了;然后后面又想找回来,那怎么办呢? 下面要用到的工具有winhex磁盘查看器。



数据恢复原理

  其实在计算机中文件都是存储以01存储,然而在不同的操作系统文件的存储方式也会不一样。现在主流的有FAT和NTFS这两个文件系统。在这里我就针对FAT和NTFS文件系统来讲一讲文件被删除后的状态。


FAT文件系统

  FAT在硬盘中数据结构大概分为五个区:

  • MBR区:由分区软件创建
  • DBR区:操作系统的引导记录,就是各个分区自己的引导记录
  • FAT区:文件分配表,用于记录文件在磁盘中的所在位置
  • FDT区:文件目录表,就相当于我们平时看到的文件那种结构
  • DATA区:这就是存储数据的地方,是文件的原始状态。

FAT文件系统下删除文件前后对比
  在了解了文件系统之后,我们就知道了,其实文件删除就只是把FAT表和FDT表进行了一些修改,然后文件系统就会认为在这个位置是空白的,就不会认为这里还存有数据。但是位于DATA区的数据还是存在,只是文件系统不能够识别出来。
所以这就是文件恢复的前提。其实数据并不会被删除,只能被覆盖,当后面再有数据存进来以后,系统就会寻找记录为空的地方存放数据,如果数据被覆盖了,那么就不能够恢复了,所以当我们发现有东西误删之后就不要在做过多的文件存储操作了。


NTFS文件系统

  NTFS和FAT32有很大区别,但是它们的结构是有共通之处的。NTFS大概的结构由 B o o t 和 Boot和 BootMFT还有 B o o t 备 份 组 成 。 Boot备份组成。 BootBoot包含了引导扇区。 M F T 是 主 文 件 表 , 是 N T F S 结 构 的 核 心 。 最 后 的 一 个 扇 区 是 MFT是主文件表,是NTFS结构的核心。最后的一个扇区是 MFTNTFSBoot引导扇区的备份,其实它不是不分区内的结构,是属于分区外的一个扇区备份,它的大小不算入分区大小,从FAT32文件系统转换成NTFS是没有后面的$Boot扇区备份的。在NTFS文件系统结构的最关键的概念:一切东西都是文件。所以其他的元文件都是文件,不作为特殊的结构列出。

我们来看看文件删除前后的磁盘数据的变化:

删除前:
在这里插入图片描述

删除后:
在这里插入图片描述

  通过上图发现,文件删除之后改变的就只有$MFT的一些标识改变了。所以在这两个文件系统中,文件被删除之后,数据区都不会被删除。

在NTFS文件系统中的原理分析

  在这里我们要用到一个软件winhex,这是一个文件编辑和磁盘编辑器,通过这个软件我们可以看到原始数据。我们从上面知道,文件的删除是不会删除原始数据,所以想要恢复文件就是应该要找到所需要的文件的数据。这样我们再通过winhex就能够进行数据恢复了。

####文件刚刚被删除的情况

  在NTFS文件系统中,我们可以通过winhex打开被删除文件的所在磁盘,然后如果文件才被删除的话,我们可以在目录中看到文件,就可以直接点击恢复。如下图:在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

对于文件删除有一段时间时:

  在这种情况中,我们会发现在目录下看不到所删除的文件了,这时候就要进入$MFT这个文件中寻找被删除文件的数据所在位置。

  • 先进入$MFT文件中搜索被删除的文件名,然后就会跳转到文件的信息处,以FLIE为标志,然后再往后面找到80标志还有一个属性就是距80偏移8字节处的属性为01还是00,如果是00,那么文件的数据就在现在这个位置如在这里插入图片描述还有如果属性是01,那么说明文件在其他位置,就要根据后面的信息找到位置在哪里:
    在这里插入图片描述
    ”31”中的“1”说明后面的第一个字节“0A”代表的是文件的是这个数据段的长度,为”0x000A”簇,“3”说明,从第三个字节开始的3个字节“99 44 01”代表数据起始簇号,即“0x994401”。这样我们就得到了文件的第一段长度。转化为十进制为10044417。然后上面一排03 92 00 所包含的信息为文件的大小,大小为9203换成十进制是37379。然后进行下面的操作:

    1.跳转到扇区位置,找到文件的起始位置。

在这里插入图片描述 根据文件大小再进行跳转,找到文件的末尾位置。在这里插入图片描述这样我们就找到文件的完整数据了。

  • 在找到完整数据之后我们进行的就是选取数据并保存了。在这里插入图片描述
  • 这样简单的数据恢复就完成了。


基于软件的文件恢复

  对于文件放入回收站之后,回收站也被清空了,我们应该如何简单有效的把文件找回呢?当然是用现有的软件 进行找回文件。我找了很多可以恢复文件的软件,但是都不能进行文件恢复,因为都需要买一个账号,如果不是特别重要的文件,或者比较严重的问题,不值得去买一个账号。对于免费的软件呢,国内的有腾讯和360的文件恢复软件然后还有recuva

下面就针对recuva进行讲解

  • 首先在网上下载并安装recuva
  • 然后界面,点击cancel在这里插入图片描述
  • 然后来到了这个主界面在这里插入图片描述
  • 然后找到误删文件的所在分区然后点击scan在这里插入图片描述
  • 最后找到想要恢复的文件点击恢复就可以了(然后后面选择保存位置时不要保存到之前那个分区了,不然可能文件恢复不好)在这里插入图片描述

总结

  数据能够被恢复的基础就是,文件被删除后,只是把自己隐藏起来了,但是并没有把数据清空。然后自己动手去实现数据恢复,最初就是要明白文件系统的原理,然后用winhex这个软件想办法找到文件数据所处的位置,就能够实现数据恢复了。但是这样来做是很麻烦的,还不如直接用软件,进行几个简单的操作就完成了。但是,自己动手从底层去实现是一个很有趣的事情。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1619455.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深入探讨C存储类和存储期——Storage Duration

🔗 《C语言趣味教程》👈 猛戳订阅!!! ​—— 热门专栏《维生素C语言》的重制版 —— 💭 写在前面:这是一套 C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅&#…

巨人网络305亿并购海外棋牌类游戏公司审核遭暂停

雷帝网 乐天 8月10日报道 巨人网络今日发布公告,宣布2018年8月10日收到中国证监会通知,决定对公司本次发行股份及支付现金购买资产并募集配套资金暨关联交易事项(简称“本次重组”)暂停审核。 据《上市公司重大资产重组管理办法》…

家乡的一种棋牌游戏

进来无事,想起了家乡的一种棋牌游戏,只记得小时候玩觉得蛮有趣,呵呵,现在想起就有一种用程序实现它的冲动, 呵呵,有想法就行动了,鉴于此款游戏由多人组合才能进行,所以还是选择C/S结…

C#棋牌游戏(如斗地主)

C#棋牌游戏 需求代码块定义枚举定义Card类定义CardLibrary类*定义Player类Main函数中实现结果展示 需求 需要定义Card类,该类包含特征: 每张牌的名字; 花色:红心、方块、梅花、黑桃; 牌号:1- 10、J、Q、K、小王、大王定义牌库CardLibrary类,…

自助棋牌室

1项目模块:商家模块(店铺展示、包厢展示、订单、订单搜索、店铺搜索) 用户模块(登录、注册、预约、充值、更换头像、续单、退单) 2项目技术:前端:js、jquery、vue2、vue3、后端:jdbc、java、servlet、mybatis 3功能实现: I 登录功能实现: 主要通过前后端交互实现,前后端实现流…

算法通过村第四关-栈白银笔记|手写栈操作

文章目录 前言1. 栈的基础概要1.1 栈的特征1.2 栈的操作1.3 Java中的栈 2. 栈的实现(手写栈)2.1 基于数组实现2.2 基于链表实现2.3 基于LinkedList实现 总结 前言 提示:我自己一个人的感觉很好 我并不想要拥有你 除非你比我的独处更加宜人 --…

【问题解决】无法加载文件 C:\Users\PJW\AppData\Roaming\npm\hpm.ps1,因为在此系统上禁止运行脚本

问题: PS Y:\BearPi-HM_Nano> hpm dist hpm : 无法加载文件 C:\Users\PJW\AppData\Roaming\npm\hpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policie…

intellj 无法运行程序

RT 在写作业的时候,导入老师项目,但是无法执行文件。 在这里插入图片描述 在项目模块中,添加内容根。添加目标源文件夹,解决问题。

【报错】nrm : 无法加载文件 …路径… ,因为在此系统上禁止运行脚本。

原因:核心是power shell的安全策略,将 nrm 命令视为了不安全脚本,不允许执行。只需要放开权限就行。 解决:通过管理员权限运行power shell,然后输入命令 set-ExecutionPolicy RemoteSigned 示例: 选择“是”…

com.android.phone已停止运行怎么解决方法,com.android.phone进程意外停止/已停止运行的原因及解决方法...

com.android.phone已停止怎么解决?小编带来了com.android.phone进程意外停止解决方法,有机友表示当手机刷机或root后就会出现“进程com.android.phone已停止”提示,不妨试一试下文的解决方法哦~ --原因 出现这种情况表明你的手机运行环境出现了比较大的…

在运行Android程序出现“×××已停止运行”

在运行Android程序时出现“已停止运行”的情况,点击“重新打开应用”后又提示“屡次停止运行”, 发现在Logcat中有这么一行提示:“Caused by: java.lang.NullPointerException: Attempt to invoke virtual method android.view.View android.…

无法加载文件 ,因为在此系统上禁止运行脚本

1 问题 在打开cmd命令行文件或者某个shell时,运行某个文件失败,并且显示无法加载文件 ,因为在此系统上禁止运行脚本。可能是因为你当前的shell窗口权限不够导致,可以先打开管理员权限的shell之后,修改脚本运行的策略即…

因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies

项目场景: 提示:这里简述项目相关背景: npm安装包后无法使用, 例如:npm install -g json-server 安装成功后 使用json-server命令 报错,如果没有安装过此包,一般会提示不是内部或者外部命令 问…

windows 已停止這個裝置,因為它發生了問題。

您的電腦在接入外接式裝置時出現" Windows 已停止這個裝置,因為它發生了問題。 (代碼 43)",如何解決? 一般情況下,是由於裝置非正常接入所引起的裝置驅動程式出現故障的錯誤,此時多插拔幾次即可解決。但如果…

Windows启动和停止jar包命令

一、windows启动jar包命令 命令放到 bat文件中 1、普通启动 title XXX chcp 65001 java -Dfile.encodingutf-8 -jar XXX.jar加上-Dfile.encodingutf-8后,不乱码 加上chcp 65001后,日志的中文不乱码 注:这种方式启动后,窗口不能…

因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?Link ID=135170 中的 about_Execution_Policies

出现的问题描述 在 Pycharm 的虚拟环境中,打开终端,有红字提示 重点关注的就是在此系统上禁止运行脚本 这是因为PowerShell的执行策略不允许运行脚本 有两种方法可以解决 解决办法 方法一:修改PowerShell的执行策略 以管理员方式运行Powe…

无法加载文件,因为在此系统上禁止运行脚本。

1.vscode报错,nodemon :因为在此系统上禁止运行脚本。 注意:不仅仅适用于nodemon报错,报在此系统上禁止运行脚本的错都可以用以下方法解决 2.报错原因分析:windows 为了安全,默认的执行策略为 Restricted,因此需要将执行策略设置为 RemoteSigned 即可 3.解决方法 步骤: 1.…

四种方式解决idea中出现 运行配置停止之前未连接应用程序服务器原因:无法在 localhost:1099 处 ping 服务器

出现这种问题的原因很多 第一种:项目结构那里没有选JDK 第二种:Tomcat版本和JDK版本不兼容,这就要我们手动更改Tomcat或者JDK版本了 我们先查看自己的Tomcat版本,首先点开黄色那个圈,照着图片依次进行 这里一定要点进…

IE浏览器卡死提示是否停止运行此脚本的解决办法

IE浏览器经常卡死,报是否停止运行此脚本,严重影响使用体验,下面小编教大家怎么解决这个问题,供大家参考! 1、启动IE浏览器,点击上方菜单栏位的工具,如下图所示 2、在工具栏位选择internet选项&a…

2023 江苏省研究生数学建模 A 题思路

2023年江苏省研究生数学建模科研创新实践大赛A题新型抗癌药物研究模型探索靶向治疗是治疗肿瘤疾病的一种重要方法,它具有针对性强、疗效显著等特点。现有的靶向药物通常针对特定的基因突变靶点,容易出现耐药性。目前,一种由癌症诱发的血管新生…