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

转载:https://blog.csdn.net/White_Idiot/article/details/80088115

看《鸟哥的Linux私房菜》的时候,说是partition table只能有四个分区,想知道为什么,以下参考自Wiki

1 第一个扇区

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

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

标准MBR结构如下:

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

MBR总大小:446 + 64 + 2 = 512。


2 分区表

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

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

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

偏移长度(字节)意义
00H1分区状态:00–>非活动分区;80–>活动分区;其它数值没有意义
01H1分区起始磁头号(HEAD),用到全部8位
02H2分区起始扇区号(SECTOR),占据02H的位0-5;该分区的起始磁柱号(CYLINDER),占据02H的位6-7和03H的全部8位
04H1文件系统标志位
05H1分区结束磁头号(HEAD),用到全部8位
06H2分区结束扇区号(SECTOR),占据06H的位0-5;该分区的结束磁柱号(CYLINDER),占据06H的位6-7和07H的全部8位
08H4分区起始相对扇区号
0CH4分区总的扇区数

下面是一个例子,如果某一分区在磁盘分区表的信息如下:

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

 
 
  • 1
  • 2
  • 3

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

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

需要注意的问题:

  1. 主分区和扩展分区最多只有四个
  2. 扩展分区最多只能有一个
  3. 逻辑分区是由扩展分区持续切割出来的分区
  4. 只有主分区和逻辑分区才能被格式化作为数据访问的分区
  5. Linux系统默认将前4个序号作为主分区或扩展分区,而逻辑分区的序号肯定从5开始

下图来自Inside the Linux boot process,较为清晰的画出了MBR中各个部分的结构
MBR

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值