MBR分区表
MBR(Master Boot Record,主引导记录)分区表也叫DOS分区表(MBR的概念最早出现在IBM PC DOS 2.0操作系统中,这个操作系统于1983年发布;由于DOS操作系统广泛使用MBR分区结构,因此MBR也被称为DOS分区体系),是早期硬盘上的主要分区结构,MBR扇区是整个硬盘的第一个扇区(0柱面0磁道1扇区,即0号扇区),总共512字节。MBR不仅包含了启动代码,还包含了硬盘的分区表信息(DPT)。以下是MBR分区表结构的详细描述:
主引导记录(MBR):
- 位置:0x000 - 0x1BD
- 大小:446字节
- 作用:当计算机启动时,BIOS会加载并执行主引导记录的引导代码(Bootstrap Code),引导代码会检查分区表中的活动分区,然后将控制权传递给该分区的引导扇区,从而启动操作系统的加载过程。
分区表(Partition Table;DPT,Disk Partition Table):
- 位置:0x1BE - 0x1FD
- 大小:64字节
- 分区表记录了硬盘上的分区信息,包括分区的起始位置、大小和分区类型等
- 结构:包含4个分区表项,每个分区表项16字节。
- 状态字节:1字节,用于标识分区是否为活动分区。0x00:不可引导,0x80:可引导(活动分区)
- 起始头:1字节,分区的起始磁头号。
- 起始扇区和柱面:2字节,描述分区的起始扇区和柱面。
- 分区类型:1字节,标识分区的类型,例如FAT32、NTFS等。
- 结束头:1字节,分区的结束磁头号。
- 结束扇区和柱面:2字节,描述分区的结束扇区和柱面。
- 起始LBA:4字节,分区的起始逻辑块地址。
- 扇区数:4字节,分区中的扇区数量。
其中 起始头 起始扇区和柱面 (即第2-4字节)为起始CHS地址(由于CHS只能寻址到8G,早已经淘汰不用),结束头 结束扇区和柱面(即第6-8字节)为结束CHS地址
- 签名标识:
- 位置:0x1FE - 0x1FF
- 大小:2字节
- 值:0x55AA
- 作用:标识这是一个有效的MBR结构,也是MBR扇区的结束标识。如果55AA标识被修改,系统无法识别磁盘是有效的MBR磁盘,从而导致磁盘分区信息不可读取。十分重要
|
MBR Partition Table Scheme
|
|
MBR扇区(512Byte)
|
主引导记录 MBR(446Byte):引导代码(Bootstrap Code)区域
|
| 分区表(64Byte) |
分区表项1(16Byte)
|
|
分区表项2(16Byte)
|
|
分区表项3(16Byte)
|
|
分区表项4(16Byte)
|
|
结束标志(2Byte):0x55AA,标识这是一个有效的MBR分区结构。
|
|
分区区域
|
主分区 1
|
|
主分区 2
|
|
主分区 3
|
|
扩展分区
|
逻辑分区 1
|
|
逻辑分区 2
|
|
逻辑分区 3
|
|
逻辑分区 …
|
|
MBR 分区表项结构
|
|
偏移(16进制)
|
字节数
|
描述
|
|
00-00
|
1
|
引导标志;0x00表示非活动分区,不可引导;0x80表示活动分区,可引导
|
|
01-03
|
3
|
分区起始的CHS地址(由于CHS只能寻址到8G,早已淘汰不用,可空)
|
|
04-04
|
1
|
分区的类型;00H(即0x00,都是16进制的写法)——表示该分区未用(即没有指定); 06H——FAT16基本分区;0BH——FAT32基本分区;05H——扩展分区;07H——NTFS分区; 0FH——(LBA模式)扩展分区(83H为Linux分区等)
|
|
05-07
|
3
|
分区结束的CHS地址(可空)
|
|
08-0B
|
4
|
分区的起始扇区号
|
|
0C-0F
|
4
|
分区所以包含的扇区数
|
|
MBR 分区基本结构
|
|
MBR扇区
|
分区区域
|
|
主分区 1
|
主分区 2
|
主分区 3
|
扩展分区
|
|
分区引导扇区 PBR
|
数据存储区
|
分区引导扇区 PBR
|
数据存储区
|
分区引导扇区 PBR
|
数据存储区
|
分区引导扇区
分区引导扇区位于磁盘每个分区中的第一个扇区;分区引导扇区包含了引导代码(Bootstrap Code)和自己的分区表以及结束标识0x55AA,该引导代码主要作用是寻找分区下系统引导程序,如:ntldr、bootmgr、grldr(Grub)、btldr.mbr(BootLink)。
|
分区引导扇区
|
|
PBR
|
VBR
|
OBR
|
DBR(DOS时代)
|
|
Partition Boot Record
|
Volume Boot Record
|
OS Boot Record
|
Dos Boot Record
|
|
分区引导记录
|
卷引导记录
|
操作系统引导记录
|
操作系统引导记录
|
扩展分区
扩展分区:MBR分区表只有四项,因此规定有且仅有一个区可以被定义成“扩展分区”(Extended partition)。可以在扩展分区中继续分区。
逻辑分区:指在扩展区里面又分成多个区。这种分区里面的分区,就叫做“逻辑分区”(logical partition)
扩展分区可以分为多个子扩展分区,子扩展分区就像是一个单独的硬盘,最开始的扇区为扩展引导扇区 EBR,结构同 MBR,只是分区表只用了两项,第一项表示该子扩展分区的逻辑分区,第二项表示下一个子扩展分区,其他两项为 0 。因此扩展分区就像是构建了一个单链表,将各个子扩展分区连起来。
EBR(Extended Boot Record,扩展引导记录),EBR扇区和MBR非常类似,一个EBR扇区对应一个逻辑分区,其有用部分仅有其DPT(即64字节区)前两个表项,第一个表项表示本扩展分区(图中逻辑驱动器P)的起始地址和扇区数量,但是该地址为相对偏移,实际的起始扇区为本扇区的实际地址加上相对偏移量,这个起始扇区其实是第一个逻辑驱动器的DBR扇区,第二个表项记录了下一个扩展分区(逻辑驱动器Q)的EBR扇区的起始地址和扇区总数量
M B R 扩 展 分 区
|
子 扩 展 分 区 1
|
第1个 EBR
|
扩展 分区 引导 记录 (空)
|
扩 展 分 区 表
|
分区表项1
|
当前逻辑分区
|
|
分区表项2
|
下一扩展分区
|
|
分区表项3
|
未使用
|
|
分区表项4
|
未使用
|
|
EBR结束标识
|
0x55AA
|
第1个 逻辑 分区
|
分区引导扇区 PBR
|
数据 存储区
|
子 扩 展 分 区 2
|
第2个 EBR
|
扩展 分区 引导 记录 (空)
|
扩 展 分 区 表
|
分区表项1
|
当前逻辑分区
|
|
分区表项2
|
下一扩展分区
|
|
分区表项3
|
未使用
|
|
分区表项4
|
未使用
|
|
EBR结束标识
|
0x55AA
|
第2个 逻辑 分区
|
分区引导扇区 PBR
|
数据 存储区
|
子 扩 展 分 区 3
|
第3个 EBR
|
扩展 分区 引导 记录 (空)
|
扩 展 分 区 表
|
分区表项1
|
当前逻辑分区
|
|
分区表项2
|
下一扩展分区
|
|
分区表项3
|
未使用
|
|
分区表项4
|
未使用
|
|
EBR结束标识
|
0x55AA
|
第3个 逻辑 分区
|
分区引导扇区 PBR
|
数据 存储区
|
限制
- MBR只支持最大2TB的硬盘。
::: details
MBR分区方案用4个字节(以32位的二进制数形式表示)存储分区的总扇区数,使用32位的LBA(Logical Block Addressing)寻址方式,最大能表示2的32次方的扇区个数,按每扇区512字节计算,磁盘容量超过2TB以后,MBR分区表将无法表示超出2TB范围的扇区的起始位置。即使使用4K扇区的磁盘也是如此。
计算MBR最大识别的硬盘容量的步骤如下:
计算分区大小的最大值:(2^32 - 1) 个扇区 × 512字节/扇区 = 2,199,023,255,040字节(约2TB)。
:::
- 最多只能有4个主分区,或者3个主分区加一个扩展分区(MBR分区表规定了一个硬盘上最多只能有一个扩展分区),扩展分区内可以创建多个逻辑分区。
随着硬盘容量的增加和对多个分区的需求,MBR分区表结构逐渐被GPT(GUID Partition Table)所取代,GPT标准规范下可以创建128个分区(包括保留分区)。GPT使用64位的LBA寻址方式,最大支持9.4ZB(1 ZB=1024^7 bytes)的磁盘容量。但是,要使用GPT分区方案,需要使用支持UEFI(Unified Extensible Firmware Interface)的计算机,而不是传统的BIOS(Basic Input/Output System)计算机。
关于4k扇区硬盘
::: details
Advanced Forma
"Advanced Format"(AF,高级格式化)是IDEMA(International Disk Drive Equipment and Materials Association)推出的硬盘格式化标准,核心是将硬盘的物理扇区大小从传统的512字节增加到4096字节(即4K),为了提高存储密度和数据可靠性而推出,同时尽可能保持与现有的操作系统和应用程序的兼容性,Advanced Format是4K扇区硬盘的一个关键技术标准。与传统的512字节扇区相比,它可以提供更好的性能和数据错误校正能力;由于许多旧的操作系统和应用程序都是为512字节扇区设计的,因此直接使用4K扇区可能会导致兼容性问题,为了解决这个问题,硬盘制造商引入了512字节扇区模拟(512e)技术,使4K扇区硬盘能够在这些旧系统上运行。
在Advanced Format硬盘中,物理扇区大小为4K,但逻辑扇区大小(即操作系统看到的扇区大小)可以是传统的512字节(通过512e技术)或4K。
Advanced Format的主要特点:
更大的物理扇区:传统的硬盘通常使用512字节的物理扇区。而在Advanced Format中,物理扇区大小被增加到4K。
提高数据可靠性:更大的物理扇区也意味着可以使用更大的错误校正代码(ECC)区块,从而提高数据的可靠性和完整性。
提高存储密度:更大的物理扇区意味着硬盘上的每个扇区可以存储更多的数据,从而提高存储密度。
性能优化:4K扇区也有助于提高硬盘的性能。由于每个扇区能够存储更多的数据,因此在处理大文件时,硬盘需要进行更少的I/O操作。
兼容性:虽然4K扇区带来了多种好处,但也存在兼容性问题。为了解决这个问题,硬盘制造商引入了512字节扇区模拟(512e)技术,使4K扇区硬盘能够在不支持4K扇区的操作系统和应用程序上运行。
Advanced Format的类型:
为了确保与传统的512字节扇区的操作系统和应用程序的兼容性,硬盘厂商通常会采用一种称为“512e”(512字节模拟)的技术,将4K扇区模拟成512字节扇区。这样,操作系统和应用程序会认为它们正在与传统的512字节扇区硬盘交互,从而确保兼容性。但这种模拟方法可能会导致4K对齐的问题,因为真实的物理扇区大小是4K,而操作系统可能会按照512字节的扇区进行读写,这可能会导致性能下降。
:::
GPT 分区表
|
GUID Partition Table Scheme
|
|
LBA 0
|
Protective MBR (保护 MBR)
|
出于兼容性考虑仍然存储了一份传统的MBR, 用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据。 在这个MBR中只有一个标识为0xEE的分区, 以此来表示这块磁盘使用GPT分区表。
|
Primary GPT (分区表)
|
LBA 1
|
Primary GPT Header (GPT头)
|
GPT头定义了硬盘的可用空间以及组成分区表的项的大小和数量。 Windows最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。 (EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)
|
LBA 2 ~ LBA 33
|
Partition Entries 1~128 (分区表项)
|
一共占用32个LBA,每个LBA可以提供4组的分区记录 (LBA默认512字节,每个分区表项占用128个字节), 默认情况下共可以有4×32=128组分区记录; 每个分区表项由分区类型GUID、 分区GUID、起始LBA、末尾LBA、属性标签及分区名组成
|
|
LBA 34 ~ LBA -34
|
Partitions (分区区域)
|
GPT的每一个分区都可以独立存在, 没有所谓的扩展、逻辑分区的概念,即所有分区都是主分区。 分区包含EFI系统分区(ESP, EFI system partition)(FAT格式)、 Microsoft 保留分区(MSR, Microsoft Reserved Partition)等特殊分区
|
Secondary GPT (分区表副本)
|
LBA -2 ~ LBA -33
|
Partition Entries 1~128 (分区表项副本)
|
为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。
|
|
LBA -1
|
GPT Header (GPT头副本)
|
GPT(GUID,GUID Partition Table,全局唯一标识分区表)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(UEFI)标准的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主引导记录(MBR)分区表。
以下是GPT分区表的一些主要特点和组成部分:
容量支持:GPT相比于MBR模式能够处理大于2TB容量的硬盘,GPT使用64位的LBA寻址方式,最大支持9.4ZB的磁盘容量。
分区数量:GPT不存在扩展分区和逻辑分区,所有分区全都是主分区,且理论上可存在的主分区个数是无限的。
保护性MBR:在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR(LBA 0),这个MBR叫做保护性MBR(Protective MBR)。
主要GPT头部:主要GPT头部位于1号扇区,会定义分区表的起始位置,结束位置,分区表项个数。
分区表项:分区表位于GPT磁盘的2-33号扇区,一共占用32个扇区,能够容纳128个分区表项。每个分区表项大小为128字节。因为每个分区表项管理一个分区,所以GPT磁盘可以创建128个分区。
备份:GPT的分区表在GPT头部和磁盘尾部各存一份,这种机制使得GPT的分区表不容易破坏或丢失。
ESP分区
ESP(EFI System Partition,EFI系统分区),它是当我们首次为GPT磁盘分区时会提示建立的,对于UEFI启动来说,ESP分区不是必需的,但是一个FAT分区确是必须的,ESP的本质是一个FAT分区(格式为FAT32或FAT16),只不过分区程序在给GPT磁盘分区的时候提醒你建立ESP,确认同意那么程序将建立一个指定大小的FAT分区,并且命名为"ESP",当然ESP分区是有一些参数的,如:ESP在主引导记录(MBR)分区表方案的ID是0xEF, GUID是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B } 固定;但是这些参数并不影响启动,更加类似于一个人的“身份证”然而我们UEFI启动可以不需要“身份证”所以从这里我们可以看出:ESP分区可以用任意位置的任意大小的任意FAT分区代替。
如果存在多个磁盘,每个磁盘上存在多个FAT分区,如何选择EFI系统分区:
多个磁盘根据设定的磁盘启动顺序依次启动查找FAT分区,每个磁盘多个FAT分区,按照磁盘分区顺序一次查找有引导文件的FAT分区,即每个GPT磁盘可以有多个EFI系统分区。
磁盘分区表中,每个分区都有一个全局唯一的标识符(globally unique identifier,GUID),这是一个随机生成的字符串;也有一些特殊的分区拥有固定的GUID,如:EFI系统分区,MSR保留分区等。
MSR分区
Microsoft 保留的分区 (Microsoft Reserved Partition,MSR) 在每个磁盘驱动器上保留以后供操作系统软件后使用的空间。
MSR 的大小:
在大小小于 16GB 的驱动器上,MSR 为 32MB。
在大于或等于 16GB 的驱动器上,MSR 为 128MB。
GPT 系统支持
|
Windows种类
|
能否读写GPT磁盘
|
能否从GPT磁盘启动
|
|
32位 Windows XP
|
不能。只能看到一个Protective MBR分区
|
不支持
|
|
Windows 2000/NT/9x
|
不能。只能看到一个Protective MBR分区
|
不支持
|
|
64位 Windows XP
|
能
|
只有基于Itanium的系统才能从GPT磁盘启动
|
|
Windows Server 2003 SP1及以上版本
|
能
|
只有基于Itanium的系统才能从GPT磁盘启动
|
|
Windows Vista
|
能
|
只有基于 EFI 的系统支持从GPT磁盘启动
|
|
Windows Server 2008
|
能
|
只有基于 EFI 的系统支持从GPT磁盘启动
|
|
Windows 7
|
能
|
只有基于 EFI 的系统支持从GPT磁盘启动
|
官方文档参考
windows-server-administration-windows-commands.pdf
创建分区
create partition efi
create partition msr
windows-hardware-manufacture-windows-11.pdf
windows-hardware-manufacture-windows-10.pdf
Windows 和 GPT 常见问题解答
troubleshoot-windows-server.pdf
有关 GUID 分区表磁盘体系结构的常见问题解答
MBR & GPT 区别
|
|
MBR
|
GPT
|
|
LBA寻址
|
32位
|
64位
|
|
最大分区容量
|
2TB
|
9.4ZB
|
|
最大分区数
|
4个主分区(或3个主分区1个扩展分区)
|
128个主分区
|
|
支持的固件接口
|
BIOS
|
UEFI
|
系统分区 & 启动分区
系统分区:加载操作系统的引导文件(ntldr、bootmgr)所在分区,也叫 引导分区,系统分区可以(但不是必须)与启动分区相同。
启动分区:操作系统文件所在分区,存储Windows目录的分区。
End