硬盘分区表.docx
- 文档编号:30176681
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:18
- 大小:25.76KB
硬盘分区表.docx
《硬盘分区表.docx》由会员分享,可在线阅读,更多相关《硬盘分区表.docx(18页珍藏版)》请在冰豆网上搜索。
硬盘分区表
硬盘分区表
人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。
究其原因,就是硬盘分区表受损。
硬盘分区表可以说是支持硬盘正常工作的骨架。
操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件。
本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的。
当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而修复分区。
编辑本段分区表的位置及识别标志
分区表一般位于硬盘某柱面的0磁头1扇区。
而第1个分区表(也即主分区表)总是位于(0柱面,0磁头,1扇区),剩余的分区表位置可以由主分区表依次推导出来。
分区表有64个字节,占据其所在扇区的[447-510]字节。
要判定是不是分区表,就看其后紧邻的两个字节(也即[511-512])是不是"55AA"(55和AA两个字节,其实是两个16进制:
55H和AAH,用四位二进制表示一位16进制),若是,则为分区表。
编辑本段分区表的结构
分区表由4项组成,每项16个字节.共4×16=64个字节。
每项描述一个分区的基本信息。
每个字节的含义如下:
编辑本段分区表项含义
字节含义
0Activeflag.活动标志.若为0x80H,则表示该分区为活动分区.若为0x00H,则表示该分区为非活动分区.
1,2,3该分区的起始磁头号,扇区号,柱面号磁头号--1字节,扇区号--2字节低6位,柱面号--2字节高2位+3字节
4分区文件系统标志:
分区未用:
0x00H.
扩展分区:
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--2^8-1),也即(0磁头--255磁头)。
扇区号由
(2)字节低6位表示,其范围为(0--2^6-1),由于扇区号从1开始,所以其范围是(1扇区--63扇区)。
柱面号由
(2)字节高2位+(3)字节,共10位表示,其范围为(0--2^10-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
每柱面扇区数=每道扇区数*每柱面磁头数
=63×255
=16065
柱面号下标从0开始。
磁头号[0--254],扇区号[1--63]。
逻辑扇区号下标也从0开始。
(柱面,磁头,扇区)转换成逻辑扇区号的公式为:
L=C×16065+H×63+S-1;
比如(1柱面,1磁头,1扇区),其逻辑扇区号为:
L=1×16065+1×63+1-1
=16128
逻辑扇区号转换成(柱面,磁头,扇区)公式为:
C=L/16065
H=(L%16065)/63
S=(L%16065)%63+1
比如逻辑扇区号16127:
C=16127/16065=1
H=(16127%16065)/63=0
S=(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盘)其分区表链示意图如下:
C盘的主分区表
图一分区表链示意图
(一).读取(0柱面,0磁头,1扇区)处
[800101000BFE7FFD3F0000003F047D00]
[000041FE0FFEFFFF7E047D001F2CB400]
[00000000000000000000000000000000]
[00000000000000000000000000000000]
第一项
(80)(010100)(0B)(FE7FFD)(3F000000)(3F047D00)
描述的是C盘的情况。
1.(80):
表示C盘为活动分区。
即系统会从C盘启动。
2.(010100):
表示C盘的起始扇区为(0柱面,1磁头,1扇区)。
3.(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扇区)。
5.(3F000000):
反向,(0000003F)16=(63)10,为C盘起始逻辑扇区号与逻辑0扇区号之差。
表示C盘前面已有63个扇区,这63个扇区为系统隐藏扇区。
6.(3F047D00):
反向,(007D043F)16=(8193087)10。
表明C盘有8193087个扇区。
即(0柱面,1磁头,1扇区)至(509柱面,254磁头,63扇区)
共有8193087个扇区。
第二项
(00)(0041FE)(0F)(FEFFFF)(7E047D00)(1F2CB400)
描述的是扩展分区的情况。
1.(00):
表示该分区不是活动分区。
2.(0041FE):
(00)16=(0)10 (41)16=(01000001)2(FE)16=(11111110)2
磁头号:
(0)10;
扇区号:
(000001)2=
(1)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]
[0000C17C05FEFFFFFEA35D0021885600]
[00000000000000000000000000000000]
[00000000000000000000000000000000]
第一项
(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扇区)。
3.(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盘不是活动分区。
2.(01C17C):
(01)16=
(1)10(C1)16=(11000001)2(7C)16=(01111100)2.
磁头号:
(1)10
扇区号:
(000001)2=
(1)10
柱面号:
(1101111100)2=(892)10
故E盘起始扇区为(892柱面,1磁头,1扇区)。
3.(0B):
表示E盘的文件系统为FAT32。
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.(3F000000):
反向,(0000003F)16=(63)10.这一项与D盘分区表相应项有所不同.为E盘起始逻辑
扇区号(892柱面,1磁头,1扇区)与(892柱面,0磁头,1扇区)之差。
表示E盘前面已有63个扇区,这63个扇区为系统隐藏扇区。
操作系统无法对这些扇区进行读写,所以可以把自己的秘密信息写在这里.
6.(E2875600):
反向,(005687E2)16=(5670882)10。
表明E盘有5670882个扇区。
而D盘分区表相应项为5670945.5670945-5670882=63.
正好等于63个隐藏扇区.这是因为D盘分区表描述的是(892柱面,0磁头,1扇区)到(1244柱面,254磁头,63扇区)之间的扇区数。
而E盘分区表描述的是(892柱面,1磁头,1扇区)到(1244柱面,254磁头,63扇区)之间的扇区数。
编辑本段结束语
至此,我们已经打通了整个分区表链.以后在某个链节点数据受损时,也可以根据上下节点的信息而手工定位并修复之。
修复工具可采用可读写磁盘的Winhex.
编辑本段分区表为何会出故障
在分区表被破坏后,启动系统时往往会出现“Non-Systemdiskordiskerror,replacediskandpressakeytoreboot”(非系统盘或盘出错)、“ErrorLoadingOperatingSystem”(装入DOS引导记录错误)或者“NoROMBasic,SystemHalted”(不能进入ROMBasic,系统停止响应)等提示信息。
那么分区表故障究竟是如何发生的呢?
1、病毒引发故障
计算机病毒是导致分区表损坏最为典型的故障之一。
比如典型的CIH病毒的变种除了攻击主板的BIOS之外,同时也会对分区表进行破坏,而且还有很多引导区病毒也会对分区表进行破坏。
2、环境问题导致
如今的Windows2000/XP都支持NTFS文件格式,而且程序默认的都是采用这种文件格式来安装系统,如果对硬盘进行分区转换或者是划分NTFS分区时意外断电或者死机,那么很有可能导致分区表损坏。
而且在通过PQMagic(分区魔术师)之类的第三方分区软件调整硬盘分区容量、转换分区格式的时候也存在一定风险,如果死机或者断电也会导致硬盘分区表故障,甚至有可能丢失硬盘中的所有数据。
3、操作不当
如果在一块硬盘上同时安装了多个操作系统,那么在卸载的时候就有可能导致分区表故障,比如在同时安装了Windows2000和Windows98的计算机上,直接删除Windows2000内核会导致分区表的错误。
另外,在删除分区的时候如果没有先删除扩展分区,而是直接删除主分区,也会出现无法正确读出分区卷标的故障。
编辑本段分区表故障怎么修复
1、查杀病毒
如果是由于引导区病毒造成分区表故障,则可以借助KV3000、瑞星、金山等杀毒软件提供的引导软盘启动计算机,接着在DOS环境中对系统进行病毒查杀操作。
比如用KV3000的引导盘启动计算机之后输入“KV3000/K”命令进行病毒扫描,如果发现引导区存在病毒,则程序会自动进行查杀清理,建议同时对整个系统进行完整的扫描以查找出隐藏的病毒。
一般说来,将引导区中残留的病毒清除之后即可恢复计算机的正常使用。
提示:
使用软盘引导计算机之前一定要将软盘的写保护关闭,否则有可能导致病毒感染软盘。
2、用Fdisk命令修复
Fdisk不仅是一个分区程序,它还有着非常便捷的恢复主引导扇区功能,而且它只修改主引导扇区,对其他扇区并不进行写操作,因此对于那些还在使用Windows9x的朋友而言无疑是个非常理想的分区表修复工具。
通过Fdisk修复主引导区的时候,先用Windows98启动盘启动系统,在提示符下输入“Fdisk/mbr”命令即可覆盖主引导区记录。
提示:
“Fdisk/mbr”命令只是恢复主分区表,并不会对它重新构建,因此只适用于主引导区记录被引导区型病毒破坏或主引导记录代码丢失,但主分区表并未损坏的情况使用。
而且这个命令并不适用于清除所有引导型病毒,因此使用的时候需要注意。
3、用Fixmbr修复引导记录
在Windows2000/XP中,我们一般会用到故障恢复控制台集成的一些增强命令,比如Fixmbr用于修复和替换指定驱动器的主引导记录、Fixboot用于修复知道驱动器的引导扇区、Diskpart能够增加或者删除硬盘中的分区、Expand可以从指定的CAB源文件中提取出丢失的文件、Listsvc可以创建一个服务列表并显示出服务当前的启动状态、Disable和Enable分别用于禁止和允许一项服务或者硬件设备等等,而且输入“help”命令可以查看到所有的控制命令以及命令的详细解释。
比如输入“fixmbr”命令可以让控制台对当前系统的主引导记录进行检查,然后在“确定要写入一个新的主启动记录吗?
”后面输入“Y”进行确认,这样就完成了主引导记录的修复。
4、更换工具调整分区
在删除分区或者是重新创建分区的时候,如果遇到意外原因死机或断电,这时候再使用原先的工具可能无法识别当前硬盘的分区表,必须更换另外一款分区表软件进行修复。
比如我们通过Fdisk分区时意外死机,这时候再通过Fdisk就无法顺利进行,可以采用PQMagic之类的第三方分区软件解决。
另外需要提醒大家注意的是,分区表对于系统的正常稳定运行影响非常大,一般情况下最好不要采用DM之类快速分区格式化软件,否则有可能导致后期使用过程中频频出现意想不到的麻烦。
5、通过“江民硬盘修复王”修复
分区表被破坏后,最常见的出错提示是:
“InvalidParti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬盘 分区表