77范文网 - 专业文章范例文档资料分享平台

深入浅出硬盘分区表

来源:网络收集 时间:2020-05-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

深入浅出硬盘分区表

人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的

数据手工修复分区表,从而修复分区。

一.分区表的位置及识别标志

分区表一般位于硬盘某柱面的0磁头 1扇区.而第1个分区表(也即主分区表)总是位于

(0柱面,1磁头,1扇区),剩余的分区表位置可以由主分区表依次推导出来.分区表有64个字节,占据其所在扇区的[441-509]字节.要判定是不是分区表,就看其后紧邻的两个字节(也即[510-511])是不是 \若是,

则为分区表.

二.分区表的结构

分区表由4项组成,每项16个字节.共4×16 = 64个字节.每项描述一个分区的基本信息.每个字节的含义

如下: 分区表项含义

字节 含义 Activeflag.活动标志.若为0x80H,则表示该分区0 为活动分区.若为0x00H,则表示该分区为非活动分区. 该分区的起始磁头号,扇区号,柱面号磁头号 -- 1,2,3 1字节, 扇区号 -- 2字节低6位,柱面号 -- 2字节高2位 + 3字节 分区文件系统标志: 分区未用: 0x00H. 扩展分区: 0x05H, 0x0FH. FAT16分区: 0x06H. FAT32分区: 0x0BH, 0x1BH, 0x0CH, 0x1CH. NTFS分区: 0x07H. 4 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 --2 10 -

1),也即(0 柱面-- 1023柱面)。

当柱面号超过1023时,这10位依然表示成1023,需要注意。

(5,6,7)字节含义同上。 2、(8, 9, 10, 11)字节

如果是主分区表,则这4 个字节表示该分区起始逻辑扇区号与逻辑0扇区

(0柱面,0磁头,1扇区)之差。如果非主分区表,

则这4 个字节要么表示该分区起始逻辑扇区号与扩展分区起始逻辑扇区号

之差,要么为63。详细情况在后面有所阐述。

注意:

1、扇区上的字节是按左边低位,右边高位的顺序排列的。所以在取值时,需要

把字节再反一下,让高位字节在左边,低位字节在右边,

这一点在读取逻辑起始扇区号和分区大小时需要注意。举个例子:第一项的逻辑

起始扇区为(3F 00 00 00),转换为十进制前要先反一下字

节顺序,为(00 00 00 3F)然后在转换为十进制,即63 .同理分区大小为(3F

04 7D 00),先反为(00 7D 04 3F)再转换为十进制,

即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盘)其分区表

链示意图如下:

图一 分区表链示意图

(一).读取(0柱面,0磁头,1扇区)处C盘的主分区表:

[80 01 01 00 0B FE 7F FD 3F 00 00 00 3F 04 7D 00 ]

[00 00 41 FE 0F FE FF FF 7E 04 7D 00 1F 2C B4 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 ]

第一项:

(80)(01 01 00)(0B)(FE 7F FD )(3F 00 00 00 )(3F 04 7D 00)

描述的是C盘的情况。

1.(80):表示C盘为活动分区。即系统会从C盘启动。

2.(01 01 00):表示C盘的起始扇区为(0柱面,0磁头,1扇区)。

3.(0B):表示C盘的文件系统为FAT32。

4.(FE 7F FD):

(FE) 16 = (254) 10 (7F) 16 = (0111 1111) 2 (FD) 16 = (1111 1101)

2

磁头号:(254) 10;

扇区号:(11 1111) 2 = (63) 10. 柱面号:(01 1111 1101) 2 = (509) 10

故C盘结束扇区为(509柱面,254磁头,63扇区)。

5.(3F 00 00 00):

反向,(00 00 00 3F) 16 = (63) 10,为C盘起始逻辑扇区号与逻辑0扇区号

之差。表示C盘前面已有63个扇区,这63个扇区为系统隐藏扇区。

6. (3F 04 7D 00):

反向,(00 7D 04 3F) 16 = (8193087) 10。表明C盘有8193087个扇区。即

(0柱面,1磁头,1扇区)至(509柱面,254磁头,63扇区)

共有8193087个扇区。

第二项:

(00)(00 41 FE)(0F)(FE FF FF)(7E 04 7D 00)(1F 2C B4 00)

描述的是扩展分区的情况。

1. (00): 表示该分区不是活动分区。

2. (00 41 FE):

(00) 16 = (0) 10 (41) 16 = (0100 0001) 2 (FE) 16 = (1111 1110)

2

磁头号:(0) 10;

扇区号:(00 0001) 2 = (1) 10. 柱面号:(01 1111 1110) 2 = (510) 10

所以扩展分区的起始扇区为(510柱面,0磁头,1扇区)。

3. (0F): 表示该分区为扩展分区。

4. (FE FF FF):

(FE) 16 = (254) 10 (FF) 16 = (1111 1111) 2 (FF) 16 = (1111 1111)

2;

磁头号:(254) 10;

扇区号:(11 1111) 2 = (63) 10. 柱面号:(11 1111 1111) 2 = (1023) 10

但这是不准确的,因为当柱面号的真实值超过1023时,表示柱面号的10位也依

然是1023。

5. (7E 04 7D 00):

反向,(00 7D 04 7E) 16 = (8193150) 10. 表示扩展分区的起始扇区号为

8193150,即(510 柱面,0磁头,1扇区)。这是真实准确的,

我一般都用这一项来定位分区起点。

6. (1F 2C B4 00):

反向, (00 B4 2C 1F) 16 = (11807775) 10. 表示扩展分区共有11807775个

扇区。通过上面得到的起点和分区的大小,

可以推导出扩展分区的结束位置:8193150 + 11807775 = 20000925号扇区,即

(1244 柱面,254磁头,63扇区)。

二.查找D盘分区表 根据上面的信息,第二个分区表,也即D盘分区表在(510柱面,0磁头,1扇区)

处。读取该扇区,得到分区表如下:

[00 01 41 FE 0B FE FF 7B 3F 00 00 00 BF A3 5D 00 ]

[00 00 C1 7C 05 FE FF FF FE A3 5D 00 21 88 56 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 ]

第一项:

(00)(01 41 FE)(0B)(FE FF 7B)(3F 00 00 00 )(BF A3 5D 00)

描述的是D盘的情况。

1.(00):表示D盘不是活动分区。

2.(01 41 FE):

(01) 16 = (1) 10 (41) 16 = (0100 0001) 2 (FE) 16 = (1111 1110)

2.

磁头号:(1) 10;

扇区号:(00 0001) 2 = (1) 10. 柱面号:(01 1111 1110) 2 = (510) 10; 故D盘开始扇区为(510柱面,1磁头,1扇区)。

3.(0B):表示D盘的文件系统为FAT32。

4.(FE FF 7B):

(FE) 16 = (254) 10 。 (FF) 16 = (1111 1111) 2 (7B) 16 = (0111 1011)

2.

磁头号:(254) 10;

扇区号:(11 1111) 2 = (63) 10. 柱面号:(11 0111 1011) 2 = (891) 10

故D盘结束扇区为(891柱面,254磁头,63扇区)。

5.(3F 00 00 00):

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库深入浅出硬盘分区表在线全文阅读。

深入浅出硬盘分区表.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1024903.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: