MBR分区 和 GPT 分区

时间:2019-09-20
本文章向大家介绍MBR分区 和 GPT 分区,主要包括MBR分区 和 GPT 分区使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

MBR分区 和 GPT 分区

本文首发:https://www.cnblogs.com/somata/p/MBRAndGPT.html

MBR

标准MBR结构(源:主引导记录):

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

MBR的几点特性:

  1. 由于MBR分区表大小限制,所以MBR只能由最大4个主分区,或3个主分区+1个扩展分区。
  2. 扩展分区可以划分成无数个逻辑分区,但是逻辑分区分区表并不会记录在MBR表中,而是另外记录在了扩展分区。
  3. MBR由于在最初设计没有考虑到如今的硬盘大小达到TB,所以MBR的最大磁盘大写支持为2.2TB(2.2×10字节)。

    GPT

    GPT构造:

    (该图原上传者为英语维基百科Kbolino - Transferred from en.wikipedia to Commons. Transfer was stated to be made by User:Kbolino.,CC BY-SA 2.5链接)

上图就是GPT的完整构造了,按照一个扇区就是一个LBA,这里可以这样来分:

LBA0:MBR分区

LBA1:分区表开头(源:全局唯一标识分区表)

用于记录与GPT格式相关的信息

起始字节 长度 内容
0 8字节 签名("EFI PART", 45 46 49 20 50 41 52 54)
8 4字节 修订(在1.0版中,值是00 00 01 00)
12 4字节 分区表头的大小(单位是字节,通常是92字节,即5C 00 00 00)
16 4字节 分区表头(第0-91字节)的CRC32校验,在计算时,把这个字段作为0处理,需要计算出分区序列的CRC32校验后再计算本字段
20 4字节 保留,必须是0
24 8字节 当前LBA(这个分区表头的位置)
32 8字节 备份LBA(另一个分区表头的位置)
40 8字节 第一个可用于分区的LBA(主分区表的最后一个LBA + 1)
48 8字节 最后一个可用于分区的LBA(备份分区表的第一个LBA − 1)
56 16字节 硬盘GUID(在类UNIX系统中也叫UUID
72 8字节 分区表项的起始LBA(在主分区表中是2)
80 4字节 分区表项的数量
84 4字节 一个分区表项的大小(通常是128)
88 4字节 分区序列的CRC32校验
92 * 保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节)

LBA2~33: 分区表项(源:全局唯一标识分区表)

用于记录每个分区的相关信息。

起始字节 长度 内容
0 16字节 分区类型GUID
16 16字节 分区GUID
32 8字节 起始LBA(小端序
40 8字节 末尾LBA
48 8字节 属性标签(如:60表示“只读”)
56 72字节 分区名(可以包括36个UTF-16(小端序)字符)

GPT几点特性:

  1. 为防止部分机器无法识别第一段扇区而破坏最开始的512字节,所以GPT的开头512字节留空。
  2. 由于GPT分区设计特殊,所以需要硬件支持UEFI,才能使用GPT分区作为引导分区。
  3. GPT分区最多可以有128个主分区。
  4. 无扩展分区和逻辑分区概念。
  5. 操作系统和底层硬件必须是64位及以上的,不支持32位。
  6. 最高支持18EB(1.8×10字节)。
  7. 在磁盘最后一段由与GPT开头一段相同的内容,作为GPT分区表的备份。以防GPT分区损害无法恢复。


本文经「原本」原创认证,作者乾坤盘,访问yuanben.io查询【EV233S4N】获取授权信息。

原文地址:https://www.cnblogs.com/somata/p/MBRAndGPT.html