硬盘分区表详解_第1页
硬盘分区表详解_第2页
硬盘分区表详解_第3页
硬盘分区表详解_第4页
硬盘分区表详解_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

硬盘分区表详解硬盘主引导扇区二硬盘主引导记录(MBR)+硬盘分区表(DPT)物理位置:0面0道1扇区(clindyer0,side0,sector1)大小:512字节其中:MBR446字节(0000--01BD),DPT64字节(01BE--01FD),结束标志2字节(55AA)功能:MBR通过检查DPT分区信息引导系统跳转至DBR;读取:使用NORTONDISKEDIT,在OBJECT菜单中选择DRIVE——>PHYSICALDISK-—HARDDISK,然后,在OBJECT菜单中选择DISKPARTITIONTABLE即可读取,并使用TOOLS菜单中的WRITEOBJECTTO选项存入指定文件备份;写入:使用NORTONDISKEDIT,在OBJECT菜单中选择DRIVE——>FLOOPYDISK,选择备份的DPT文件,然后使用TOOLS菜单中的WRITEOBJECTTO——>PHYSICALSECTOR选项写入001(clindyer0,side0,sector1);详解:000H--08AHMBR启动程序(寻找开机分区)08BH--0D9HMBR启动字符串0DAH--1BCH保留("0")1BEH--1FDH硬盘分区表1FEH--1FFH结束标志(55AA)活动分区主引导扇区(DBR)物理位置:1面0道1扇区(clindyer0,side1,sector1)大小:FAT161扇区512字节FAT323扇区1536字节功能:包含机器CMOS等信息(0000--0059),核对该信息并引导指定的系统文件,如NTLDR等;读取:使用NORTONDISKEDIT,在OBJECT菜单中选择DRIVE——>LOGICALDISK-—DISKC,然后,在OBJECT菜单中选择BOOTRECORD即可读取,并使用TOOLS菜单中的WRITEOBJECTTO选项存入指定文件备份;写入:使用NORTONDISKEDIT,在OBJECT菜单中选择DRIVE——>FLOOPYDISK,选择备份的DBR文件,然后使用TOOLS菜单中的WRITEOBJECTTO——>PHYSICALSECTOR选项写入011(clindyer0,side1,sector1);详解:000H--002H3BYTE的跳转指令(去启动程序,跳到03EH)003H--03DHBIOS参数区03EH--19DHDOS启动程序19EH--1E5H开机字符串1E6H—1FDH文件名(IO.SYS,MSDOS.SYS)1FEH--1FFH结束标记(55AA)硬盘分区表(DPT)偏移地址字节数含义分析01BE1分区类型:00表示非活动分区:80表示活动分区;其他为无效分区。01BF~01C13*分区的起始地址(面/扇区/磁道),通常第一分区的起始地址开始于1面0道1扇区,因此这三个字节应为01010001C21#分区的操作系统的类型。01C3~01C53*该分区的结束地址(面/扇/道)01C6~01C94该分区起始逻辑扇区01CA~01CD4该分区占用的总扇区数注释:*注意分区的起始地址(面/扇区/磁道)和结束地址(面/扇/道)中字节分配:000000000100000100010101~面(磁头)8位八扇区6位=磁道10位#分区的操作系统类型(文件格式标志码)--DOSFAT16<32M--EXTEND--DOSFAT16>32M--NTFS(OS/2)83---LINUX>64MDPT总共64字节(01BE--01FD),如上所示每个分区占16个字节,所以可以表示四个分区,这也就是为什么一个磁盘的主分区和扩展分区之和总共只能有四个的原因.逻辑驱动器扩展分区的信息位于以上所示的硬盘分区表(DPT)中,而逻辑驱动器的信息则位于扩展分区的起始扇区,即该分区的起始地址(面/扇区/磁道)所对应的扇区,该扇区中的信息与硬盘主引导扇区的区别是不包含MBR,而16字节的分区信息则表示的是逻辑驱动器的起始和结束地址等.所以,在磁盘仅含有一个主分区,一个扩展分区(包含多个逻辑驱动器)的情况下,即使由于病毒或其他原因导致硬盘主引导扇区的数据丢失(包括DPT),也可以通过逻辑驱动器的数据来恢复整个硬盘.例如:以下是一个硬盘的分区情况.道面扇道面扇起始扇(逻辑)结束扇总共扇区MBR001 C01127623963634,188,2394,188,177扩27701554239634,188,2408,391,5994,203,360D27711554239634,188,3038,391,5994,203,297如果主分区表损坏,则可以通过手工查找扩展分区表中所包含的逻辑驱动器数据,在本例中就是D盘所对应的数据,然后将其起始扇(逻辑)减去63就是所对应的扩展分区的起始扇(逻辑),将其起始地址(面/扇区/磁道)改为0面就是扩展分区的起始地址.然后通过扩展分区就可以得到主分区C的信息,然后就可以使用FDISK/MBR命令和手工填写分区表恢复整个硬盘.实际使用这种方法比较麻烦,如果知道每个分区的大小,则可以通过使用PQMAGIC5将磁盘重新分区为原来大小(注意:千万不能应用,我们只是通过它来获得数据),并查看INFO来获得以上数据,记录以后取消该分区操作,然后使用NORTONDISK2000手工修改DPT表,恢复整个硬盘.该例所对应的分区表数据:8001TOC\o"1-5"\h\z0100 06 EF 7F 14 3F 00 00 00 11 E8 3F 00 00 004115 05 EF BF 2A 50 E8 3F 00 60 23 40 00 00 000000 00 00 00 00 00 00 00 00 00 00 00 00 00 000000 00 00 00 00 00 00 00 00 00 00 00 00 55 AA扩展分区表数据:0001411507EFBF2A8FE83F0021234000注意:逻辑起始扇区和总共分区数是左边为低位,如该例的扩展分区的起始地址为50E83F00转换十进制时要先变为003FE850,总共占用分区数60234000要先变为00402360,同理当手工填写该值时也要进行高低位转换.李家芳2K.7.22哈尔滨深入浅出硬盘分区表作者:武汉市中国地质大学印涛,秦剑人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而修复分区。分区表的位置及识别标志分区表一般位于硬盘某柱面的0磁头1扇区.而第1个分区表(也即主分区表)总是位于(0柱面,1磁头,1扇区),剩余的分区表位置可以由主分区表依次推导出来.分区表有64个字节,占据其所在扇区的[441-509]字节.要判定是不是分区表,就看其后紧邻的两个字节(也即[510-511])是不是"55AA",若是,则为分区表.分区表的结构分区表由4项组成,每项16个字节.共4X16=64个字节.每项描述一个分区的基本信息.每个字节的含义如下:分区表项含义字节含义0Activeflag・活动标志.若为0x80H,则表示该分区为活动分区.若为0X00H,则表示该分区为非活动分区.1,2,3该分区的起始磁头号,扇区

号,柱面号磁头号--1字节,扇区号--2字节低6位,柱面号--2字节高2位+3字节4分区文件系统标志:分区未用:OxOOH・扩展分区:0x05H,0X0FH・FAT16分区:0X06H・FAT32分区:0X0BH,0X1BH,0X0CH,0X1CH.NTFS分区:0X07H・5,6,7该分区的结束磁头号,扇区号,柱面号,含义同上.8,9,10,11逻辑起始扇区号。表示分区起点之前已用了的扇区数・12,13,14,15该分区所占用的扇区数.分区表项有几个字节比较重要,下面分别阐述之:1、(1,2,3)字节磁头号由(1)字节8位表示,其范围为(0--28-1),也即(0磁头--254磁头)。扇区号由(2)字节低6位表示,其范围为(0--26-1),由于扇区号从1开始,所以其范围是(1扇区--63扇区)。柱面号由(2)字节高2位+(3)字节,共10位表示,其范围为(0--210-1),也即(0柱面--1023柱面)。当柱面号超过1023时,这10位依然表示成1023,需要注意。(5,6,7)字节含义同上。2、 (8,9,10,11)字节如果是主分区表,则这4个字节表示该分区起始逻辑扇区号与逻辑0扇区(0柱面,0磁头,1扇区)之差。如果非主分区表,则这4个字节要么表示该分区起始逻辑扇区号与扩展分区起始逻辑扇区号之差,要么为63。详细情况在后面有所阐述。注意:1、扇区上的字节是按左边低位,右边高位的顺序排列的。所以在取值时,需要把字节再反一下,让高位字节在左边,低位字节在右边,这一点在读取逻辑起始扇区号和分区大小时需要注意。举个例子:第一项的逻辑起始扇区为(3F000000),转换为十进制前要先反一下字节顺序,为(0000003F)然后在转换为十进制,即63.同理分区大小为(3F047D00),先反为(007D043F)再转换为十进制,即8193087。2、逻辑扇区号与(柱面,磁头,扇区)的相互转换:令L=逻辑扇区号,C=柱面号,H=磁头号,S=扇区号。每道扇区数= 63每柱面磁头数=255每柱面扇区数=每道扇区数*每柱面磁头数=63x255=16065柱面号下标从0开始。磁头号[0--254],扇区号[1--63]。逻辑扇区号下标也从0开始。(柱面,磁头,扇区)转换成逻辑扇区号的公式为:L=Cx16065+Hx63+S-1;比如(1柱面,1磁头,1扇区),其逻辑扇区号为:L=1x16065+1x63+1-1=16128逻辑扇区号转换成(柱面,磁头,扇区)公式为:C=L/16065H=(L%16065)/63S=(L%16065)%63+1比如逻辑扇区号16127:C=16127/16065=1H=(16127%16065)/63=0S=(16127%16065)%63+1=63即(1柱面,0磁头,63扇区)3、分区表上有四项,每一项表示一个分区,所以一个分区表最多只能表示4个分区。主分区表上的4项用来表示主分区和扩展分区的信息。因为扩展分区最多只能有一个,所以硬盘最多可以有四个主分区或者三个主分区,一个扩展分区。余下的分区表是表示逻辑分区的。这里有必要阐述一点:逻辑区都是位于扩展分区里面的,并且逻辑分区的个数没有限制。4、分区表所在扇区通常在(0磁头,1扇区),而该分区的开始扇区通常位于(1磁头,1扇区),中间隔了63个隐藏扇区。分区表链的查找分区表链实际上相当于一个单向链表结构。第一个分区表,也即主分区表,可以有一项描述扩展分区。而这一项就相当于指针,指向扩展分区。然后我们根据该指针来到扩展分区起始柱面的0头1扇区,找到第二个分区表。对于该分区表,通常情况下:第一项描述了扩展分区中第一个分区的信息,第二项描述下一个分区,而这第二项就相当于指向第二个分区的指针,第三项,第四项一般均为0。我们可以根据该指针来到扩展分区中第二个分区起始柱面的0头1扇区,找到第三个分区表。以此类推,只到最后一个分区表。而最后一个分区表只有第一项有信息,余下三项均为0.相当于其指针为空.所以只要找到了一个分区表就可以推导找出其后面所有分区表。不过该分区表前面的分区表就不好推导出来了。但令人高兴的是这个链表的头节点,也即主分区表的位置是固定的位于(0柱面,0磁头,1扇区)处,我们可以很轻易的找到它,然后把剩下的所有分区表一一找到。以笔者的硬盘为例:一个主分区(C盘),一个扩展分区.扩展分区中有两个逻辑分区(D盘,E盘)其分区表链示意图如下:图一分区表链示意图(一).读取(0柱面,0磁头,1扇区)处C盘的主分区表:[800101000BFE7FFD3F0000003F047D00][000041FE0FFEFFFF7E047D001F2CB400][00000000000000000000000000000000][00000000000000000000000000000000]第一项:(80)(010100)(0B)(FE7FFD)(3F000000)(3F047D00)描述的是C盘的情况。(80):表示C盘为活动分区。即系统会从C盘启动。(010100):表示C盘的起始扇区为(0柱面,0磁头,1扇区)。(0B):表示C盘的文件系统为FAT32。4.(FE7FFD):(FE)16=(254)10(7F)16=(01111111)2(FD)16=(11111101)2磁头号:(254)10;扇区号:(111111)2=(63)10.柱面号:(0111111101)2=(509)10故C盘结束扇区为(509柱面,254磁头,63扇区)。(3F000000):反向,(0000003F)16=(63)10,为C盘起始逻辑扇区号与逻辑0扇区号之差。表示C盘前面已有63个扇区,这63个扇区为系统隐藏扇区。(3F047D00):反向,(007D043F)16=(8193087)10。表明C盘有8193087个扇区。即(0柱面,1磁头,1扇区)至(509柱面,254磁头,63扇区)共有8193087个扇区。第二项:(00)(0041FE)(0F)(FEFFFF)(7E047D00)(1F2CB400)描述的是扩展分区的情况。(00):表示该分区不是活动分区。(0041FE):(00)16=(0)10(41)16=(01000001)2(FE)16=(11111110)2磁头号:(0)10;柱面号:(0111111110)2=(510)10所以扩展分区的起始扇区为(510柱面,0磁头,1扇区)。3.(0F):表示该分区为扩展分区。4.(FEFFFF):(FE)16=(254)10(FF)16=(11111111)2(FF)16=(11111111)2;磁头号:(254)10;扇区号:(111111)2=(63)10.柱面号:(1111111111)2=(1023)10但这是不准确的,因为当柱面号的真实值超过1023时,表示柱面号的10位也依然是1023。5.(7E047D00):反向,(007D047E)16=(8193150)10.表示扩展分区的起始扇区号为8193150,即(510柱面,0磁头,1扇区)。这是真实准确的,我一般都用这一项来定位分区起点。6.(1F2CB400):反向,(00B42C1F)16=(11807775)10. 表示扩展分区共有11807775个扇区。通过上面得到的起点和分区的大小,可以推导出扩展分区的结束位置:8193150+11807775=20000925 号扇区,即(1244柱面,254磁头,63扇区)。二.查找D盘分区表根据上面的信息,第二个分区表,也即D盘分区表在(510柱面,0磁头,1扇区)处。读取该扇区,得到分区表如下:[000141FE0BFEFF7B3F000000BFA35D00]TOC\o"1-5"\h\z[0000 C1 7C 05 FE FF FF FE A3 5D 00 21 88 56 00 ][0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ][0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]第一项:(00)(0141FE)(0B)(FEFF7B)(3F000000)(BFA35D00)描述的是D盘的情况。1.(00):表示D盘不是活动分区。2.(0141FE):(01)16=(1)10(41)16=(01000001)2(FE)16=(11111110)2.磁头号:(1)10;扇区号:(000001)2 =(1)10.柱面号:(0111111110)2=(510)10;故D盘开始扇区为(510柱面,1磁头,1扇区)。3.(0B):表示D盘的文件系统为FAT32。4.(FEFF7B):(FE)16=(254)10。(FF)16=(11111111)2(7B)16=(01111011)2.磁头号:(254)10;扇区号:(111111)2=(63)10.柱面号:(1101111011)2=(891)10故D盘结束扇区为(891柱面,254磁头,63扇区)。5.(3F000000):反向,(0000003F)16=(63)10,为D盘起始逻辑扇区号(510柱面,1磁头,1扇区)与扩展分区起始逻辑扇区号(510柱面,0磁头,1扇区)之差。表示D盘前面已有63个扇区,这63个扇区为系统隐藏扇区。6.(BFA35D00):反向,(005DA3BF)16=(6136767)10。表明D盘有6136767个扇区。通过上面得到的起点和分区的大小,可以推导出D盘的结束位置:8193150+63+6136767=14329980号扇区。即(891柱面,254磁头,63扇区)。与上面的正好吻合。第二项:(00)(00C17C)(05)(FEFFFF)(FEA35D00)(21885600)描述的是E盘的情况。1.(00):表示E盘不是活动分区。2.(00C17C):(00)16=(0)10(C1)16=(11000001)2(7C)16=(01111100)2磁头号:(0)10扇区号:(000001)2=(1)10柱面号:(1101111100)2=(892)10所以E盘的起始扇区为(892柱面,0磁头,1扇区)。(05):表示E盘的在扩展分区里面。4.(FEFFFF):(FE)16=(254)10(FF)16=(11111111)2(FF)16=(11111111)2磁头号:(254)10扇区号:(111111)2 =(63)10柱面号:(1111111111)2 =(1023)10但这是不准确的,原因同上。5.(FEA35D00):反向,(005DA3FE)16 =(6136830)10. 这一项非常重要,它定位了E盘分区表所在扇区。其值为E盘分区表所在扇区号与扩展分区起始扇区号之差。所以,E盘分区表所在扇区号为:8193150+6136830=14329980 。即(892柱面,0磁头,1扇区)。6.(21885600):反向,(00568821)16=(5670945)10.表示E盘共有11807775个扇区。通过上面得到的起点和分区的大小,可以推导出E盘的结束位置:14329980+5670945=20000925 号扇区,即(1244柱面,254磁头,63扇区)。三.查找E盘分区表根据上面的信息,第三个分区表,也即E盘分区表在(892柱面,0磁头,1扇区)处。读取该扇区,得到分区表如下:[0001C17C0BFEFFFF3F000000E2875600][00000000000000000000000000000000][00000000000000000000000000000000][00000000000000000000000000000000]该分区表第二项全为0,说明没有下一个分区表了。该分区表就是分区表链的最后一个节点。第一项:(00)(01C17C)(0B)(FEFFFF)(3F000000)(E2875600)该项与D盘分区表的第二项描述的都是E盘的情况,但它们在某些细节上又有所区别。1.(00):表示E

温馨提示

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

评论

0/150

提交评论