It's our wits that make us men.

linux磁盘组成

Posted on By eatMelon-Masses

磁盘组成

硬盘的DOS管理结构

磁道,扇区,柱面和磁头数 硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可 记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS 中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径 的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁 盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,帮这些 参数可以得到硬盘的容量,基计算公式为: 存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数 要点:

  1. 硬盘有数个盘片,每盘片两个面,每个面一个磁头
  2. 盘片被划分为多个扇形区域即扇区
  3. 同一盘片不同半径的同心圆为磁道
  4. 不同盘片相同半径构成的圆柱面即柱面
  5. 公式: 存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
  6. 信息记录可表示为:××磁道(柱面),××磁头,××扇区

# 磁盘图片

磁盘的第一个扇区记录了重要数据:

1. 主要启动记录区(Master Boot Record,MBR):可以安装开机管理程序的地方,有446 bytes

2. 分割表(partion table):记录整颗磁盘分割的状态,有64 bytes

MBR作用

当系统开机的时候回主动去读取整个区块的内容,这样系统才会知道你程序放在那里且该如何进行开机。

分割表作用

整颗磁盘就像原钻,必须经过切割打磨,形成想要的形状!如果没有进行切割,源钻就不能发出闪耀光芒,同理,我们必须对硬盘进行分割,这样才能使用。

详解MBR

MBR:Master Boot Record,主分区引导记录。最早在1983年在IBM PC DOS 2.0中提出。前面说过,每个扇区/区块都被分配了一个逻辑块地址,即LBA,而引导扇区则是每个分区的第一扇区,而主引导扇区则是整个硬盘的第一扇区(主分区的第一个扇区)。MBR就保存在主引导扇区中。另外,这个扇区里还包含了硬盘分区表DPT(Disk Partition Table),和结束标志字(Magic number)。扇区总计512字节,MBR占446字节(0000H - 01BDH),DPT占据64个字节(01BEH - 01FDH),最后的magic number占2字节(01FEH – 01FFH)。

mbr结构

现在,我们来看一个MBR记录的实例:

80 01 01 00, 0B FE BF FC, 3F 00 00 00, 7E 86 BB 00

其中, “80”是一个分区的激活标志,表示系统可引导;“01 01 00”表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;“0B”表示该分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);“FE BF FC”表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;“3F 00 00 00”表示首扇区的相对扇区号为63;“7E 86 BB 00”表示总扇区数为12289622。

详解gpt

gpt结构

等等,MBR是不是走错片场了?答案当然是没有。这里的P意为protective,PMBR存在的意义就是,当不支持GPT的分区工具试图对硬盘进行操作时(例如MS-DOS和Linux的fdisk程序),它可以根据这份PMBR以传统方式启动,过程和MBR+BIOS完全一致,极大地提高了兼容性。而支持GPT的系统在检测PMBR后会直接跳到GPT表头读取分区表。和MBR类似,分区表中存储了某个分区的起始和结束位置及其文件系统属性信息,而分区才是实际存在的物理磁盘的一部分。

GPT HDR:GPT表头,如下图,主要定义了分区表中项目数及每项大小,还包含硬盘的容量信息。在64位的Windows Server 2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(也是EFI标准中的最低要求:分区表最小要有16,384字节)分区表头还记录了这块硬盘的GUID,分区表头位置(总是LBA1)和大小,也包含了备份分区表头和分区表的位置和大小信息(LBA-1~LBA-34)。同时还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。具体内容如下表:

gptTable