什么是MBR?主引导记录(MBR)的工作原理是什么?

最后更新: DICIEMBRE 18,2025
  • MBR 是磁盘的第一个扇区(512 字节),其中包含引导代码、分区表和 0x55AA 签名。
  • BIOS+MBR 启动过程基于链式加载:BIOS 加载 MBR,MBR 定位活动分区,然后将控制权交给操作系统加载程序。
  • 与 GPT 和 UEFI 相比,MBR 将磁盘容量限制为 2 TiB(逻辑扇区大小为 512 字节),并且只允许四个主分区。
  • dd、diskpart、PowerShell 和 bootrec 等工具允许您在 Windows 和 Linux 中复制、转换和修复 MBR 和引导管理器。

基本MBR方案

在讨论MBR、GPT、BIOS和UEFI时,很容易感到困惑,因为它们混合了硬件、固件、磁盘分区和启动管理器等概念。然而,对主引导记录(MBR)的透彻理解是了解计算机实际启动方式、Windows为何有时会在安装Linux后“消失”以及硬盘限制的关键。

本指南将以通俗易懂的西班牙语,详细解释MBR的定义、结构、BIOS在其中的作用、它与GPT和UEFI的区别、它会导致哪些常见问题、如何在Windows和Linux系统中修复它,以及GRUB和双启动是如何实现的。您还将看到一些实用的命令示例(diskpart、PowerShell、dd等)以及一些实际案例,例如常见的“Windows无法安装到此磁盘;分区表为MBR”。

MBR是什么?它位于哪里?

MBR扇区在磁盘上的位置

MBR (主引导记录)是使用传统 BIOS 分区方案划分的硬盘或 SSD的第一个物理扇区。这个第一个扇区通常大小为512 字节,存储在 CHS 位置(柱面 0,磁头 0,扇区 1),或者用现代 LBA 术语来说,存储在扇区 0中。

该扇区不属于任何特定分区:它是一个特殊区域,包含启动系统所需的最小代码以及磁盘划分的基本信息。即使您删除或格式化分区,除非您显式覆盖它,否则MBR 仍会保持不变。

实际上,当谈到 MBR 时,几乎总是指经典 PC 式磁盘的初始 512 字节扇区,尽管该术语有时也用于 IBM 兼容架构中某些分区的引导扇区。

MBR部门的内部结构

MBR部门的内部结构

在扇区 0 的 512 字节中,并非所有内容都是代码。经典的 MBR 设计保留了三个不同的区域:

  • 初始字节数为 446它们包含 主引导代码一个用机器语言(x86 实模式)编写的小程序,在 MBR 加载到内存后立即运行。
  • 接下来的 64 字节:形成 分区表由 4 个 16 字节的条目组成,每个条目描述一个主分区。
  • 最后 2 个字节他们保留 MBR签名魔法值 0x55AA,BIOS 使用该值来检查读取的扇区是否为有效的引导扇区。

在某些系统中,代码区内,具体来说是第 440 字节到第 446 字节之间,还存储着一个4 字节的磁盘签名(磁盘 ID 或磁盘签名)。Windows NT/2000 及更高版本,以及 Linux(内核 2.6 及更高版本)都使用此签名来识别特定磁盘,并将其与驱动器号、启动卷等关联起来。

分区表中每个条目的格式

MBR分区表中的四个16字节条目中的每一个都包含如下数据:

  • 国家体制 (字节 0x00):指示分区是否处于活动/可引导状态。
  • CHS初始 (0x01):第一个分区扇区的柱面/柱头/扇区。
  • 隔断类型 (0x04):定义类型(FAT32、NTFS、Linux、扩展等)。
  • CHS 决赛 (0x05):分区的最后一个 CHS 地址。
  • 初始 LBA (0x08,4 字节):分区开始的逻辑扇区。
  • 扇形长度 (0x0C,4 字节):扇区总数。

按照惯例, MBR 中只有四个主要条目。为了克服这一限制,人们发明了扩展分区:其中一个条目指向一个特殊分区,该分区链接了分布在磁盘上的更多描述符,从而允许创建多个逻辑分区。

BIOS 如何干预使用 MBR 启动?

启动过程中 BIOS 和 MBR 的交互

在采用BIOS 和 MBR 方案的经典 PC 中,启动顺序(简单来说)如下:

  1. 当打开时, CPU运行BIOS,存储为 固件 位于主板上的芯片(EPROM、闪存等)。
  2. BIOS 执行以下操作: 启动自检 (POST),检查内存(计算机内存的类型),CPU,基本设备并读取存储在CMOS中的配置。
  3. 然后,按照配置的启动顺序,BIOS 尝试读取 第一个有效磁盘的第一个扇区(MBR) 并将其复制到物理内存地址 0x7C00。
  4. 检查最后两个字节是否为 0x55AA;如果是,则 MBR签名正确将控制权转移到该代码(跳转到 0x7C00)。
  5. MBR 代码检查 分区表 寻找 分区标记为活动分区 (起跑旗)
  6. 找到后,加载 卷引导记录 (VBR) 内存中该分区的访问控制权就交给了它。这就是…… 操作系统启动管理器 (NTLDR、BOOTMGR、GRUB、LILO 等)。
  Windows网络安全:实用完整指南

这种链式控制转移称为链式加载:MBR 加载活动分区的引导扇区,而该扇区又加载更大的代码,该代码知道如何启动操作系统或显示包含多个系统的菜单。

MBR 代码的功能极其有限:它必须限制在约 440 个有效字节以内(其余空间用于分区表、签名和可能的标识符),因此它只能执行一些非常具体的任务:在发生错误时显示一条简单的消息、检查四个分区条目、激活 A20 行、使用 BIOS INT 13h 读取磁盘……仅此而已。许多实现会将 MBR 代码从 0x7C00 迁移到另一个地址(例如 0x7A00),以便释放后续引导扇区加载所需的空间。

MBR的技术局限性

尽管 MBR 在过去几十年一直是事实上的标准,但它存在一些如今显而易见的重大局限性:

  • 主分区数如您所见,只有 4 个条目。虽然可以通过扩展分区来解决这个问题,但这只是一个简单的权宜之计。
  • 尺寸限制MBR 表使用 32 位 LBA 地址来指示起始扇区和每个分区中的扇区总数。这允许最多…… 232 行业 可寻址的。

如果逻辑扇区大小为 512 字节,则最大可寻址面积为:

2 32 × 512 字节 ≈ 2 TiB容量/MBR 磁盘(实际上略少一些,因为一个扇区用于控制)。

当磁盘开始使用4096 字节 (4K)的物理扇区时,MBR 方案的理论极限变为:

2 32 × 4096 字节 ≈ 16 TiB

问题在于,许多高级格式磁盘为了兼容性,在逻辑上模拟 512 字节扇区 ( 512e ),因此大多数系统仍然会达到 2 TiB 的实际容量限制。一些磁盘固件或 USB 适配器允许暴露 4096 字节的逻辑扇区或执行内部转换,但这并不常见,而且可能会导致不兼容。

理论上,使用更大的扇区(例如 65536 字节), MBR 可以达到256 TiB 的容量,但这更多的是一种学术设想。

MBR 与 GPT 及其与 BIOS/UEFI 的关系

为了克服这些局限性,定义了GPT(GUID 分区表),它是 UEFI 规范的一部分。MBR和 GPT的主要区别在于:

  • 容量GPT 可以处理数 TB 甚至 EB 的磁盘,而不受 32 位的硬性限制。
  • 分区数在 Windows 系统上,GPT 最多允许 128参与者 无需使用扩展分区。理论上,还可以定义更多分区。
  • 冗余GPT 维护 分区表的副本 磁盘上的多个位置存储校验和;如果其中一个损坏,可以从另一个重建。
  • 兼容性在 GPT 磁盘上 MBR保护 在扇区 0 中,这样只能理解 MBR 的旧工具就不会认为磁盘为空。

在采用UEFI的现代系统中,固件不再通过盲目读取 MBR 并执行其代码来启动。相反,它能够识别 GPT 分区表,并可以读取位于称为EFI 系统分区 (ESP)的特殊分区中的 FAT 等文件系统。然后,它会从该分区加载 EFI 可执行文件(例如,Windows 中的 BOOTMGFW.EFI或Linux 中的grubx64.efi)。传统的 MBR 不再是主要的启动组件,尽管为了兼容性,它可能仍然存在。

  UTP电缆:它的定义、工作原理、分类和最佳实践

MBR、启动管理器和 GRUB:谁说了算?

在 BIOS+MBR 环境中,MBR 通常包含一个最小加载程序,该加载程序:

  • 找到活动分区。
  • 它加载其引导扇区(VBR)。
  • 该 VBR 加载完整的操作系统启动管理器代码。

更高级的引导管理器,例如GRUB,通常会用自己的代码替换标准的 MBR 代码,这些代码能够实现以下功能:

  • 显示一个 具有多个操作系统的菜单.
  • 加载位于磁盘“空”磁道或文件中的其他部分。
  • 链式装载。

因此,当您在已安装过 Windows 的 MBR 磁盘上以 BIOS 模式安装 Linux 时,安装程​​序通常会写入自己的 MBR 代码。这个新的 MBR 不会直接跳转到 Windows 分区的 VBR,而是加载 GRUB 内核,GRUB 内核会显示一个菜单,您可以从中选择启动 Linux 或链接 Windows 引导加载程序。

在UEFI中,情况有所不同:固件直接从ESP分区加载EFI文件,GRUB也作为另一个EFI二进制文件安装在那里。 “替换MBR”的概念变得不再那么重要,因为启动过程不再仅仅依赖于那512字节的扇区。

MBR、Windows、Linux 和双启动

在同一台电脑上混合使用Windows 和 Linux 系统时,会涉及到以下几个因素:

  • 如果固件在 传统BIOS模式 或在 UEFI 模式下。
  • 如果磁盘已分区,则 MBR 或 GPT.
  • 它安装在哪里? 主启动管理器 (MBR、ESP、另一个光盘……)

例如,在已安装 Windows 的 UEFI 和 GPT 磁盘的 PC 上,典型的现代 Linux 发行版安装过程会创建或利用现有的 ESP 分区,并添加其自身的 EFI 二进制文件(GRUB)。然后,它会注册一个名为“Ubuntu”、“Manjaro”等的 UEFI 启动项。固件会同时显示这两个启动项:Windows 启动管理器启动项和GRUB启动项。GRUB 反过来可能会在其菜单中提供链式加载 Windows 的选项。

然而,在采用 BIOS+MBR 的系统上,发行版通常会将 GRUB 安装在第一块磁盘的 MBR 中。安装程序会检测到 Windows,并在 GRUB 菜单中添加一个条目,之后每次启动计算机时,控制权都会通过 GRUB 传递。如果您删除了 Linux,并且 MBR 指向的 GRUB 已不存在,那么在用 Microsoft 工具修复 MBR之前,您将无法启动进入 Windows 。

在 Linux 系统中备份、恢复和擦除 MBR

在 UNIX 和 GNU/Linux 系统中,通常使用`dd`命令直接从控制台操作 MBR。一些典型示例如下:

备份主数据库

仅保存第一个扇区(经典 MBR):

dd if=/dev/xxx of=mbr.backup bs=512 count=1

其中/dev/xxx将是设备(sda、nvme0n1 等)。

为了保险起见,如果您还想存储前 63 个扇区(以防存在 GPT 数据或额外的引导代码):

dd if=/dev/xxx of=mbr_63.backup bs=512 count=63

恢复主数据库

如果您需要从备份中恢复之前的 MBR :

dd if=mbr.backup of=/dev/xxx bs=512 count=1

通过将扇区设置为零来删除 MBR。

要彻底删除 MBR 信息(注意:这将导致磁盘上没有可识别的分区表):

dd if=/dev/zero of=/dev/xxx bs=512 count=1

擦除之后,磁盘将显示为“原始”状态,需要重新分区(使用 MBR 或 GPT 分区表)并重新创建所有内容。

在 Windows 中修复或重写 MBR

在较早的 Windows 系统(DOS、Windows 9x)中,fdisk /mbr工具会在不影响分区表的情况下重写 MBR 代码。虽然相关文档不多,但它可以快速修复许多启动病毒。

在Windows 2000 及更高版本中,从恢复控制台或现代安装环境中,可以使用以下命令运行bootrec实用程序:

  • bootrec /FixMbr
  • bootrec /FixBoot
  • bootrec /ScanOs
  • bootrec /RebuildBcd

这组命令通常足以将 Windows 引导加载程序恢复到 MBR 或 ESP 分区,具体取决于您是从 BIOS 还是 UEFI 启动。/FixMbr命令会写入一个新的、通用的、与 Windows 兼容的 MBR 代码,而不会更改分区。

  Windows 11 中新增外围设备电池小部件

在某些版本(例如 Vista 或某些版本的 10/11)中,您可能会遇到“访问被拒绝”错误。 bootrec /FixBoot这需要额外的步骤(例如,为 EFI 分区分配盘符、使用 bcdboot 等),但总体思路是一样的: 重新安装 Windows 启动管理器 替换 MBR 或 EFI 启动中可能存在的 GRUB 代码。

在 Windows 中检查、转换和管理 MBR/GPT

如果您不确定磁盘格式是 MBR 还是 GPT,可以使用磁盘管理进行检查:

  • 右键单击“开始”按钮 → 迪斯科舞厅.
  • 右键单击“磁盘 0”→ 物业.
  • 标签页 卷数在那里您可以看到该样式是主引导记录 (MBR) 还是 GUID 分区表 (GPT)。

您也可以使用diskpart或 PowerShell在 MBR 和 GPT 之间进行转换,但需要注意一个非常重要的事项:标准转换需要一个空磁盘。这意味着您必须事先删除所有分区,或者使用承诺无损转换的特定工具。

使用 diskpart 进行转换

在管理员控制台中:

  1. diskpart
  2. list disk (写下记录编号)
  3. select disk <número>
  4. clean (删除所有分区)
  5. 将 MBR 转换为 GPT: convert gpt
  6. 将 GPT 转换为 MBR: convert mbr

完成后,磁盘将按照选定的方案进行初始化,您可以再次创建分区。

使用 PowerShell 进行转换

在具有管理员权限的 PowerShell中:

  1. 列出专辑: Get-Disk
  2. 清理要转换的磁盘上的分区:
    Clear-Disk -Number <DiskNumber> -RemoveData -Confirm:$false
  3. 初始化为 GPT:
    Initialize-Disk -Number <DiskNumber> -PartitionStyle GPT
  4. 或者初始化为 MBR:
    Initialize-Disk -Number <DiskNumber> -PartitionStyle MBR
  5. 使用以下命令检查结果 Get-Disk 并查看分区样式列。

SSD 和现代硬盘应该使用 MBR 还是 GPT?

初始化新固态硬盘时,一个老生常谈的问题是选择MBR 还是 GPT 分区表。以下是一些相当合理的经验法则:

  • 如果专辑超过 2 TBGPT 几乎是必需的,因为 MBR 无法满足需求。
  • 如果你的团队使用 UEFI 和 Windows 8 或更高版本GPT 更合适,并且允许您利用安全启动、恢复等高级功能。
  • 如果你继续 Windows 7或更早版本或者,对于没有 UEFI 的非常老旧的 BIOS,为了避免启动不兼容,选择 MBR 更安全。

就 SSD 的纯粹性能而言,使用 MBR 或 GPT并不会改变读写速度;改变的是兼容性、分区管理的便捷性以及启动选项。

损坏的MBR的典型症状和有用命令

当MBR代码或表损坏时,很容易遇到如下消息:

  • “无效分区表错误”.
  • “无效的启动磁盘” 或“无可启动设备”。
  • 未找到 RAID 消息或卷。

其他一些更明显的物理症状,如金属噪音或响亮的磁盘咔嗒声,更多地指向硬件故障而不是逻辑 MBR 问题,尽管有时两者兼而有之。

在 Linux 系统中,创建和管理 MBR 或 GPT 磁盘上的分区通常需要使用fdisk、cfdisk或parted等工具。在考试题中经常出现的各种选项(fdisk、gdisk、parted、cfdisk 等)中,用于对 MBR 和 GPT 磁盘进行分区的通用工具实际上是parted。

关于分区数量,MBR 方案至少可以处理一个分区(如果磁盘正在使用),并且由于扩展分区,逻辑上可以处理四个以上的分区,尽管物理上该表只显示四个主条目。

了解 MBR 的工作原理、其大小和分区限制、它与 BIOS、UEFI 和 GPT 的关系,以及它如何与 GRUB 和 Windows 引导加载程序等管理器交互,可以让你更好地控制双重安装、磁盘迁移、MBR↔GPT 转换,最重要的是,可以恢复“突然”停止启动的计算机,而无需随意格式化。

电脑预防性维护
相关文章:
电脑预防性维护完全指南:您需要了解的一切