数据恢复的基本知识一、基本概念1、数据这里我们所说的数据,只指计算机数据,后面不再专门指出。
首先,“数据”是一个广义的概念,不仅包括计算机文件系统或数据库系统中存储的各种数据、正文、图形、图像、声音等形式的多媒体数据文件、软件或各种文档资料,也包括存放或管理这些信息的硬件信息,如计算机硬件及其网络地址、网络结构、网络服务等。
尽管在许多文献中都大量引用“数据”与“信息”两个术语,但却没有一个被公认的数据与信息的定义。
本书中对“数据”与“信息”不加以区分,视为同义。
2、数据恢复那么什么是数据恢复呢?简单地说,数据恢复就是把遭受破坏、或由硬件缺陷导致不可访问或不可获得、或由于误操作等各种原因导致丢失的数据还原成正常数据,即恢复至它本来的“面目”。
数据恢复不仅对已丢失的文件进行恢复,还可以恢复物理损伤的磁盘数据,也可以恢复不同操作系统的数据。
二、硬盘结构1、硬盘的物理结构图12、硬盘的数据组织1)盘片:硬盘的每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都利用上,即都装上磁头可以存储数据,成为有效盘片,也有极个别的硬盘其盘面数为单数。
每一个这样的有效盘面都有一个盘面号,按顺序从上而下自“0”开始依次编号。
在硬盘系统中,盘面号又叫磁头号,就是因为每一个有效盘面都有一个对应的读写磁头。
硬盘的盘片组在2~14片不等,通常有2~3个盘片,故盘面号(磁头号)为0~3或0~5。
2)磁道:磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。
磁道从外向内自0开始顺序编号。
硬盘的每一个盘面有300~1024个磁道,新式大容量硬盘每面的磁道数更多,如图2-24所示。
信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧,由于径向长度不一样,这些圆弧的角速度一样,而线速度不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈划过的圆弧长度大。
每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据是作为一个单元同时读出或写入的。
一个标准的3.5英寸硬盘盘面通常有几百到几千条磁道。
这些磁道是看不见的,它们只是盘面上以特殊形式磁化了的一些磁化区。
这些磁道是在磁盘格式化时就规划好了的。
3)柱面:所有盘面上的同一磁道构成一个圆柱,通常称作柱面(Cylinder),每个圆柱上的磁头,由上而下从“0”开始编号。
数据的读写是按柱面进行的,即磁头在读写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读写完毕后才移动磁头转移到下一柱面,即数据的读/写是按柱面来进行的,而不是按盘面来进行的。
也就是说,一个磁道已写满数据,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个柱面。
4)扇区:操作系统是以扇区(Sector)形式将信息存储在硬盘上的。
每个扇区包括512字节的数据和一些其他信息。
一个扇区有两个主要部分:即存储数据地点的标识符和存储数据的数据段。
三、寻址方式1、C/H/S寻址方式C:柱面号(最大10位);H:磁头号(最大6位);S:扇区号(最大6位),其中扇区数从1编号,其它从0编号,用三个参数唯一定位。
2、LBA寻址方式LBA寻址方式下从0开始给扇区线性编号,一直编到整块硬盘的最后一个扇区。
显然线性地址是物理扇区的逻辑地址。
3、C/H/S和LBA之间的转换1)读写规则要了解从C/H/S到LBA线性地址的转换规则。
由于系统在写入数据时是按照从柱面到柱面的方式,在上一个柱面写满数据后才移动磁头到下一个柱面,并从下一柱面的第一个磁头的第一个扇区开始写入,从而使磁盘性能最优,所以,在对物理扇区进行线性编址时,也按照这种方式进行。
即把第一柱面(0柱)第一磁头(0面)的第一扇区(1扇区)编为逻辑“0”扇区,把第一柱面(0柱)第一磁头(0面)的第二扇区(2扇区)编为逻辑“1”扇区,直至第一柱面(0柱)第一磁头(0面)的第63扇区(63扇区)编为逻辑“62”扇区,然后转到第一柱面(0柱)第二磁头(1面)的第一扇区(1扇区),接着上一面编为逻辑“63”扇区,0柱面所有扇区编号完毕后转到1柱面的0磁头1扇区,依次往下进行,直至把所有的扇区都编上号。
2)从C/H/S到LBA通过对编号规则的介绍,很容易看出C/H/S与LBA地址的对应关系。
用C表示当前柱面号,H表示当前磁头号,S表示当前扇区号,CS表示起始柱面号,HS表示起始磁头号,SS表示起始扇区号,PS表示每磁道有多少个扇区,PH表示每柱面有多少个磁道,则有:LBA=(C–CS)﹡PH﹡PS+(H–HS)﹡PS+(S–SS)(1)一般情况下,CS=0,HS=0,SS=1,PS=63,PH=255,LBA计算如下:C/H/S=0/0/1,代入(1)式中可得LBA=0C/H/S=0/0/63,代入(1)式中可得LBA=62C/H/S=0/1/1,代入(1)式中可得LBA=63C/H/S=220/156/18,代入(1)式中可得LBA=35441453)从LBA到C/H/S先介绍两种运算DIV和MOD(这里指对正整数的操作)。
DIV称做整除运算,即被除数除以除数所得商的整数部分。
比如,5 DIV 2=2,33 DIV 5=6;MOD运算则是取商的余数。
比如,5 MOD 2=1,33 MOD 5=3。
DIV和MOD是一对搭档,一个取整数部分,一个取余数部分。
各变量仍按上述假设进行,则有:C=LBA DIV (PH﹡PS)+CSH=(LBA DIV PS)MOD PH +HS (2)S=LBA MOD PS +SS如果不运用MOD运算符,只运用DIV运算符,也可按式(3)进行转换,两者的结果相同,只是运算的复杂度不同。
C=LBA DIV (PH﹡PS)+CSH=LBA DIV PS–(C–CS)﹡PH +HS (3)S=LBA–(C–CS)﹡PH﹡PS–(H–HS)﹡PS+SS按照这个规律,则有:LBA=0,相应地,C/H/S=0/0/1LBA=62,相应地,C/H/S=0/0/63LBA=63,相应地,C/H/S=0/1/1LBA=3544145,相应地,C/H/S=220/156/18四、引导扇区(MBR)MBR,即主引导记录区,位于整个硬盘的0磁道0柱面1扇区。
在总共512字节的主引导扇区中,MBR的引导程序占用其中的前446个字节(偏移0~偏移1BDH),随后的64个字节(偏移1BEH~偏移1FDH)为DPT(Disk Partition Table,硬盘分区表),最后的两个字节“55 AA”(偏移1FEH~偏移1FFH)是分区有效结束标志。
由它们共同构成硬盘主引导记录,也称主引导扇区。
图2(MBR)其中,硬盘分区表中的每16个字节被称为分区表项,一个分区表项管理一个分区。
在分区表项内:第1个字节为80的表示被激活,为00的表示未被激活。
第2个字节为C/H/S模式下起始磁头号。
第3个字节为C/H/S模式下起始扇区号。
第4个字节为C/H/S模式下起始柱面号。
第6个字节为C/H/S模式下结束磁头号。
第7个字节为C/H/S模式下结束扇区号。
第8个字节为C/H/S模式下结束柱面号。
其中,第3、4个字节结合,扇区号为6位,柱面号为10位(占用第3个字节的高两位)。
第5个字节为分区类型:若值为01表示是FAT12格式;若值为04表示是小于32M的FAT16格式;若值为06表示是大于32M的FAT16格式;若值为0B或0C表示是FAT32格式;若值为07表示是NTFS格式;若此分区表项为扩展分区,则第5个字节的值应为05或0F,05为小于8.4G,0F为大于8.4G。
从第9个字节开始为LBA寻址方式下的管理。
第9~12字节为当前分区的起始扇区号。
第12~16字节为当前分区的大小(分区所包含的扇区数)。
五、扩展分区(EBR)如何在一个硬盘中来划分扩展分区呢?1)在第一个扇区(引导扇区)中的第一个分区表项上填写主分区信息。
2)在第二个分区表项上的第5个字节上填写05或0F,则证明此分区为一个扩展分区,此时这个分区为主扩展分区。
如果在这个扩展分区上在划分扩展分区的话,则找到这个扩展分区的第一个扇区(EBR),重复上述两个步骤,所得到的是次扩展分区,以此类推。
图3(EBR)下面是一块硬盘的数据组织结构:图4六、操作系统引导记录区(DBR)进入一个分区的内部,第一个扇区就是DBR(DOS Boot Record)。
它包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。
引导程序的主要任务是,当MBR将系统控制权交给它时,判断本分区根目录前两个文件是不是操作系统的引导文件。
BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元大小等重要参数。
第1、2字节如果为EB 58则表示跳转58个字节,则跳到5A。
从5A 开始到55 AA 之间为引导数据。
从3到A为厂家和格式化版本。
从B到59为BPB参数:B~C为每扇区的字节数。
D为每簇的扇区数。
E~F为DBR所保留的扇区数。
10为FAT表的个数。
15为媒体描述符(F8为硬盘)。
18和19为每磁道扇区数。
20~23为记录本分区的大小。
24~27记录FAT表的大小(可确定根目录的位置)。
2C~2F记录根目录的起始簇号。
30为文件信息系统所在的扇区。
32为DBR的备份的扇区号。
33~34保留。
40为BIOS下记录媒体方式(80表示硬盘)。
42为扩展引导标志(是固定值28或29)。
52~56为版本号。
图5为用WINHEX打开整个硬盘后通过MBR经过扇区计算后得到的C盘DBR地址。
图6(C盘的DBR,FAT格式)图6为用WINHEX直接打开C盘后显示的DBR,两个图是一样。
七、FAT文件系统1、格式化1)低级格式化①测试硬盘介质;②为硬盘划分磁道;③为硬盘的每个磁道按指定的交叉因子间隔安排扇区;④将扇区ID放置到每个磁道上,完成对扇区的设置;⑤对磁盘表面进行测试,对已损坏的磁道和扇区做“坏”标记;⑥给硬盘中的每个扇区写入某一ASCII码字符。
2)高级格式化①从各个逻辑盘指定的柱面开始,对扇区进行逻辑编号(分区内的编号)。
②在基本分区上建立DOS引导记录(DBR),若命令中带有参数“/S”则装入DOS的三个系统文件。
③在各个逻辑盘建立文件分配表(FAT)。
④建立根目录对应的文件目录表(FDT)及数据区。
对于FAT16和FAT32文件系统(NTFS采用不同的文件管理技术,另做介绍),硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA 区。