MBR 和 GPT 区别

在上一篇文章: 从 BIOS 到 UEFI:PC 固件的演变 中,我们讲述了电脑启动的第一个阶段,也就是 BIOS/UEFI 引导阶段。在这一阶段结束后,固件就会在磁盘上查找可启动的系统。

而这个查找引导程序的关键过程,正是由硬盘的分区表格式来决定的。分区表就像是固件在磁盘上阅读的第一份地图,它告诉固件磁盘的分区信息、可引导分区的具体位置,以及如何加载引导程序。

在深入对比 MBR 和 GPT 的差异之前,我们先来回顾并了解一下分区和分区表的概念。

分区(partition)

硬盘分区实质上是对硬盘的一种格式化,格式化后才能使用硬盘保存各种信息。一块硬盘可以被分割成多个分区,从 Windows 操作系统的角度来看,就是 C:、D: 和 E: 等。在 Linux 操作系统中,硬盘被称为 /dev/sda,注意,这里的 a 是指第一块硬盘的意思,一般一台计算机有一块硬盘。如果有第二块、第三块硬盘,则被命名为 /dev/sdb、/dev/sdc,以此类推。/dev/sda 中的 sd 意为 SCSI Disk,历史上用于 SCSI 硬盘,现在也用于 SATA 和 USB 存储设备。

在 Linux 操作系统中,U盘也被以类似方式命名。不同于 Windows 操作系统,Linux 操作系统中的分区用数字来表示,如硬盘 /dev/sda 分了3个区,这3个区分别命名为 /dev/sda1、/dev/sda2 和 /dev/sda3。

分区表(partition table)

分区数据存放在硬盘的分区表中。硬盘分区的方式有两种:

  • MBR,Master Boot Record,主引导记录
  • GPT,GUID Partition Table,全局唯一标识分区

MBR 一共支持4个分区,如果用户的计算机硬盘分区数量不超过4个,那么可以把他们都划分为主分区。如果计算机硬盘分区数量超过4个,那么最多只能有3个主分区,还有1个要划分为扩展分区,通过把扩展分区划分为若干个逻辑分区,可以让分区数量突破4个的数量上限。但这毕竟只是一个妥协方案,GPT 技术改进了这个缺点。

GPT 可以支持多达128个分区,而且每个分区最大支持 18 EB(1EB 相当于 100万TB)的空间,为未来的超大空间硬盘预留了充足的空间。如果用户购买的计算机预装的是 Windows 早期的操作系统(Windows 7 及以前),那么就采用 MBR 分区方案;如果用户购买的计算机预装的是较新的操作系统(Windows10 及以后),那么就采用 GPT 分区方案。

文件系统(file system)

硬盘在完成分区后还不能立即使用,必须要执行格式化操作来创建文件系统。文件系统会对各类数据进行分类,把数据组织成一个个独立的文件,这样就方便对文件数据进行控制和管理(如存储、修改、检索和保护等)。

Windows 操作系统主要使用的文件系统有 FAT、FAT32、NTFS 等,Linux 操作系统主要使用的文件系统有 ext2、ext3、ext4 等。

从 MBR 到 GPT 分区

主引导记录 (MBR) 作为一种老旧且历史悠久的分区表格式,它的诞生与古老的 BIOS 固件是紧密耦合在一起的。这种设计完美地适应了 1980 年代的计算机硬件。

然而,由于 MBR 的设计基于早期的硬件设计,它存在着两大致命的限制,使其不适用于现代大容量硬盘:

  1. 容量限制: MBR 最大只能支持 2TB 的硬盘容量。对于任何大于 2TB 的存储空间,MBR 将无法寻址。
  2. 分区数量限制: MBR 最多只支持 4 个主分区(或 3 个主分区加上 1 个扩展分区)。这限制了系统管理员和用户对磁盘灵活分区的需求。

随着硬件技术的飞速发展,特别是大容量硬盘成为主流,以及 BIOS 被 UEFI 固件所取代,业界迫切需要一种新的分区表格式。于是,伴随着 UEFI 固件的普及,更加强大和灵活的 GUID 分区表 (GPT) 格式也应运而生。

GPT提供了更加灵活的磁盘分区机制。优点是支持2TB以上的大硬盘;每个磁盘的分区个数几乎没有限制,分区大小也几乎没有限制。

目前,计算机系统的启动方式主要有两种:一种是 BIOS 配合 MBR 分区表格式的分区来启动,另一种就是 UEFI 配合 GPT 分区表格式的分区来启动(UEFI 也可以使用 Legacy 兼容模式来启动 MBR)。现在的大部分计算机都已经支持 UEFI固件,且都配备了大容量的硬盘,因此都是采用 UEFI + GPT 的启动方式来运行计算机。

因此在安装系统时,需要根据固件类型来对硬盘进行分区,简单来说就是,UEFI 对应 GPT,BIOS 对应 MBR。

查看硬盘分区格式

在 Windows 中可以在磁盘管理中右键磁盘查看属性,在卷选项卡中能够看到磁盘分区格式:

如果要对新的硬盘进行分区,可以在初始化磁盘中选择分区格式:

在安装系统时,也会使用 fdisk 或 DiskGenius 来对磁盘进行分区。

总结

总结而言,硬盘的分区格式与主板的固件标准是一对密不可分的技术组合:

  • 传统模式: BIOS 固件 配合 MBR 分区表启动。
  • 现代模式: UEFI 固件 配合 GPT 分区表启动。

因此,在您下次安装操作系统或初始化新硬盘时,只要确认了的计算机固件类型,就能做出正确的选择:

  • 如果电脑支持 UEFI 且硬盘大于 2TB,请务必选择 GPT。
  • 如果电脑只支持老式 BIOS,则只能选择 MBR。
相关推荐
gscsded31 分钟前
AUTOSAR CanTp 模块学习笔记
单片机·嵌入式硬件·汽车
Hello_Damon_Nikola42 分钟前
扰流筋从原理到应用
人工智能·单片机·嵌入式硬件
某林21243 分钟前
从“仿真能跑”到“真机能走”:一套轮腿机械狗强化学习系统的工程化实践
人工智能·stm32·嵌入式硬件·架构·机器人·机械狗
coding4u1 小时前
Mac 外接显示器完全指南:从插上线到调好每个参数
macos·计算机外设·文件管理·显示器·策略模式·quick look扩展
luiyarch2 小时前
IP8到底是什么?
嵌入式硬件·车载系统
hongmai6668882 小时前
ESP32-WROVER-B-N8R8:8MB PSRAM加持的经典双核模组,现在还值得选吗?
单片机·嵌入式硬件·物联网·智能路由器·risc-v
VALENIAN瓦伦尼安教学设备3 小时前
ASHOOTER激光对中仪如何通过颜色确定调整是否合适
数据库·嵌入式硬件·算法
SilicoCode3 小时前
STM32入门教程:BKP备份寄存器 & RTC实时时钟详解
stm32·单片机·嵌入式硬件
.Peter3 小时前
.NET/WPF 程序在部分 Windows 电脑无法保存用户环境变量:使用 DPAPI 实现安全兼容
windows·信息安全·c#·.net·wpf·环境变量·dpapi
lhbweilai4 小时前
STM32 简单认识一下FreeRTOS(纯理论)
stm32·单片机·嵌入式硬件