前言:其实,学习安装Gentoo,是一个学习linux很好的切入点,在这个过程中可以学到很多东西。
找到的内容在名字的定义上有矛盾的地方,只捡一些我理解的Post在这里
一. 硬盘结构简介
1. 硬盘参数释疑
到目前为止, 人们常说的硬盘参数还是古老的 CHS(Cylinder/Head/Sector) 参数. 那么为什么要使用这些参数,它们的意义是什么?它们的取值范围是什么? 很久以前, 硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬 盘. 也就是硬盘盘片的每一条磁道都具有相同的扇区数.由此产生了所谓的3D参 数 (Disk Geometry). 既磁头数(Heads), 柱面数(Cylinders),扇区数(Sectors), 以及相应的寻址方式.
其中:
磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储); 柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1023(用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63(用 6 个二进制位存储). 每个扇区一般是 512个字节, 理论上讲这不是必须的,但好象没有取别的值的.
所以磁盘最大容量为:
255 * 1023 * 63 * 512 / 1048576 = 8024 GB ( 1M =1048576 Bytes )
或硬盘厂商常用的单位:
255 * 1023 * 63 * 512 / 1000000 = 8414 GB ( 1M =1000000 Bytes )
在 CHS 寻址方式中, 磁头, 柱面, 扇区的取值范围分别为 0到 Heads - 1,
0 到 Cylinders - 1, 1 到 Sectors (注意是从 1 开始).
MBR(Master Boot Record,另一说法为Main Boot Record),中文意为主引导区记录。
硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为三个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partition table区(分区表),占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。
他是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。
一个扇区的硬盘主引导记录MBR由上图所示的4个部分组成。
·主引导程序(偏移地址0000H--0088H)0-136,它负责从活动分区中装载,并运行系统引导程序。
·出错信息数据区,偏移地址(137)0089H--00E1H(225)为出错信息,00E2H(138)--01BDH(445)全为0字节。
·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。
·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。
下面与上面基本相同
bootloader占前 446 个字节( 0 to 0x1BD ), 存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序).
partition table(主分区表)占用 64 个字节 (0x1BE to 0x1FD),记录了磁盘的基本分区信息. 主分区表分为四个分区项, 每项 16 字节,分别记录了每个主分区的信息(因此最多可以有四个主分区).
Magic Number(Boot Record ID 即引导区标记)占用两个字节 (0x1FE and0x1FF), 对于合法引导区, 它等于 0xAA55, 这是判别引导区是否合法的标志.