MBR和GPT分区小结

  MBR和GPT是现在主流的两种分区格式。他们的主要作用都是告诉操作系统硬盘的分区信息。

MBR

  • 结构

  MBR全称Master Boot Record,是一种较早的分区格式。MBR位于硬盘的0磁头0磁道1扇区,大小512字节,包含了446字节的bootloader(用于引导操作系统)和64字节的分区表,以及最后的2字节结束标志。

  由上可知,MBR规范下只有4个分区表(一个分区表占16字节),所以MBR格式的硬盘只能有4个主分区,想要使用更多的分区需要将第4个分区设置为扩展分区(扩展分区内自己包含分区信息,从而可以继续创建多个逻辑分区)。另外,MBR表示单个分区的16字节中,最后4个字节存放的是该分区对应的扇区信息,也就是32位的空间,即2的32次个扇区。在一般的操作系统下我们可以查看到扇区的默认大小为512字节:

root@test:~# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe2ff5019
  • 特点

  所以对于MBR来说,每个分区只能最大为2的32次乘以512字节=2T。这是MBR格式的一大缺陷。而且,由于所有的磁盘信息都记录在开头的分区表里,一旦开头被损坏,会引起整块硬盘数据的损坏。

GPT

  • 结构

  GPT全称Guid Partition Table,使用GUID(globally unique identifiers)来记录分区信息。理论上GPT允许创建无限多的分区(当然一般情况下大部分操作系统会限制到128个)。另外,在GPT格式硬盘的第一个扇区里,还额外存放了一个MBR区域,用于支持传统的BIOS系统能够通过GPT硬盘启动(骚操作来源)。同时,该区域设置了EE标志表明本硬盘为GPT,防止不支持GPT的系统对其读写损坏数据。

  • 特点

  每个GPT分区最大可以达到2的64次个扇区,相当于9.44ZB。微软系操作系统把这个数值限制到了256TB。GPT在硬盘末尾的头部备份信息(备份信息通过CRC校验检查头部是否完整),使得硬盘分区表被破坏后还可以进行恢复。GPT其实是UEFI标准的一部分,用于进行支持UEFI形式的启动。

引导支持

  BIOS是传统的引导加载程序,后来Intel公司发明了EFI标准用于规范BIOS的开发。为了推广EFI,业内多家公司联合成立UEFI论坛,而Intel贡献出了自己的EFI规范,最终诞生了UEFI。题外话,UEFI内引入了一个叫Secure Boot的功能,预装了Windows的主机在主板内开启了安全启动选项的情况下,是无法安装预装系统之外的其他系统的。

  BIOS和UEFI只在引导时关心硬盘的分区格式,一旦进入到操作系统后,这两种格式的硬盘使用起来是不受主板引导类型影响的。理论上,BIOS引导支持MBR格式的硬盘启动,UEFI引导支持GPT格式的硬盘启动。但是,可以通过骚操作实现BIOS启动GPT格式硬盘上的操作系统,或UEFI启动MBR格式硬盘上的操作系统。(实现方式可参考http://tieba.baidu.com/p/5805120650?pn=1)

系统支持

  一般情况下Mac OS只可以进行GPT启动,Windows系则是从XP以后的64位系统开始支持GPT,至于Linux系,也是大部分情况下内核默认支持GPT(需要使用grub2作为启动项)。


发表评论

评论列表,共 0 条评论

    暂无评论