【Linux】MBR磁盘分区表只能有四个分区?

1 第一个扇区
磁盘的第一个扇区(也可以叫做MBR,根据语境确定是第一个扇区还是主引导分区)记录了整块磁盘的重要信息,是计算机开机后访问磁盘时所必须要读取的首个扇区。主要有三个部分:

主引导分区(Master Boot Record,MBR):主要作用是检查分区表是否正确,并且在系统硬件完成自检以后将控制权交给磁盘上的引导程序(如GNU,GRUB);
分区表(partition table):占据64个字节,可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节;
结束标志字:0x55AA,最后两个字节,是检验主引导记录是否有效的标志。
标准MBR结构如下:

地址    描述    长度(字节)
0    代码区    440(最大446)
440    选用磁盘标志    4
444    一般为空值; 0x0000    2
446    标准MBR分区表规划(四个16 byte的主分区表入口)    64
511    MBR有效标志:0x55AA    2
MBR总大小:446 + 64 + 2 =    512。

2 分区表
由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的磁盘,最多只能识别4个主(primary)或扩展(extend)分区。扩展分区也是主要分区的一种,但它与主分区的不同在于理论上可以划分为无数个逻辑分区。

那为什么每个分区信息是16个字节呢?这16个字节又代表什么呢?

因为这16个字节中的每个字节都表示了一种定义,具体每个字节的定义可以参见磁盘分区结构信息。

偏移    长度(字节)    意义
00H    1    分区状态:00–>非活动分区;80–>活动分区;其它数值没有意义
01H    1    分区起始磁头号(HEAD),用到全部8位
02H    2    分区起始扇区号(SECTOR),占据02H的位0-5;该分区的起始磁柱号(CYLINDER),占据02H的位6-7和03H的全部8位
04H    1    文件系统标志位
05H    1    分区结束磁头号(HEAD),用到全部8位
06H    2    分区结束扇区号(SECTOR),占据06H的位0-5;该分区的结束磁柱号(CYLINDER),占据06H的位6-7和07H的全部8位
08H    4    分区起始相对扇区号
0CH    4    分区总的扇区数
下面是一个例子,如果某一分区在磁盘分区表的信息如下:

80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00
1
从中可以看到:

最前面的“80”是一个分区的激活标志,表示系统可引导;
“01 01 00”表示分区开始的磁头号为1,开始的扇区号为1,开始的柱面号为0;
“0B”表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);
“FE BF FC”表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;
“3F 00 00 00”表示首扇区的相对扇区号为63(小端序);
“7E 86 BB 00”表示总扇区数为12289662(小端序)
3 主分区和扩展分区
磁盘中最多可以有4个Primary和Extended的扇区,而Extended只能有一个,如果要把磁盘分区成四个分区,那么只能是:

P+P+P+P
或者
P+P+P+E

上面的情况中, 3P+E只有三个主分区可用,因为Extended不能被格式化作为数据访问的分区,还需要进一步分区成逻辑分区。如果要四个都可用,就需要分区成4P。

扩展分区中逻辑驱动器的引导记录是链式的。每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR),其分区表的第一项指向该逻辑分区本身的引导扇区,第二项指向下一个逻辑驱动器的EBR,分区表第三、第四项没有用到。

需要注意的问题:

主分区和扩展分区最多只有四个
扩展分区最多只能有一个
逻辑分区是由扩展分区持续切割出来的分区
只有主分区和逻辑分区才能被格式化作为数据访问的分区
Linux系统默认将前4个序号作为主分区或扩展分区,而逻辑分区的序号肯定从5开始
下图来自Inside the Linux boot process,较为清晰的画出了MBR中各个部分的结构

--------------------- 
作者:widiot1 
来源:CSDN 
原文:https://blog.csdn.net/White_Idiot/article/details/80088115 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/MatrixGod/article/details/89642462