磁盘逻辑错误的修复.doc_第1页
磁盘逻辑错误的修复.doc_第2页
磁盘逻辑错误的修复.doc_第3页
磁盘逻辑错误的修复.doc_第4页
磁盘逻辑错误的修复.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

发信人:cnstars(新思),信区:Windows9x_3x标题:硬盘分区逻辑错误的修复发信站:BBS水木清华站(FriNov2909:40:162002)(集星先锋网新思)本人的多次体验的结果,供大家参考使用。基本定义硬盘分区记录MBR表:位于硬盘分区第0扇区用于引导硬盘分区的含有分区表的扇区。硬盘引导记录IO表:位于硬盘分区第63扇区用于引导逻辑磁盘且含有磁盘IO参数的扇区。硬盘主引导分区:用于引导操作系统的分区,一个硬盘只能有一个主引导分区。硬盘扩展分区:用于管理一个或多个逻辑磁盘分区的分区,系统不能直接使用。硬盘逻辑分区:可供系统直接使用其扇区的硬盘分区。硬盘逻辑磁盘:被系统利用的硬盘逻辑分区的系统管理部分。基础知识1、硬盘0扇区及硬盘总扇区倒数的第100个扇区备份有硬盘的主引导分区表。2、硬盘63扇区及硬盘总扇区倒数的第99扇区备份有硬盘的主引导扇区,即磁盘的I/0参数表。3、一般用FDISK分区的FAT32类型的硬盘在此分区的第69扇区处会有一个备份的引导扇区的信息。4、硬盘分区结构顺序:(PARTBOOT(保留扇区)FAT2ROOTDATA)。5、文件分配表FAT首部含有十六进制数0000F8FFFF0F(不含前导符0000)。6、文件目录表FDT中含有分区根目录下的目录名和文件名,如command和recycled。7、被FDISK处理后的BOOT区,内容全为十六进制F6,同时FDISK所备份FAT32的BOOT扇区也被清空为F6,再翻到BOOT扇区32位置,会有FAT表标志F8FFFF0F。分区记录800101000BFE7FBE3F000000C0926D00000041BF0FFEFFFEFF926D00FC0CF501每个表项16字节,低位在前高位在后,各字节的含义如下:第00字节:为引导标志项,值应为00或80第0103字节:为分区开始的磁头、扇区、柱面号。第04字节:为分区系统标志,值05为逻辑分区记录中的扩展分区、06为FAT16分区、0B为FAT32分区、0F为主分区记录中的扩展分区。第0507字节:分区结束的磁头、扇区、柱面号。第0811字节:逻辑分区前隐藏的扇区数或扩展分区前已用的扇区数。第1215字节:所指向的分区所含的扇区数(扩展分区项应包含隐藏的63个扇区)。引导记录1、引导记录各字节的含义:第0002字节:一个JMP(jump,跳转)指令,使启动的程序跳过磁盘I/O数据而继续进行,一般为EB5890。第030A字节:OEM名称和版本号,传送系统即可解决;第0B0C字节:每个扇区的字节数,一般为0002表示每个扇区有512字节,把十进制512转换成十六进制0200h,字组内前后位(byte)交换,即0002,所以此处为0002;第0D字节:20为每个簇的扇区数(目录扇区数),得出方法,按F4搜索字符串Command(此为C盘根目录下的一个文件名),最后在28705扇区找到了这字符串,然后往后翻页,数一下有几个目录扇区数,结果在28737扇区发现已经不是目录区了,所以,目录扇区数2873728075=32个扇区,十进制32转换成十六进制20h,所以此处为20;第0E0F字节:2000为保留扇区数,保留扇区为引导记录BOOT至FAT1间的扇区,此数算法:95(FAT1的开始扇区,按F4搜索字符串0000F8FFFF0F,即FAT表前几个字节)63(隐含扇区)32,把十进制32转换成十六进制0020h,字组内前后位(byte)交换得:2000,所以此处为2000;第10字节:02为FAT表的份数,一般FAT32位的有2份,所以为02;第1112字节:根目录项数第1314字节:磁盘分区的总扇区数(小于2G的分区),FAT32位时应为0第15字节:F8为介质描述;第1617字节:每个文件分配表的扇区数,FAT32位的此处应为0第1819字节:每个磁道的扇区数。3F00为每道的扇区数,开头显示:Sector=63,此63即每道的扇区数,将十进制63转换成十六进制003Fh,字组内前后位(byte)交换得3F00,所以此处为3F00;第1A1B字节:磁头数。FF00为磁头数目,开头显示:Head=25,此数即为物理磁头数,但大于8G硬盘其逻辑磁头数为255,将十进制255转换成十六进制00FFh,字组内前后位(byte)交换得FF00,所以此处为FF00.第1C1F字节:隐藏扇区数。3F000000为隐藏扇区数,这里记录着分区记录及其后面空扇区的总数,有63个扇区,把十进制63转换成十六进制0000003Fh,字组内前后位(byte)交换得3F000000,所以此处为3F000000。第2023字节:为分区的扇区总数(大于2G的分区)。此数值和分区记录中的分区扇区数是一样的。第2427字节:在FAT32中为每个FAT的扇区数,算法:(目录扇的开始扇区号隐含扇区63保留扇区32)21405,此数就是每个FAT的扇区数,再将此十进制1405转换成十六进制37E1h,字组内前后位(byte)交换,得E1370000,所以此处为E1370000;在FAT16中其四个字节先后表示为驱动器数、保留区、扩展引导记录标识、系列号。第282B字节:FAT32中此处应为0第2C2F字节:FAT32中为根目录所在簇数02000000,簇计数从2开始,根目录所在的簇值一般为2簇,为00000002h,字组内前后位(byte)交换得02000000,所以此处为02000000;第3031字节:FAT32中为文件系统信息扇区数0100,此文件系统信息扇区为1扇区,为0001h,字组内前后位(byte)颠倒得0100,所以此处为0100;第3233字节:FAT32中为系统每个引导扇区的扇区数0600,系统引导扇区位于系统的保留扇区范围之内且有一个副本,一般FAT32中引导扇区有62个扇区,即63至75为0006h,字组内前后位(byte)颠倒得0600,所以此处为0600;第343F字节:FAT32中为系统保留FAT16中第2835字节为卷标;第363D字节为文件系统类型;第3EFF字节为DOS加载代码。第40字节:FAT32中为磁盘编号80(第一个硬盘为80h);第41字节:FAT32中为系统保留第4246字节:FAT32中为扩展的引导扇区特征码及系统安装序列号等29,这部份可用标准的硬盘照搬过来。第4751字节:FAT32中为系统的卷标号第5259字节:FAT32中为文件分配表FAT的类型提示符。文件分配表FAT文件分配表FAT扇区数的计算:假设E盘分区表位置33077835扇区及E盘BOOT区33077898扇,又知道了E盘FAT表1的起始位置是第33077930扇区,FAT表2的起始位置是第33087718扇区,还有ROOT区的起始位置是33097506扇区。最简单的方法是ROOT区的起始位置减去FAT2的起始位置:33097506330877189788道ROOT区所在位置的情况下,用FAT2的起始位置减去FAT1的起始位置:33087718330779309788还有一种方法是ROOT区的起始位置减去FAT表1的起始位置,再除以2:(3309750633077930)29788文件目录表FDT按下回车查看该页是否为目录区。若是则记下该页扇区数,若不是则继续查找。文件目录表FDT最明显的特征是可以看到分区根目录下的目录名和文件名,如command和recycled,汉字为乱码。如果目录区在第19625扇区。需做如下计算:(扇区数6332)/2(196256332)/29765换算为十六进制(用F7)2625高低换位2526。将所得到的2526与表二中第2425字节142D比较,发现表二中该数错误。此时将142D改为2526。(FAT32如上计算,FAT16有所不同。)故障分析硬盘分有C盘3.676G装操作系统、D盘6.292G装办公软件、E盘6.292G存有大量文档数据、F盘4.227G备份软件和系统的Ghost镜像文件。系统引导进入windows时,C、D、E、F四个盘均可见,且操作正常。一次用克隆软件恢复C盘系统时出现错误后,系统不能从硬盘引导启动,系统启动时出现emdisk;diski/oerror等提示信息。用干净的A盘引导可以看到C、D两盘,但C盘上的文件全无且容量变大了许多,E、F盘不可见,且查看E、F分区时,系统提示:Invaliddrivespecfication(无法判断硬盘规格)。用Fdisk查看分区表,显示主分区与扩展分区项的值正常,而查看逻辑盘时则显示Nologicaldriversdefined。根据这些提示,判断可能是硬盘分区表有问题,或C盘引导记录的I/O参数出错。由于C盘的容量变大,若直接对C盘格式化可能会影响到D盘上的数据,故不能直接采用格式化C盘重装系统。根据经验分析,要修复该硬盘可以考虑如下方案:1、重新对硬盘分区、格式化并重装操作系统和应用软件。2、重新修正C盘引导记录上的磁盘I/O参数,重新格式化C盘后重装系统。即手工清除C盘上引导记录扇区数据,将它的值用F6填充,重新启动后再格式化C盘并重装系统。或找回C盘正确的引导记录扇区在硬盘上的备份,并用它修复而后重新启动格式化C盘再重装系统。3、检查修复各分区的分区记录扇区数据,使E、F盘在DOS下可见,再用克隆软件调出在F盘上的镜像文件来修复C盘系统,从而使得C盘系统正常运行。前面两种方法的工作量大,且可能造成丢失数据。第3种方法可以确保原D、E、F盘数据完整及C盘系统正常运行,且技术难度和时间要求不大,只是要求掌握分区记录的相关知识。因此在这里将采用第3种方法修复硬盘。故障修复以下将使用KV3000杀毒工具软件来检查修复各分区的分区记录内容:1、用KV3000启动系统并进入F6的磁盘救护箱功能。再按F6和F1进入TestLogicalHardDiskPartition,将显示如下:分区容量分区扇区数分区字节数分区记录位置DiskC:3.676G071809923676667904in0DiskD:6.292G122896626399235584in07181055DiskE:6.292G122896626399235584in19470780DiskF:4.227G082573474013904384in317605052、根据以上提供的分区记录的位置,再用F3功能查看各分区记录的内容,查看过程发现各分区位置正确。各分区记录内容如下:PartC:(主引导分区记录)800101000BFE7FBE3F000000C0926D00(主分区项)000041BF0FFEFFFFFF926D00FC0CF501(主扩展分区项)PartD:(1)(逻辑分区记录)000141BF0BFE3FBB3F0000007E86BB00(逻辑盘分区项)000001BC0FFEFFB8BD86BB00BD86BB00(逻辑扩展区项)PartE:(2)(逻辑分区记录)000101BC0BFEFFB83F0000007E86BB00(逻辑盘分区项)0000C1B90FFE7FBA7A0D770182FF7D00(逻辑扩展区项)PartF:(3)(逻辑分区记录)0001C1B90BFE7FBA3F00000043FF7D00(逻辑盘分区项)3、检查各分区记录内容的准确性,看看是否是因为分区记录表中指定的分区信息正确与否。对于扩展分区记录中的扩展分区项各选项的特点说明如下:(1)、开始和结束的磁头、扇区、柱面与下一扩展分区记录中的逻辑分区项的值基本一致。(2)、分区前扇区数(第0811字节)为该扩展分区项所确定的逻辑分区之前的各分区扇区数之和(含各分区前部的63个隐含扇区)。(3)、容量大小等于其所确定的逻辑分区的容量与对应逻辑分区前的63个隐含扇区数之和。对于主分区记录上的扩展分区项说明如下:(1)、结束扇区、磁头、柱面对于大于8G的分区一般为FEFFFF。(2)、扩展分区的容量为所有逻辑分区即D、E、F分区的磁盘容量之和。经检查各分区项的开始和结束的磁头、扇区、柱面及分区前扇区数、容量大小等项的数值正确。分区记录各数据项的关系如下:07181055=6D92FFH6D92FFH=3FH+6D92C0H19470780=6D92FFH+BB86BDHBB86BDH=3FH+BB867EH31760505=6D92FFH+01770D7AH01770D7A=2*(3FH+BB867EH)4、检查各分区引导记录中各分区项的系统标志。发现分区表中的(1)、(2)处的内容为0F,与主分区记录中扩展分区项的系统标志一致,将它们改为05存盘重新启动后,在DOS下可见E、F盘的内容。5、用ghost的恢复镜像文件的功能恢复系统,重新启动后可以正常使用。(注:如果分区表无误,则引导记录中的磁盘I/O参数出错也可能导致E、F盘不可见)补充材料凡是用过一次KV3000.EXE杀毒软件的用户,会发现在C盘根目录下产生了两个隐含文件,即在DOS下用命令:DIRC:/A回车这时,你就会发现C盘根目录下多出了两个文件:DISKC.DAT,ROOTC.DAT.用工具软件查看其内容,原来DISKC.DAT文件内保存了硬盘最为关健的硬盘分区表、硬盘进出(I/O)表等关键数据,而ROOTC.DAT文件内保存了C盘根目录表(ROOT表)。原来,这两个文件是用户用KV3000查完硬盘后自动产生的,在用户不知不觉的情况下就完成了对硬盘重要数据的建档备份。而这些重要数据原存放的区域都是病毒经常破坏的区域。如果用户每天用KV3000查一次硬盘,那么,这两个文件就每天被更新一次。这些重要的数据用文件的形式被保存在硬盘内的某一区域,一旦灾难突降,即可大有用来死而复生之用途。可是,当硬盘分区表日后突然被病毒破坏或是系统崩溃,或是破坏了硬盘进出(I/O)表,造成硬盘进不去了,自然,这两个文件也根本看不到它在哪里?那怎么能用来起死复生呢?既然备份文件的数据影象在硬盘内,当今的硬盘容量可称之为海量,要一个一个扇区的去找,这好比象大海捞针一样,谈何容易!但,这早已考虑好了,有两种方法可轻松的找到其位置。方法一:利用KV3000硬盘救护箱F6功能内的F4磁盘扇区字符串搜索功能,搜索DISKC:BACKUP字符串,注意:该字符串中间没有空格,约需搜索几分钟到几十分钟就可找到。找到后记下所在位置的扇区值,再向后翻一页,就是硬盘分区表(主引导扇区),再向后翻一页,就是硬盘进出(I/O)表。将这两个表用KV3000移写扇区功能,分别写到硬盘0扇区(硬盘主引导扇区)与63扇区(硬盘系统引导扇区,即进出(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论