MBR和GPT分区详解

时间:2024-03-16 07:24:29

MBR 方案的局限:

    主引导记录 (MBR) 分区方案是多数操作系统采用的传统分区方案。MBR 本身完全保存在硬盘的第一个扇区(512 字节)。在该空间中,MBR 的前 440 字节用于引导程序。BIOS 在计算机启动时读取并执行此代码。此代码区域之后的数据空间用于保存有关四个分区的信息,即主分区。每个分区采用两种描述方式:使用柱面/磁头/扇区 (CHS) 的表示法,以及逻辑块寻址 (LBA) 的表示法。CHS 表示法已不再使用,因为它局限于 24 位,仅可满足 8GB 的磁盘空间。32 位的 LBA 值可满足多达 2TB。由于 MBR 未剩下任何空间用于增加 LBA 大小,也限制了 MBR 仅可访问 2TB 的磁盘空间。

    MBR的另一个缺点在于,计算机硬盘的数据存储总空间最多只能划分为四个分区。如果硬盘上需要超过四个分区,则需要创建名为扩展分区的特殊分区的次级结构,扩展分区能够再次被分成一个或多个逻辑磁盘。此类分区存在数据完整性问题,因为它们是单一数据结构,容易因为疏忽或硬盘故障而损坏。此外,扩展分区数据结构没有任何形式的错误检测功能,因此难以定位损坏。

    根据惯例,Windows基于所报告的几何结构,在主轴边界上创建MBR磁盘分区和逻辑驱动器,但此信息不再与硬件(磁盘驱动程序或RAID控制器)的物理特征具有任何关系。从Windows Vista和Windows Server 2008开始,当硬件提供了更好的真实缓存或物理对齐提示时,选择了更多的逻辑边界。由于驱动器自己存储分区信息,所以操作系统不依赖于对齐方式。

    MBR 分区规则很复杂并且规定不明确。例如,柱面对齐意味着每个分区在长度上至少要为一个柱面么?MBR 分区由一个2字节字段识别,而且需要协调以避免冲突。IBM最初提供了这种协调方案,直到今天还没有权威的分区标识符列表。

    另一个常用的实践是使用分区的或“隐藏”扇区保存特定信息。该实践没有正式文件并且会导致难以调试的系统问题。这些年来,已经对公众发布了很多特定于供应商的实现和工具,这使支持变得很困难。

GUID 分区表方案——新的标准:

    GPT(GUID Partition Table):即全局唯一标识分区列表,是一个物理硬盘的分区结构。它用来替代BIOS中的主引导记录分区表(MBR)。GUID分区表(GPT)是作为Extensible Firmware Interface (EFI)计划的一部分引入的。相对于PC常用的较旧的主引导记录MBR分区方案,GPT提供了更加灵活的磁盘分区机制。

    分区是物理或逻辑磁盘上彼此连接的存储空间,就像物理上独立的磁盘一样工作。对于系统固件和已安装的操作系统来说,分区是可见的。操作系统启动之前,对分区的访问由系统固件控制,操作系统启动后则由操作系统控制。

    GUID分区表GPT是物理硬盘上的分区表布局的新标准。它是英特尔提出的可扩展固件接口(EFI)标准的一部分,该标准是PC BIOS的替代品。GPT采用64位磁盘指针,允许9.4泽字节或94亿太字节的最大磁盘分区大小。

    使用GPT磁盘的另一项优势就是克服了MBR磁盘的4个主分区限制。GPT支持最多128个主分区。GPT数据结构在磁盘上彻底地进行双重定义和保存:一次在开头,一次在末尾。这样提高了从事故或坏扇区导致的损坏中成功恢复数据的可能性。此外,关键数据结构将计算循环冗余检验(CRC)值,从而提高检测到数据损坏的可能性。下图显示了GPT磁盘的布局和数据结构的保存方式。

MBR和GPT分区详解MBR和GPT分区详解
MBR和GPT分区详解

    GPT 分区表上包含保护性的 MBR 区域,以提供与在 MBR 上操作的磁盘管理工具的向后兼容性。GPT 头定义分区项可使用的逻辑块地址的范围。GPT 头也定义了它在磁盘上的位置、其 GUID 和一个用于验证 GPT 头完整性的 32 位循环冗余检查 (CRC32) 校验和。GUID 分区表中的每个项以分区类型 GUID 开头。16 字节的分区类型 GUID,这类似于 MBR 磁盘的分区表中的 System ID,标识分区包含的数据类型和使用分区的方式,比如是基本磁盘还是动态磁盘。请注意,每个 GUID 分区项都有一个备份副本。

    GPT磁盘能够实现巨大的容量。GPT 磁盘上的分区数量不受临时方案(比如MBR Extended Boot Record (EBR) 定义的容器分区)的限制。

    GPT磁盘分区定义明确并能够完全自动识别。平台操作的关键数据被放置在分区中而不是未分区或“隐藏”扇区中。GPT磁盘使用原始的、备份的分区表存储冗余和CRC32字段,以提高分区数据结构的完整性。GPT 分区格式使用版本号和容量字段支持进一步的扩展。

    每个GPT分区都有独特的标识GUID和分区内容类型,所以不需要协调即可防止分区标识符冲突。每个GPT分区都有一个36字符的Unicode名称。这意味着任何软件都能够呈现一个人工可读的分区名称,而无需了解分区的其他内容。

    理论上,GPT磁盘在长度上最大可达2^64个逻辑块。逻辑块容量一般为512字节。最大分区(磁盘)容量受操作系统版本的影响。Windows XP和Windows Server 2003 的原始版本中,每个物理磁盘的最大容量为2TB,包括所有分区。对于Windows Server 2003 SP1、Windows XP x64版本及更新的版本,支持的最大原始分区为18EB(Windows文件系统目前的限制为每个256 TB)。规范对分区数量几乎没有限制。但是,Windows实现限制的分区数量为128个。GPT中的分区项的保留空间大小会限制分区数量。

 

    并非所有的 Windows 操作系统都完全支持 GPT 磁盘。从 Windows Server 2003 SP1 起,GPT 磁盘可用作数据盘,但不能作为引导盘。从 Windows Server 2008 起,仅 x64 版本的 Microsoft 操作系统支持 GPT 磁盘在 EFI(可扩展固件接口)启动模式中作为引导盘。引导至 Windows 操作系统时,GPT 磁盘在 BIOS 模式中不支持作为引导盘。

下表中的信息是 Microsoft 操作系统对于各种分区方案提供的基本支持。   
MBR和GPT分区详解

 

MBR和GPT分区详解

                          32位Windows对GPT分区支持情况

MBR和GPT分区详解
                            64位Windows对GPT分区支持情况
选择分区方案  

选择分区方案的主要考虑因素是硬盘大小、操作系统版本和操作系统中使用的软件工具。

对于在小于2TB的硬盘上运行,且使用传统软件工具(仅识别 MBR方案)的较老Microsoft操作系统的用户,MBR 分区方案是最佳选择。对于在超过2TB 的硬盘上运行Windows Server 2008 R2、Windows Server 2008或 Windows Small Business Server 2008 等较新操作系统的用户,可使用GPT分区方案。在可行的情况下,建议应使用 GPT 分区方案,因为它更加灵活,支持容量较大的硬盘,并且具备 MBR 分区方案未提供的大量功能和恢复机制。