数据恢复基本知识:硬盘的数据结构、文件的存储原理、操作系统的启动流程。这些在恢复硬盘数据要用要的基本知识。

1、硬盘的数据结构

硬盘一般分为主引导扇区、操作系统引导扇区、FATDIRDATA五部分。(其中主引导扇区是唯一的,其他的扇区是任意的增加分区。)

主引导扇区:主引导扇区位于整个磁盘的0磁道0柱面1扇区,包括硬盘主引导记录MBRMain Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并有程序结束把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道以80H00H为开始标志,以55AAH为结束标志,共64字节,位于扇区的最末端。值得一提的是MBR是由分区程序产生的(如DOSFDISK.EXE)。不同的操纵系统可能这个扇区是不同的,这个也可以自己编写的,只要能完成前面所说的任务即可,这也是为什么可以实现多系统启动的原因.(这个主引导分区记录容易编写,所以才出现很多的引导分区病毒)

操作系统引导分区:OBROS Boot Record)即操作系统引导分区,通常位于硬盘的0磁道1柱面1扇区(对于DOS来说那些以多重引导方式启动系统则位于相应的主分区/扩展分区上的第一扇区),是操作系统直接访问的第一扇区,他也是包括一个引导程序和一个被称为 BPBBIOS Parameter Block) 的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断分区根目录前的两个文件是否为操作系统的引导文件(例如 MSDOS.SYS)。就是把第一个文件读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区,文件存储格式硬盘介质描述符,根目录大小,FAT个数分配单元(Allocation Unit ,以前称之为簇)的大小等重要参数,OBR 由高级格式化程序产生(例如:DOS Format.com)。

文件分区表:

FAT(File ALLocation Table )即文件分配表,为了数据的安全起见,FAT一般做两个,第二FAT为第一FAT的备份,FAT去紧跟着在OBR之后,其大小有本分区的大小及文件分区分配单元的大小决定。

FAT的格式历来有很多的选择,MIcrosoft DOSWindows采用我们所熟悉的FAT12FAT16FAT32

   

目录区:

DIRDirectory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件的起始单元(重要的)、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。

数据区:

DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBROBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起目录区:,那么这个文件就有可能被恢复(当然前提是你没有覆盖这个文件……)。

2、硬盘分区方式

 我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。

 主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。

 扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。

 所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。需要注意的是由于主分区之后的各个分区是通过一种单项链接表的结构来实现链接实现的。若单向表发生问题,将导致逻辑磁盘的丢失。

3、数据存储原理

这里讲到进行数据恢复涉及到存储原理。在这之中,还要讲数据的删除和硬盘格式化等问题、、、、文件的读起操作系统从目录中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件的数据区保存的第一簇的簇号)假设,第一簇号是0023.操作系统从00236簇读取相应的数据,然后再找到FAT0023单元。如果文件内容是文件的结束标志(FF)则表示文件的结束。否则内容保存数据的下一簇的簇号,这样重复下去,知道遇到文件结束的标志。

文件的写入

当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、文件大小和创建的时间等相应的信息。然后在DATA区找到闲置空间将文件保存并将DATA区的第一簇写入DIR区,其他均差不多。

文件的删除、、、、这里就不详细了

FdiskFormat的说明:和文件的删除类是,利用Fdisk删除在建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/u这个无条件格式化参数)都没有将数据从DATA直接删除,前者只是改变分区表,后者只是修改了FAT表,所以呗五删除的分区和误格式化的硬盘完全有可能恢复

系统启动流程

不相同的操作系统有不同的启动流程,我就已windows xp操作系统启动为例

在这过程分为5阶段

分别是:预引导、引导、加载内核阶段、初始化内核阶段、登录

1、预引导阶段

在按下计算机电源使计算机启动,并且在windows XP操作系统启动之前的这段时间我们称之为预引导(PRE-BOOT)阶段在这个阶段,计算机首先运行POST,POST检测系统的总内存以及其他硬件设备的现状,如果计算机系统的BIOS是即插即用的,那么计算机硬件设备将经过检测以及完成配置,BIOS定位计算机的引导设备,然后MBR(主引导扇区)被加载并运行,在预引导阶段,计算机要加载WINDOWS XP NTLDR文件

2、引导阶段

Windows XP 引导阶段有四个小阶段,在这个阶段NTLDR将计算机微处理器从实模式转换为32位平面内存模式,在实模中,系统为MS-DOS保留64kb的内存,其余内存视为扩展内存,而在32位平面内存模式中,系统视所有的内存为可用内存。NTLDR启动内建mini-file system drivers 通过这个步骤,使NTLDR可以识别每一个用NEFS或者FAT文件系统格式化的分区,以便发现以及加载XP 到这里,初始引导加载器阶段就介绍了。

3、加载内核阶段

在加载内核阶段,NTLDR加载称为XP内核NTOKRNL.EXE,系统加载内核但没有将他初始化。接着NTLDR加载硬件抽象层(HAL hal.dll,然后系统将继续加载HKEY_MACHINE system service 下的start键值为0的最底层设备驱动。当作为Control set的镜像current control set被加载时NTLDR传递控制内核,初始化内核阶段就开始了。

4、初始化内核阶段

在初始化内核阶段开始的时候,彩色的windows XP LOGO以及进度图标显示在屏幕中在这个阶段,系统完成4项任务。内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINEHARDWARE键。

内核通过引用HKEY_LOCAL_MACHINEsystemCurrent的默认值复制Control Set来创建了Clone Control SetClone Control Set配置是计算机数据的备份,不包括启动中的改变,也不会被修改。

系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINEsystemCurrentControlSetservice...start键值为1的设备驱动程序。这些设备驱动程序在加载的时候便完成初始化,如果有错误发生,内核使用ErrorControl键值来决定如何处理,值为3时,错误标志为危机/关键,系统初次遇到错误会以LastKnownGood Control Set重新启动,如果使用LastKnownGood Control Set启动仍然产生错误,系统报告启动失败,错误信息将被显示,系统停止启动;值为2时错误情况为严重,系统启动失败并且以LastKnownGood Control Set重新启动,如果系统启动已经在使用LastKnownGood值,它会忽略错误并且继续启动;当值是1的时候错误为普通,系统会产生一个错误信息,但是仍然会忽略这个错误并且继续启动;当值是0的时候忽略,系统不会显示任何错误信息而继续运行

 Session Manager启动了Windows XP高级子系统以及服务,Session Manager启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。

最后登录即可、、、

数据恢复一些基本知识理解了加上软件工具的辅助,恢复你丢失的数据就容易多了!、、、、、、、、、、、、、、、