• b9b8-最好的免费学习资料站!请记住我们的网址:www.b9b8.com
您当前位置: b9b8学习网知识频道电脑学习硬件知识硬盘数据恢复教程

硬盘数据恢复教程

日期:11-27 21:05:05|b9b8学习网| http://www.b9b8.com |硬件知识|人气:722

硬盘数据恢复教程,本站还有更多关于硬件知识,电脑硬件知识,计算机硬件知识,电脑入门,电脑教程相关的资料。www.b9b8.com

前言:此文章从google搜索经鄙人整理而来,并非本人的造诣至此,请勿联系笔者。硬盘数据恢复很大程度依靠运气,无必胜把握,并且不与投入时间成正比,不要寄予太大的希望。请勿轻易拿自己硬盘做实验。建议数据恢复前先用硬盘保护卡对拷到其他硬盘上做一个备份,然后修理备份。(用ghost不行)●硬盘数据恢复,一概论初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR区和DATA区。其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加。主引导扇区主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS 的Fdisk.exe)产生的,不同的操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区病毒)。操作系统引导扇区OBR(OS Boot Record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS 的Format.com)。文件分配表FAT(File Allocation Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份, FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。关于FAT的格式历来有很多选择,Microsoft 的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。目录区DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。数据区DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……)。硬盘分区方式我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。数据存储原理既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题……文件的读取操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。文件的写入当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的动作和上边的读取动作差不多。文件的删除Win9x的文件删除工作却是很简单的,简单到只在目录区做了一点小改动——将目录区的文件的第一个字符改成了E5就表示将改文件删除了。 附录:--------------------------------------------------------------------------------Fdisk和Format的一点小说明和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘完全有可能恢复……系统启动流程各种不同的操作系统启动流程不尽相同,我们这里以Win9x/DOS的启动流程为例。第一阶段:系统加电自检POST过程。POST是Power On Self Test的缩写,也就是加电自检的意思,微机执行内存FFFF0H处的程序(这里是一段固化的ROM程序),对系统的硬件(包括内存)进行检查。第二阶段:读取分区记录和引导记录。当微机检查到硬件正常并与CMOS设置相符后,按照CMOS设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区记录(DPT)和主引导记录(MBR)。第三阶段:读取DOS引导记录。微机正确读取分区记录和主引导记录后,如果主引导记录和分区表校验正确,则执行主引导记录并进一步读取DOS引导记录(位于每一个主分区的第一个扇区),然后执行该DOS引导记录。第四阶段:装载系统隐含文件。将DOS系统的隐含文件IO.SYS入内存,加载基本的文件系统FAT,这时候一般会出现Starting Windows 9x...的标志,IO.SYS将MS.SYS读入内存,并处理System.dat和User.dat文件,加载磁盘压缩程序。第五阶段:实DOS模式配置。系统隐含文件装载完成,微机将执行系统隐含文件,并执行系统配置文件(Config.sys),加载Config.sys中定义的各种驱动程序。第六阶段:调入命令解释程序(Command.com)。系统装载命令管理程序,以便对系统的各种操作命令进行协调管理(我们所使用的Dir、Copy等内部命令就是由Command.com提供的)。第七阶段:执行批处理文件(Autoexec.bat)。微机将一步一步地执行批处理文件中的各条命令。第八阶段:加载Win.com。Win.com负责将Windows下的各种驱动程序和启动执行文件加以执行,至此启动完毕。●硬盘数据恢复,三文件分配表FAT是DOS、Windows9X系统的文件寻址格式,位于DBR之后。在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。当一个磁盘Format后,在其逻辑0扇区(即BOOT扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思义,文件分配表是用来表示磁盘问件的空分配信息的。它不对引导区,文件目录的信息进行表示,也不真正存储文件内容。我们知道磁盘是由一个一个扇区组成的,若干个扇区合为一个簇,文件存取是以簇为单位的,哪怕这个文件只有1个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,每个表项占1.5个字节(磁盘空间在10MB以下)或2个字节(磁盘空间在10MB以上)。为了方便起见,以后所说的表项都是指2个字节的。文件分配表结构如1(H表示16进制)表1第0字节 表头,表磁盘类型。FFH双面软盘,每次道8扇区FEH单面软盘,每磁道8扇区FDH双面软盘,每磁道9扇区FCCH单面软盘,每磁道9扇区FC8H硬盘第1~2字节 (表项号1)表示第一簇状态,因第一簇被系统占据,故此两字节为FFFFH第3~4字节 (表项号2)表示第二簇状态,若为FFFH表此簇为坏的,DOS已标记为不能用;0000H表示此簇为空,可以用;FFF8H表不能示该簇为文件的最后一簇;其余数字表示文件的下一个簇号,注意高字节在后,低字节在前。第5~6字节 (表项号3)表示第三簇状态,同上。注意:不要把表项内的数字误认为表示当前簇号,而应是该文件的下一个簇的簇号。.高字节在后,低字节在前是一种存储数字方式,读出时应对其进行调整。是如两字节12H,34H,应调整为3412H。文件分配表与文件目录(FDT)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师”。当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束,在最后一簇的表项里填上FFF8H,形成单向链表。DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删除,这就是undelete.exe,unerase.exe等一类恢复删除工具能起作用的原因。文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后果。FAT表的定位 硬盘分区的主要结构说明:(Cylinder柱面/磁道-Side磁头-Sector扇区地址以下简称为?-?-?)《主分区》名称 地址 长度(扇区)主引导记录(Main Boot Record) 0-0-1 1系统扇区(System Secotrs) 0-0-2,0-0-63 62引导扇区(Boot) 0-1-1 1FAT16系统中,此扇区包含BPB(BIOS Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。隐藏扇区(Hidden Secotrs):FAT16 0-1-1 1FAT32 0-1-1 32文件分配表(File Allocation Table):FAT16 0-1-2 根据逻辑盘容量变化 FAT32 0-1-33 根据逻辑盘容量变化说明:FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32K字节。逻辑盘容量最大为2047MB。FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节。逻辑盘容量最小为512MB。对于C分区,在MBR的偏移01c2H处,FAT16为06H,FAT32为0CH。有关计算公式为:每个扇区长度=512字节总簇数=逻辑盘容量/簇容量总簇数=FAT表长度(字节)/每个表项长度(字节)-2FAT表长度=逻辑盘容量/簇容量*每个表项长度FAT表的开始由介质描述符+一串“已占用”标志组成:FAT16硬盘----F8 FF FF 7FFAT32硬盘----F8 FF FF 0F FF FF FF 0F每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2文件目录表(File Directory Table),即根目录区,又称为ROOT区:紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项)。如果支持长文件名,则每个表项为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明。数据区(Data Area):紧跟在FDT的下一个扇区,直到逻辑盘的结束地址。《扩展分区》名称 地址 长度(扇区)扩展分区(Extend Partition) ?-y-1 1系统扇区(System Secotrs) ?-y-2,?-y-63 62引导扇区(Boot) ?-(y+1)-1 1其后各项与主分区相同……FAT表引起的读写故障 硬盘文件分配表庞大无法手工修复,只能依靠工具。FAT表记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址。FAT表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT表,如果目前使用的FAT表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT表的长度及第二个FAT表的地址也是不固定的,所以修复时必须正确查找其正确位置,一些工具软件如NU等本身具有这样的修复功能,使用也非常的方便。采用DEBUG也可实现这种操作,即采用其m命令把第二个FAT表移到第一个表处即可(不建议这样做)。如果第二个FAT表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是文本文件则可从中提取出完整的或部分的文件内容。 软盘文件分配FAT表修复在运行某个程序时,有时会在屏幕上看到:File allocation table bad,drive A(文件分配表坏)的错误信息,导致程序不能正常运行。我们知道,在磁盘中有两个文件分配表:FAT1和FAT2。FAT1用于日常工作,FAT2备用。因此,在FAT1损坏时,可用FAT2表修补。具体方法是:运行DEBUG,将FAT2读入缓冲区,用缓冲区的FAT2数据覆盖磁盘中的FAT1。例:修复3寸1.44M软盘,在A驱在DOS环境下进入debug环境在“-”提示符下进行如下操作:-L 100 0 0A 9-W 100 0 1 9-q其它类型的软盘的修复方法参照下表进行。起止逻辑扇区 5.25"低密 5.25"高密 3.5"低密 3.5"高密BOOT区 0 0 0 0FAT1 1-2 1-7 1-3 1-9FAT2 3-4 8-0EH 4-6 0A-12H例如我们要修复5.25"高密软盘的FAT,则需将上述参数改为:-L 100 0 8 7-W 100 0 1 7-q●硬盘数据恢复,二分区表的推算Master Boot RecordThe Master Boot Record is located at the physical beginning of a hard disk, editable using the Disk Editor. It consists of a master bootstrap loader code (446 bytes) and four subsequent, identically structured partition records. Finally, the hexadecimal signature 55AA completes a valid Master Boot Record.硬盘的主引导记录在硬盘的0磁头0柱面1扇区。主引导记录由三部分组成:(1)主引导程序;(2)四个分区表;(3)主引导记录有效标志字。详见表1。[表1主引导记录结构]位 置 内 容 0000H -00D9H 主引导记录代码区 00DAH -01BDH 空闲区 01BEH -01CDH 分区1结构信息 01CEH -01DDH 分区2结构信息 01DEH -01EDH 分区3结构信息 01EEH -01FDH 分区4结构信息 01FEH -01FFH 55 AAH 主 引 导 记 录 有 效 标 志 说明:A,分区表自偏移1BEH处开始,分区表共64个字节,表中可填入四个分区信息,每十六个字节为一个分区说明项,这16个字节含义详见表2。B,必须注意:扇区号的高二位占用柱面号所在字节的最高二位,即柱面号为10位,扇区号6位。The format of a partition record is as follows:Offset Size Description0 8 bit A value of 80 designates an active partition.1 8 bit Partition start head2 8 bit Partition start sector (bits 0-5)3 8 bit Partition start track (bits 8,9 in bits 6,7 of sector)4 8 bit Operating system indicator5 8 bit Partition end head6 8 bit Partition end sector (bits 0-5)7 8 bit Partition end track (bits 8,9 in bits 6,7 of sector)8 32 bit Sectors preceding partitionC 32 bit Length of partition in sectorsOperating system indicators: (hexadecimal, incomplete list)00 Empty partition-table entry01 DOS FAT1204 DOS FAT16 (up to 32 MB)05 DOS 3.3+ extended partition06 DOS 3.31+ FAT16 (over 32 MB)07 OS/2 HPFS, Windows NT NTFS, Advanced Unix08 OS/2 v1.0-1.3, AIX bootable partition, SplitDrive09 AIX data partition0A OS/2 Boot Manager0B Windows 95+ FAT320C Windows 95+ FAT32 (using LBA-mode INT 13 extensions)0E DOS FAT16 (over 32 MB, using INT 13 extensions)0F Extended partition (using INT 13 extensions)17 Hidden NTFS partition1B Hidden Windows 95 FAT32 partition1C Hidden Windows 95 FAT32 partition (using LBA-mode INT 13 extensions)1E Hidden LBA VFAT partition42 Dynamic disk volume50 OnTrack Disk Manager, read-only partition51 OnTrack Disk Manager, read/write partition81 Linux82 Linux Swap partition, Solaris (Unix)83 Linux native file system (ext2fs/xiafs)85 Linux EXT86 FAT16 volume/stripe set (Windows NT)87 HPFS fault-tolerant mirrored partition, NTFS volume/stripe setBE Solaris boot partitionC0 DR-DOS/Novell DOS secured partitionC6 Corrupted FAT16 volume/stripe set (Windows NT)C7 Corrupted NTFS volume/stripe setF2 DOS 3.3+ secondary partition[表2分区结构信息]偏移 长度 含义 00H 1 活动分区指示符,该值为80H表示为可自举分区(仅有一个),该值为00H表示其余分区。 01H 1 分区起始磁头号。02H 1 低6位是分区开始的扇区,高2位是分区开始的柱面的头两位。 03H 1 分区开始的起始柱面号的低8位。04H 1 系统标志,该值为01H表示采用12位FAT格式的DOS 分区,该值04H表示采用16位FAT格式的DOS分区,该值为05H表示为扩展DOS分区,为06H表示为DOS系统。05H 1 分区终止头号 06H 1 低6位为分区结束的扇区号,头2位为结束柱面号的前2位。07H 1 分区结束柱面号的低8位。 08H 4 本分区前的扇区数,低位字节在 前。 0CH 4 本分区总的扇区数,低位字节在前。 重要公式:02H为X,03H为Y。柱面=(X>>6)*16^2+Y;以我的硬盘为例:有九个可用分区,二个不可用分区;两个Primary NTFS分区,第二个为active;七个Extened 分区,第五个为NTFS其他为FAT32..主分区表数据:位置cylinder0, head 0,sector1偏移 0 1 2 3 4 5 6 7 8 9 A B C D E F0 33 C0 8E D0 BC 00 7C FB 50 07 50 1F FC BE 1B 7C1 BF 1B 06 50 57 B9 E5 01 F3 A4 CB BE BE 07 B1 042 38 2C 7C 09 75 15 83 C6 10 E2 F5 CD 18 8B 14 8B3 EE 83 C6 10 49 74 16 38 2C 74 F6 BE 10 07 4E AC4 3C 00 74 FA BB 07 00 B4 0E CD 10 EB F2 89 46 255 96 8A 46 04 B4 06 3C 0E 74 11 B4 0B 3C 0C 74 056 3A C4 75 2B 40 C6 46 25 06 75 24 BB AA 55 50 B47 41 CD 13 58 72 16 81 FB 55 AA 75 10 F6 C1 01 748 0B 8A E0 88 56 24 C7 06 A1 06 EB 1E 88 66 04 BF8 0A 00 B8 01 02 8B DC 33 C9 83 FF 05 7F 03 8B 4E9 25 03 4E 02 CD 13 72 29 BE 59 07 81 3E FE 7D 55A AA 74 5A 83 EF 05 7F DA 85 F6 75 83 BE 2E 07 EBB 8A 98 91 52 99 03 46 08 13 56 0A E8 12 00 5A EBC D5 4F 74 E4 33 C0 CD 13 EB B8 00 00 80 24 45 00D 56 33 F6 56 56 52 50 06 53 1B 00 001C 01 46 07 FE 7F 1E C6 28 11 00 99 31 35 00 80 001D 41 30 07 FE 7F B2 30 85 4A 00 C3 1C 20 00 00 001E 41 B3 0F FE FF FF F3 A1 6A 00 08 FE F7 01 00 001F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA主分区表分析:Master bootstrap loader code0000H -00D9H 33 C0 8E D0 BC 00 7C FB 50 。。。主引导记录代码,表示住分区表01BEH -01CDH 分区1结构信息multi(0)disk(0)rdisk(0)partition(0)知该分区Boot Sector位于:起始磁头为0头,起始柱面为70D,起始扇区为1扇区。01CEH -01DDH 分区2结构信息 multi(0)disk(0)rdisk(0)partition(1)活动分区指示符为80H,表示该分区为可自举分区。系统标志为07表示OS/2 HPFS, Windows NT NTFS, Advanced Unix系统。知该分区Boot Sector位于:起始磁头为0头,起始柱面为304D,起始扇区为1扇区。01DEH -01EDH 分区3结构信息Extended partition系统标志字节为0F,说明是扩展分区Extended partition (using INT 13 extensions)。从扩展分区说明项知下一个分区表位于:起始磁头为0头,起始柱面为435D,起始扇区为1扇区。01EEH -01FDH 分区4结构信息分区说明项数据均为00H没有定义。01FEH -01FFH 55 AAH 主引导记录有效标志扩展分区一分区表数据:位置cylinder435D, head 0,sector1偏移 0 1 2 3 4 5 6 7 8 9 A B C D E F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 001B 00 001C 41 B3 0B FE FF 08 3F 00 00 00 97 D5 53 00 00 001D C1 09 05 FE FF FF D6 D5 53 00 D6 D5 53 00 00 001E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 001F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA扩展分区表分析:01BEH -01CDH 分区1结构信息multi(0)disk(0)rdisk(0)partition(3)知该分区位于:起始磁头为1头,起始柱面为435D,起始扇区为1扇区(分区表占用磁头0)。系统标志字0BH表示 Windows 95+ FAT3201BEH -01CDH 分区1结构信息系统标志字节为05H,说明是扩展DOS分区。于是知下一个分区表位于:起始磁头为0头,起始柱面为777D,起始扇区为1扇区。Partition Table Entry #3 数据均为00H没有定义。Partition Table Entry #4 数据均为00H没有定义。其他扩展分区同理。---------------------------------------------------------------------------------------------------------------------附录:Fdisk的MBR参数MBR 系 FDISK.COM(EXE) 一项未公布的开关,隐含于 MS DOS 3.30,延至 MS DOS 8.0(Windows ME)。实践中,有籍以修复主引导信息,重点在主引导程序。FDISK /MBR 命令流程的分支有二:读得主引导扇区检验标志(字) AA55h,操作单一,仅向主引导扇区位移 0-1BDH 写入当前系统固有的主引导程序,安全可靠。难能可贵的是它不触动主引导信息其余模块(分区表、检验标志),以及随后的 DOS 引导信息、文件分配表、根目录,省事许多。检出检验标志非 AA55h,写主引导程序、初始化分区表及登录检验标志,在 MS DOS 7.0 - 8.0 环境中,常规以系统支持的最大容量分配给基本 DOS 分区的方式登录分区表。分区表初始化(可能幸存的分区表被清除)的后果不难想象; 目前硬盘大都设置有其它分区,即使在高版本 DOS 环境中运作,常规建立的分区表每难能符合实际需求,后续工作量也相当可观。不过,它也不触动位于其后的 DOS 引导信息、文件分配表及根目录,高版本 FDISK /MBR 命令适用于修复仅设基本 DOS 分区的硬盘分区表及检验标志受损,或主引导信息全毁。可见,在运行 FDISK /MBR 命令之前,需查明检验标志是否 AA55h,酌情处理,切忌盲动。经由 DOS 软盘引导,认硬盘,检验标志必健在。另外,在 FDSIK 主菜单中选 4. Display Partition Information,列出分区信息,进一步证实检验标志正常; 若现 No partitition defined,检验标志每变异,而分区表或许尚健在。 ●硬盘数据恢复,深入逻辑分区现在深入每一个逻辑分区。逻辑分区结构如下:FAT12/16Logical sector =0 Logical sector=1(Floppy disk=1~9) Logical sector=1+sectors_per_FAT(Floppydisk=10~18) Logical sector=1+sectors_per_FAT*2(Floppy disk=19~32) Logical sector=1+sectors_per_FAT*2+sectors_of_rootdirectories(Floppy disk=33~)DOS Boot Sector FAT1 FAT2 ROOT Directory Data area(where files and subdirectories are stored)FAT32Usually 32 sectors Logical sector =0032h Logical sector =0032h+ 2*sectors_per_FATDOS Boot Recore 3 Sectors Reserved sectors Copy of record Reserve sectors FAT1 FAT2 Data area(where files and all bdirectories are stored)在逻辑分区当中用逻辑的cluster和sector。换算关系为:cluster=logical_sector/sectors_per_cluster;这里sectors_per_cluster是在BIOS Parameter Block里得到的。Sector=( logical_sector mod sectors_per_track)+1;Head=( logical_sector / sectors_per_track)mod total_heads;Cylinder= logical_sector(sectors_per_track* total_heads);logical_sector=( cluster-2)*sectors_per_cluster+sector_of_file_area_offset;logical_sector=(sector-1)+head*sector_per_track+sector*sector_per_track*heads;每个扇区长度=512字节总簇数=逻辑盘容量/簇容量总簇数=FAT表长度(字节)/每个表项长度(字节)-2FAT表长度=逻辑盘容量/簇容量*每个表项长度Dos引导记录块位于逻辑0 sector中包含三部分:(1) 磁盘IO参数表BPB;(2) 磁盘基数表;(3) 引导区代码。FAT16的BPB(BIOS Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。典型的primary partion 的磁盘IO参数表BPB:典型的 logical partion 磁盘参数表:硬盘BPB主要结构说明:(Cylinder柱面/磁道-Side/Head磁头-Sector扇区地址以下简称为?-?-?)主分区名称 地址 长度(扇区)主引导记录(Main Boot Record) 0-0-1 1系统扇区(System Secotrs) 0-0-2,0-0-63 62引导扇区(Boot) 0-1-1 1扩展分区 名称 地址 长度(扇区)扩展分区(Extend Partition) ?-y-1 1系统扇区(System Secotrs) ?-y-2,?-y-63 62引导扇区(Boot) ?-(y+1)-1 1其后各项与主分区相同…… 隐藏扇区(Hidden Secotrs):FAT16 0-1-1 1FAT32 0-1-1 32文件分配表(File Allocation Table):FAT16 0-1-2 根据逻辑盘容量变化 FAT32 0-1-33 根据逻辑盘容量变化说明:FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32K字节。 逻辑盘容量最大为2047MB。FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节。逻辑盘容量最小为512MB。对于C分区,在MBR的偏移01c2H处,FAT16为06H,FAT32为0CH。FAT是DOS、Windows9X系统的文件寻址格式,位于DBR之后。在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。当一个磁盘Format后,在其逻辑0扇区(即BOOT扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思义,文件分配表是用来表示磁盘问件的空分配信息的。它不对引导区,文件目录的信息进行表示,也不真正存储文件内容。我们知道磁盘是由一个一个扇区组成的,若干个扇区合为一个簇,文件存取是以簇为单位的,哪怕这个文件只有1个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,每个表项占1.5个字节(磁盘空间在10MB以下)或2个字节(磁盘空间在10MB以上)。为了方便起见,以后所说的表项都是指2个字节的。FAT表的开始由介质描述符+一串“已占用”标志组成:FAT16硬盘----F8 FF FF 7FFAT32硬盘----F8 FF FF 0F FF FF FF 0F每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2文件分配表结构如1(H表示16进制)表1第0字节 表头,表磁盘类型。FFH双面软盘,每次道8扇区FEH单面软盘,每磁道8扇区FDH双面软盘,每磁道9扇区FCCH单面软盘,每磁道9扇区FC8H硬盘第1~2字节 (表项号1)表示第一簇状态,因第一簇被系统占据,故此两字节为FFFFH第3~4字节 (表项号2)表示第二簇状态,若为FFFH表此簇为坏的,DOS已标记为不能用;0000H表示此簇为空,可以用;FFF8H表不能示该簇为文件的最后一簇;其余数字表示文件的下一个簇号,注意高字节在后,低字节在前。第5~6字节 (表项号3)表示第三簇状态,同上。注意:不要把表项内的数字误认为表示当前簇号,而应是该文件的下一个簇的簇号。.高字节在后,低字节在前是一种存储数字方式,读出时应对其进行调整。是如两字节12H,34H,应调整为3412H。文件分配表与文件目录(FDT)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师”。当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束,在最后一簇的表项里填上FFF8H,形成单向链表。DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删除,这就是undelete.exe,unerase.exe等一类恢复删除工具能起作用的原因。文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后果。典型的FAT32表:F8 FF FF FF FF FF FF FF 96 C4 00 00 FF FF FF 0FFF FF FF 0F 06 00 00 00 FF FF FF 0F 08 00 00 0009 00 00 00 0A 00 00 00 0B 00 00 00 0C 00 00 000D 00 00 00 0E 00 00 00 0F 00 00 00 10 00 00 00FF FF FF 0F 00 00 00 00 FF FF FF 0F 14 00 00 0015 00 00 00 FF FF FF 0F FF FF FF 0F FF FF FF 0F19 00 00 00 1A 00 00 00 1B 00 00 00 FF FF FF 0F00 00 00 00 1E 00 00 00 FF FF FF 0F 20 00 00 00FF FF FF 0F 22 00 00 00 23 00 00 00 24 00 00 0025 00 00 00 26 00 00 00 27 00 00 00 28 00 00 00文件目录表(File Directory Table),即根目录区,又称为ROOT区:紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项)。如果支持长文件名,则每个表项为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明。值得注意的是:1,FAT32没有储存目录的目录区,而 FAT16储存根目录并把子目录放到数据区。2,表示目录的目录项指出根目录地址同时长度字节为0,表示文件的目录项指出数据地址。典型的FAT32根目录:30 30 30 30 30 30 20 20 20 20 20 10 00 12 3C 7C39 2B 39 2B 05 00 3D 7C 39 2B 3A 34 00 00 00 0044 4D 32 4B 44 49 53 4B 49 4D 47 20 00 96 DB 4039 2B 39 2B 0A 00 DC 40 39 2B 88 02 5B 72 13 0042 49 4E 42 49 4E 20 20 20 20 20 08 00 00 00 0000 00 00 00 00 00 47 65 09 2B 00 00 00 00 00 00000000子目录注意OS7前的怪字符为E5H,表示被删除,被删除文件仍旧能够找到开始簇,数据恢复就依靠这一特点。数据区(Data Area): 紧跟在FDT的下一个扇区,直到逻辑盘的结束地址。由上图可以想到,即使目录被破坏仍旧可能从磁盘里把信息读出。到现在为止,硬盘数据结构的理论部分已经讲完。数据恢复主要是手动找出FAT、目录、数据的对应关系或直接找到数据,现在已经有完善的磁盘编辑器帮助我们做到这一点,使工作大大简化了。有只能化的恢复工具能不依靠FAT而恢复被删除文件,比如RECOVERNT,估计是依靠Win2000的文件使用记录。这种方法在冲启动之前恢复文件的。

如果觉得硬盘数据恢复教程不错,可以推荐给好友哦。
本文Tags:电脑学习 - 硬件知识,电脑硬件知识,计算机硬件知识,电脑入门,电脑教程,

+评论

☉本站为非营利性站点,所有资源均是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。如果您觉得满意,请购买正版!

联系本站 - 教案中心 - 试题下载 - 教学反思 - 句子大全 - 收藏本站 - 文章阅读 - 全站地图 - 热门专题