zoukankan      html  css  js  c++  java
  • 有关数据恢复的几个概念的理解

    分区

    硬盘存放数据的基本单位为扇区,我们可以理解为一本书的一页。当我们装机或买来一个移动硬盘,第一步便是为了方便管理--分区。无论用何种分区工具,都会在硬盘的第一个扇区标注上硬盘的分区数量、每个分区的大小,起始位置等信息,术语称为主引导记录(MBR),也有人称为分区信息表。当主引导记录因为各种原因(硬盘坏道、病毒、误操作等)被破坏后,一些或全部分区自然就会丢失不见了,根据数据信息特征,我们可以重新推算计算分区大小及位置,手工标注到分区信息表,“丢失”的分区回来了。

    文件分配表

    为了管理文件存储,硬盘分区完毕后,接下来的工作是格式化分区。格式化程序根据分区大小,合理的将分区划分为目录文件分配区和数据区,就像我们看得小说,前几页为章节目录,后面才是真正的内容。文件分配表内记录着每一个文件的属性、大小、在数据区的位置。我们对所有文件的操作,都是根据文件分配表来进行的。文件分配表遭到破坏以后,系统无法定位到文件,虽然每个文件的真实内容还存放在数据区,系统仍然会认为文件已经不存在。我们的数据丢失了,就像一本小说的目录被撕掉一样。要想直接去想要的章节,已经不可能了,要想得到想要的内容(恢复数据),只能凭记忆知道具体内容的大约页数,或每页(扇区)寻找你要的内容。我们的数据还可以恢复回来。

    删除

    我们向硬盘里存放文件时,系统首先会在文件分配表内写上文件名称、大小,并根据数据区的空闲空间在文件分配表上继续写上文件内容在数据区的起始位置。然后开始向数据区写上文件的真实内容,一个文件存放操作才算完毕。

    删除操作却简单的很,当我们需要删除一个文件时,系统只是在文件分配表内在该文件前面写一个删除标志,表示该文件已被删除,他所占用的空间已被“释放”, 其他文件可以使用他占用的空间。所以,当我们删除文件又想找回他(数据恢复)时,只需用工具将删除标志去掉,数据被恢复回来了。当然,前提是没有新的文件写入,该文件所占用的空间没有被新内容覆盖。

    格式化

    格式化操作和删除相似,都只操作文件分配表,不过格式化是将所有文件都加上删除标志,或干脆将文件分配表清空,系统将认为硬盘分区上不存在任何内容。格式化操作并没有对数据区做任何操作,目录空了,内容还在,借助数据恢复知识和相应工具,数据仍然能够被恢复回来。

    注意:格式化并不是100%能恢复,有的情况磁盘打不开,需要格式化才能打开。如果数据重要,千万别尝试格式化后再恢复,因为格式化本身就是对磁盘写入的过程,只会破坏残留的信息。

    覆盖

    数据恢复工程师常说:“只要数据没有被覆盖,数据就有可能恢复回来”。

    因为磁盘的存储特性,当我们不需要硬盘上的数据时,数据并没有被拿走。删除时系统只是在文件上写一个删除标志,格式化和低级格式化也是在磁盘上重新覆盖写一遍以数字0为内容的数据,这就是覆盖。

    一个文件被标记上删除标志后,他所占用的空间在有新文件写入时,将有可能被新文件占用覆盖写上新内容。这时删除的文件名虽然还在,但他指向数据区的空间内容已经被覆盖改变,恢复出来的将是错误异常内容。同样文件分配表内有删除标记的文件信息所占用的空间也有可能被新文件名文件信息占用覆盖,文件名也将不存在了。

    当将一个分区格式化后,有拷贝上新内容,新数据只是覆盖掉分区前部分空间,去掉新内容占用的空间,该分区剩余空间数据区上无序内容仍然有可能被重新组织,将数据恢复出来。

    同理,克隆、一键恢复、系统还原等造成的数据丢

  • 相关阅读:
    flask框架中SQLAlchemy相关
    flask使用外部存储模块之数据库的使用
    flask的基础知识
    docker的下载和使用
    rbac权限管理系统的学习
    redis数据库之五种数据类型的简单操作
    使用django框架进行web项目开发需要了解的知识
    django项目常用外部模块下载和使用
    pwn学习之dl_resolve学习篇
    验证docker的Redis镜像也存在未授权访问漏洞
  • 原文地址:https://www.cnblogs.com/net2012/p/3345457.html
Copyright © 2011-2022 走看看