硬盘知识大杂烩(三)
原理篇
原理篇从硬盘的第一个物理扇区(
0
柱面,
0
磁头,
1
扇区)
MBR
说起——基本主分区——扩展分区——
EBR
——
DBR
——
FAT
——根目录——数据区的顺序来阐述一个完整的硬盘的工作原理。建立一个明确合理的顺序很重要,不然就越看越迷糊。这是我的感受。
A
、
MBR
主引导记录即主引导扇区(
0
柱面,
0
磁头,
1
扇区)
(Master Boot Record)
是硬盘的第一个物理扇区(
0
柱面,
0
磁头,
1
扇区),也就是硬盘的绝对
"0"
扇区。在它的
512
个字节中,包括三部分
:
1.
主引导程序代码,占
446
字节
下图的紫色区数据是
mbr
的一段引导代码,它其实是一个小引导程序。他是在我们对硬盘分区操作时写进去的。在
DOS
环境下,用
FDISK/mbr
也可以将一个小引导程序写进去。
mbr
的一段引导代码几乎是通用的。
2.
硬盘分区表
HDPT
,占用
64
字节
下图的红色区数据是硬盘分区表
HDPT
,表明该硬盘几个基本分区(也称为主分区)大小及位置等信息。下面将详述
。
3.
主引导扇区结束标志
AA55H
,占用
2
字节
下图的蓝色区数据是表示引导扇区的有效结束标志
。
计算机在按下
power
键以后,开始执行主板
bios
程序。进行完一系列检测和
配置以后。开始按
bios
中设定的系统引导顺序引导系统。假定现在是硬盘。
Bios
执行完自己的程序后如何把执行权交给硬盘呢。交给硬盘后又执行存储在哪里的程序呢。其实,称为
mbr
的一段代码起着举足轻重的作用。
MBR(master boot record),
即主引导记录,有时也称主引导扇区。位于整个硬盘的
0
柱面
0
磁头
1
扇区
(
可以看作是硬盘的第一个扇区
)
,
bios
在执行自己固有的程序以后就会
jump
到
mbr
中的第一条指令。将系统的控制权交由
mbr
来执行。在总共
512byte
的主引导记录中,
MBR
的引导程序占了其中的前
446
个字节
(
偏移
0H~
偏移
1BDH)
,随后的
64
个字节
(
偏移
1BEH~
偏移
1FDH)
为
DPT(Disk PartitionTable
,硬盘分区表
)
,最后的两个字节“
55 AA
”
(
偏移
1FEH~
偏移
1FFH)
是分区有效结束标志。
MBR
不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的
MBR
,即使不同,
MBR
也不会夹带操作系统的性质。具有公共引导的特性。同时,也不属于任何分区,在操作系统上是根本看不到的。(当然用专门的磁盘管理软件还是能)
我们来分析一段
mbr
。上图是用
winhex
查看的一块希捷
120GB
硬盘的
mbr
。
(数据表示形式:我们知道,数据在硬盘上是以二进制数“
1
”和“
0
”的形式存储的,
8
位二进制数就是一个字节,如“
00110110
”
但这样计数表示出来,就会显得太长,我们常常把四位二进制数用一个一位十六进制数表示,上面“
00111110
”就变为“
3E
”,两者有一一对应关系,并且,书写也简便多了。上面最后“
55AA
”就是两个字节。“
55
”就是“
01010101
”
,
为一个字节。通常一个扇区有
512
个字节。偏移表示磁头在一个扇区中的移动量,以本扇区第一位字节为基点)
下面重点把红色区数据是硬盘分区表
HDPT
做一说明
MBR
中的硬盘分区表
DPT (HDPT)
细解
根据现在的
主引导扇区
结构,一个硬盘最多有四个主分区,因为上图(主)分区表项决定的。如果要在硬盘上建立大于四个的分区,我们就采用扩展分区,在扩展分区中可以建立多个分区,这种分区叫做逻辑分区。
硬盘分区表分为四小部分,每一小部分表示一个分区的信息,占
16
字节。
分区表的每一部分长 16 字节。第 0 个字节是自举标志,其值为 80H 时,表示该分区是当前 活动分区,可引导 ;其值为 00H 时,表示该分区 不可引导 。
分区表的每一部分长 16 字节。第 0 个字节是自举标志,其值为 80H 时,表示该分区是当前 活动分区,可引导 ;其值为 00H 时,表示该分区 不可引导 。
第
4
字节是分区类型。左边的
16
进制数(即
8
个二进制位中的高
4
位)只取两个值:
0H
或
1H
,为
0H
时表示此分区为非隐藏分区,为
1H
时则表示是隐藏分区。右边的
16
进制数(即
8
个二进制位中的低
4
位)表示分区的文件系
统格式、类别(是操作系统所在的基本分区还是扩展分区)等信息:取
6H
则表示是
FAT16
格式,且大于
32MB
;取
5H
表示是
DOS
扩展分区;取
7H
表示是
NTFS
文件格式;取
BH
表示是
FAT32
文件格式;取
CH
表示是
FAT32X
文件格式;取
EH
表示是
FAT16X
文件格式;取
FH
表示是
ExtendedX
扩展分区。
每一分区的第
1
至第
3
字节是该分区起始地址(
CHS
)
。其中第
1
字节为起始磁头号(面号);第
2
字节的低
6
位为起始扇区号,高
2
位则为起始柱面号的高
2
位;第
3
字节为起始柱面号的低
8
位。
每一分区的第
5
至第
7
字节表示分区的终止地址(
CHS
)
。,各字节的释义与第
1
至第
3
字节雷同,故不再赘述。
分区表每一分区的第 8 至第 11 字节表示该分区的 起始相对扇区号 (即该扇区之前的绝对扇区个数) , 第 12 至第 15 字节表示该 分区的实际占用扇区数 。
分区表每一分区的第 8 至第 11 字节表示该分区的 起始相对扇区号 (即该扇区之前的绝对扇区个数) , 第 12 至第 15 字节表示该 分区的实际占用扇区数 。
至此,硬盘的第一个物理扇区(
0
柱面,
0
磁头,
1
扇区)
MBR
学习完毕。
本文转自madin10000 51CTO博客,原文链接:http://blog.51cto.com/20100823/412878