MBR位于硬盘第一个物理扇区(绝对扇区)柱面0,磁头0,扇区1处。由于DOS是由柱面0,磁头1,扇区1开始,故MBR不属于 DOS扇区,DOS不能直接访问。MBR中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区。记录区就是记录有关分区信 息的一张表。它从主引导记录偏移地址01BEH处连续存放,每个分区记录区占16个字节。 分区表的格式 分区表项的偏移 意义占用字节数 00 引导指示符 1B 01 分区引导记录的磁头号 1B 02 分区引导记录的扇区和柱面号 2B 04 系统指示符 1B 05 分区结束磁头号 1B 06 分区结束扇区和柱面号 2B 08 分区前面的扇区数 4B 0C 分区中总的扇区数 4B 4个分区中只能有1个活跃分区,即C盘。标志符是80H在分区表的第一个字节处。若是00H则表示非活跃分区。例如: 80 01 01 00 0B FE 3F 81 3F 00 00 00 C3 DD 1F 00 00 00 01 82 05 FE BF 0C 02 DE 1F 00 0E 90 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 要点:(1)MBR位于硬盘第一个物理扇区柱面0,磁头0,扇区1处。不属于DOS扇区, (2)主引导记录分为硬盘的主引导程序和硬盘分区表。 6.DBR DBR位于柱面0,磁头1,扇区1,即逻辑扇区0。DBR分为两部分:DOS引导程序和BPB(BIOS参数块)。其中DOS引导程序完成DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载,而BPB用来描述本DOS分区的磁盘信息,BPB位于DBR偏移0BH处,共13字节。 它包含逻辑格式化时使用的参数,可供DOS计算磁盘上的文件分配表,目录区和数据区的起始地址,BPB之后三个字提供物理格式化(低格)时采用的一些参数。引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(DOS扇区号)转换成物理地址(绝对扇区号)。 BPB格式序号 偏移地址 意义 1 03H-0AH OEM号 2 0BH-0CH 每扇区字节数 3 0DH 每簇扇区数 4 0EH-0FH 保留扇区数 5 10H FAT备份数 6 11H-12H 根目录项数 7 13H-14H 磁盘总扇区数 8 15H 描述介质 9 16H-17H 每FAT扇区数 10 18H-19H 每磁道扇区数 11 1AH-1BH 磁头数 12 1CH-1FH 特殊隐含扇区数 13 20H-23H 总扇区数 14 24H-25H 物理驱动器数 15 26H 扩展引导签证 16 27H-2AH 卷系列号 17 2BH-35H 卷标号 18 36H-3DH 文件系统号 DOS引导记录公式: 文件分配表≡保留扇区数 根目录≡保留扇区数+FAT的个数×每个FAT的扇区数 数据区≡根目录逻辑扇区号+(32×根目录中目录项数+(每扇区字节数-1))DIV每扇区字节数 绝对扇区号≡逻辑扇区号+隐含扇区数 扇区号≡(绝对扇区号MOD每磁道扇区数)+1 磁头号≡(绝对扇区号DIV每磁道扇区数)MOD磁头数 磁道号≡(绝对扇区号DIV每磁道扇区数)DIV磁头数 要点:(1)DBR位于柱面0,磁头1,扇区1,其逻辑扇区号为0 (2)DBR包含DOS引导程序和BPB。 (3)BPB十分重要,由此可算出逻辑地址与物理地址。 7.文件分配表 文件分配表是DOS文件组织结构的主要组成部分。我们知道DOS进行分配的最基本单位是簇。文件分配表是反映硬盘上所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。DOS在给一个文件分配空间时总先扫描FAT,找到第一个可用簇,将该空间分配给文件,并将该簇的簇号填到目录的相应段内。即形成了簇号链。FAT就是记录文件簇号的一张表。 FAT的头两个域为保留域,对FAT12来说是3个字节,FAT来说是4个字节。其中头一个字节是用来描述介质的,其余字节为FFH 。介质格式与BPB相同。 第一个字节的8位意义: 7 6 5 4 3 2 1 0 └─────-┘ │ │ │┌0非双面 置1 │ │ └┤ │ │ └1双面 │ │┌0不是8扇区 │ └┤ │ └1是8扇区 │┌0不是可换的 └┤ └1是可换的 FAT结构含义 FAT12 FAT16 意义 000H 0000H 可用 FF0H-FF6H FFF0H-FFF6H 保留 FF7H FFF7H 坏 FF8H-FFFH FFF8H-FFFFH 文件最后一个簇 ×××H ××××H 文件下一个簇 对于FAT16,簇号×2作偏移地址,从FAT中取出一字即为FAT中的域。 逻辑扇区号=数据区起始逻辑扇区号+(簇号-2)×每簇扇区数 簇号=(逻辑扇区号-数据区起始逻辑扇区号)DIV每簇扇区数+2 要点: (1)FAT反映硬盘上所有簇的使用情况,它记录了文件在硬盘中具体位置(簇)。 (2)文件第一个簇号(在目录表中)和FAT的该文件的簇号串起来形成文件的簇号链,恢复被破坏的文件就是根 据这条链。 (3)由簇号可算逻辑扇区号,反之,由逻辑扇区号也可以算出簇号,公式如上。 (4)FAT位于DBR之后,其DOS扇区号从1开始。 8.文件目录 文件目录是DOS文件组织结构的又一重要组成部分。文件目录分为两类:根目录,子目录。根目录有一个,子目录可以有多个。子目录下还可以有子目录,从而形成树状的文件目录结构。子目录其实是一种特殊的文件,DOS为目录项分配32字节。目录项分为三类:文件,子目录(其内容是许多目录项),卷标(只能在根目录,只有一个。目录项中有文件(或子目录,或卷标)的名字,扩展名,属性,生成或最后修改日期,时间,开始簇号,及文件大小。 目录项的格式 字节偏移 意义 占字节数 00H 文件名 8B 08H 扩展名 3B 0BH 文件属性 1B 0CH 保留 10B 16H 时间 2B 18H 日期 2B 1AH 开始簇号 2B 1CH 文件长度 4B 目录项文件名区域中第一个字节还有特殊的意义:00H代表未使用 05H代表实际名为E5H EBH代表此文件已被删除 目录项属性区域的这个字节各个位的意义如下: 7 6 5 4 3 2 1 0 未 修 修 子 卷 系 隐 只 用 改 改 目 标 统 藏 读 标 标 录 属 属 属 志 志 性 性 性 注意:WINDOWS的长文件名使用了上表中所说的保留这片区域。 要点: (1)文件目录是记录所有文件,子目录名,扩展名属性,建立或删除最后修改日期。文件开始簇号及文件长度的一张登记表. (2)DOS中DIR列出的内容训是根据文件目录表得到的。 (3)文件起始簇号填在文件目录中,其余簇都填在FAT中上一簇的位置上。 第三部分--附录 每个用户的硬盘中都存放着大量的有用数据,而硬盘又是一个易出毛病的采诵宁。为了有效的保存硬盘中的数据,除了有效的保存硬盘中的数据,备份工作以外,还要学会在硬盘出现故障时如何救活硬盘,或者提取其中的有用数据,把损失降到最小程度。 1、系统不承认硬盘 此类故障比较常见,即从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无法发现硬盘的存在。这种故障大都出现在连接电缆或IDE口端口上,硬盘本身的故障率很少,可通过重新插拔硬盘电缆或者改换IDE口及电缆等进行替换试验,可很快发现故障的所在。如果新接上的硬盘不承认,还有一个常见的原因就是硬盘上的主从条线,如果硬盘接在IDE的主盘位置,则硬盘必须跳为主盘状,跳线错误一般无法检测到硬盘。 2、CMOS引起的故障 CMOS的正确与否直接影响硬盘的正常使用,这里主要指其中的硬盘类型。好在现在的机器都支持IDEautodetect的功能,可自动检测硬盘的类型。当连接新的硬盘或者更换新的硬盘后都要通过此功能重新进行设置类型。当然,现在有的类型的主板可自动识别硬盘的类型。当硬盘类型错误时,有时干脆无法启动系统,有时能够启动,但会发生读写错误。比如CMOS中的硬盘类型小于实际的硬盘容量,则硬盘后面的扇区将无法读写,如果是多分区状态则个别分区将丢失。还有一个重要的故障原因,由于目前的IDE都支持逻辑参数类型,硬盘可采用Normal、LBA、Large等。如果在一般的模式下安装了数据,而又在CMOS中改为其他的模式,则会发生硬盘的读写错误故障,因为其物理地质的映射关系已经改变,将无法读取原来的正确硬盘位置。 3、主引导程序引起的启动故障 硬盘的主引导扇区是硬盘中的最为敏感的一个采诵宁,其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软区或光区之后可对硬盘进行读写。修复此故障的方法较为简单,使用高版本DOS的fdisk最为方便,当带参数/mbr运行时,将直接更换(重写)硬盘的主引导程序。实际上硬盘的主引导扇区正是此程序建立的,fdisk.exe之中包含有完整的硬盘主引导程序。虽然DOS版本不断更新,但硬盘的主引导程序一直没有变化,从DOS3.x到目前有winDOS95的DOS,所以只要找到一种DOS引导盘启动系统并运行此程序即可修复。 4、分区表错误引导的启动故障 分区表错误是硬盘的严重错误,不同错误的程度会造成不同的损失。如果是没有活动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过fdisk重置活动分区进行修复。如果是某一分区类型错误,可造成某一分区的丢失。分区表的第四个字节为分区类型值,正常的可引导的大于32mb的基本DOS分区值为06,而扩展的DOS分区值是05。如果把基本DOS分区类型改为05则无法启动系统,并且不能读写其中的数据。如果把06改为DOS不识别的类型如efh,则DOS认为改分区不是DOS分区,当然无法读写。 很多人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正常。分区表中还有其他数据用于纪录分区的起始或终止地址。这些数据的损坏将造成该分区的混乱或丢失,一般无法进行手工恢复,唯一的方法是用备份的分区表数据重新写回,或者从其他的相同类型的并且分区状况相同的硬盘上获取分区表数据,否则将导致其他的数据永久的丢失。在对主引导扇区进行操作时,可采用nu等工具软件,操作非常的方便,可直接对硬盘主引导扇区进行读写或编辑。当然也可采用debug进行操作,但操作繁琐并且具有一定的风险。 5、分区有效标志错误引起的硬盘故障 在硬盘主引导扇区中还存在一个重要的部分,那就是其最后的两个字节:55aah,此字为扇区的有效标志。当从硬盘,软盘或光区启动时,将检测这两个字节,如果存在则认为有硬盘存在,否则将不承认硬盘。此标志时从硬盘启动将转入rombasic或提示放入软盘。从软盘启动时无法转入硬盘。此处可用于整个硬盘的加密技术。可采用debug方法进行恢复处理。另外,DOS引导扇区仍有这样的标志存在,当DOS引导扇区无引导标志时,系统启动将显示为:missingoperatingsystem。其修复的方法可采用的主引导扇区修复方法,只是地址不同,更方便的方法是使用下面的DOS系统通用的修复方法。 6、DOS引导系统引起的启动故障 DOS引导系统主要由DOS引导扇区和DOS系统文件组成。系统文件主要包括io.sys、msdos.sys、command.com,其中command.com是DOS的外壳文件,可用其他的同类文件替换,但缺省状态下是DOS启动的必备文件。在Windows95携带的DOS系统中,msdos.sys是一个文本文件,是启动windows必须的文件。但只启动DOS时可不用此文件。但DOS引导出错时,可从软盘或光盘引导系统,之后使用sysc:传送系统即可修复故障,包括引导扇区及系统文件都可自动修复到正常状态。 7、fat表引起的读写故障 fat表纪录着硬盘数据的存储地址,每一个文件都有一组连接的fat链指定其存放的簇地址。fat表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个fat表,如果目前使用的fat表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其fat表的长度及第二个fat表的地址也是不固定的,所以修复时必须正确查找其正确位置,由一些工具软件如nu等本身具有这样的修复功能,使用也非常的方便。采用debug也可实现这种操作,即采用其m命令把第二个fat表移到第一个表处即可。如果第二个fat表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用chkdsk或scandisk命令进行修复,最终得到*.chk文件,这便是丢失fat链的扇区数据。如果是文本文件则可从中提取并可合并完整的文件,如果是二进制的数据文件,则很难恢复出完整的文件。 8、目录表损坏引起的引导故障 目录表纪录着硬盘中文件的文件名等数据,其中最重要的一项是该文件的起始簇号,目录表由于没有自动备份功能,所以如果目录损坏将丢失大量的文件。一种减少损失的方法也是采用上面的chkdsk或scandisk程序的方法,从硬盘中搜索出chk文件,由目录表损坏时是首簇号丢失,在fat为损坏的情况下所形成的chk文件一般都比较完整的文件数据,每一个chk文件即是一个完整的文件,把其改为原来的名字可恢复大多数文件。 9、误删除分区时数据的恢复 当用fdisk删除了硬盘分区之后,表面现象是硬盘中的数据已经完全消失,在未格式化时进入硬盘会显示无效驱动器。如果了解fdisk的工作原理,就会知道,fdisk只是重新改写了硬盘的主引导扇区(0面0道1扇区)中的内容。具体说就是删除了硬盘分区表信息,而硬盘中的任何分区的数据均没有改变,可仿造上述的分区表错误的修复方法,即想办法恢复分区表数据即可恢复原来的分区即数据,但这只限于除分区或重建分区之后。如果已经对分区用format格式化,在先恢复分区后,在按下面的方法恢复分区数据。 10、误格式化硬盘数据的恢复 在DOS高版本状态下,格式化操作format在缺省状态下都建立了用于恢复格式化的磁盘信息,实际上是把磁盘的DOS引导扇区,fat分区表及目录表的所有内容复制到了磁盘的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变。这样通过运行unformatc:即可恢复原来的文件分配表及目录表,从而完成硬盘信息的恢复。另外DOS还提供了一个miror命令用于纪录当前的磁盘的信息,供格式化或删除之后的恢复使用,此方法也比较有效。 硬盘基本知识 9.物理驱动器与逻辑驱动器 物理驱动器指实际安装的驱动器。 逻辑驱动器是对物理驱动器格式化后产生的。 要点:同上。 硬盘逻辑锁巧解 在谈论具体的解决方法前,先讲述一下被逻辑锁锁住的硬盘为什么不能用普通办法启 动的原因: 计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引导扇区的分区表信息,位于硬盘的零头零柱面的第一个扇区的OBEH地址开始的地方,当分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义 为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘, 以此类推找到E,F,G..... 逻辑锁就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向 自己,DOS在启动时查找到第一个逻辑后,查找下个逻辑盘总是找到是自己,这样一来 就形成了死循环,这就是使用软驱,光驱,双硬盘都不能正常启动的原因。实际上这逻辑锁只是利用了DOS在启动时的一个小小缺陷,便令不少高手都束手无策。知道了逻辑锁的上锁原理,要解锁也就比较容易了。以前我看到有位朋友采用热拔插硬盘电源的方法来处理:就是在当系统启动时,先不给被锁的硬盘插上电源线,等待启动完成后再给硬盘热插上电源线,这时如果硬盘没有烧坏的话,系统就可以控制硬盘了。当然这是一种非常危险的方法,大家不要轻易尝试,下面介绍两种比较简单和安全的处理方法。 方法一:修改DOS启动文件 首先准备一张DOS6.22的系统盘,带上debug、pctools5.0、fdisk等工具。然后在一台正常的机器上,使用你熟悉的二进制编辑工具(debug、pctools5.0,或者windows下的ultraedit都行)修改软盘上的IO.SYS文件(修改前记住改该文件的属性为正常),具体是在这个文件里面搜索第一个55aa字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被黑客程序给恶意修改了,你无法用FDISK来删除和修改分区,而且仍无法用正常的启动盘启动系统,这时你可以用DEBUG来手工恢复。使用DEBUG手工修复硬盘步骤如下: a:\ >debug -a -xxxx:100 mov ax,0201 读一个扇区的内容 -xxxx:103 mov bx,500 设置一个缓存地址 -xxxx:106 mov cx,0001 设置第一个硬盘的硬盘指针 -xxxx:109 mov dx,0080 读零磁头 -xxxx:10c int 13 硬盘中断 -xxxx:10e int 20 -xxxx:0110 退出程序返回到指示符 -g 运行 -d500 查看运行后500地址的内容 这时候会发现地址6be开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使DOS或WINDOWS启动时查找硬盘逻辑盘进去死循环,在DEBUG指示符下用E命令修改内存数据 具体如下: E6BE xx.0 xx.0 xx.0............... ............................. .......................55 AA 55 AA表示硬盘有效的标记,不要修改,xx0表示把以前的数据xx改成0 再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下: A:\ >debug a 100 表示修改100地址的汇编指令 -xxxx:100 mov ax,0301 写硬盘一个扇区 -xxxx: 这里直接按回车 -g 运行 -q 退出 然后运行 FDISK/MBR(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。 怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的数据!如果你不需要保数据的话,还有更加简单的处理方法: 方法二:巧设BIOS,用DM解锁大家知道DM软件是不依赖于主板BIOS的硬盘识别安装软件,(所以在不能识别大硬盘的老主板上也可用DM来安装使用大容量硬盘)。就算在BIOS中将硬盘设为NONE,DM也可识别并处理硬盘。 首先你要找到和硬盘配套的DM软件(找JS要或去网上荡),然后把DM拷到一张系统盘上。接上被锁硬盘,开机,按住DEL键,进CMOS设置,将所有IDE硬盘设为NONE(这是关键所在!),保存设置,重启动,这时系统即可 带锁启动。启动后运行DM,你会发现DM可以绕过BIOS,识别出硬盘,选中该硬盘,分区格式化,就OK了。这么简单?不过这种 方法的弱点是硬盘上的数据将全部丢失。 希望你能成为一名维修电脑的高手!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|