硬盘知识大杂烩(三)
原理篇
原理篇从硬盘的第一个物理扇区( 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 时,表示该分区 不可引导
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 字节表示该 分区的实际占用扇区数
至此,硬盘的第一个物理扇区( 0 柱面, 0 磁头, 1 扇区) MBR 学习完毕。