Featured image of post Linux 磁盘分区体系:MBR 与 GPT 的关系

Linux 磁盘分区体系:MBR 与 GPT 的关系

在 Linux 操作系统中,要理解主分区、扩展分区和逻辑分区,必须先了解它们赖以存在的底层数据结构——MBR(主引导记录)磁盘分区表。这些概念主要是 MBR 分区方案的产物(在较新的 GPT 分区方案中已不再受此限制)。

核心定义与区别

主分区(Main / Primary Partition)

  • 定位:独立存在的基本分区,可以直接格式化为文件系统(如 ext4、xfs)并被 Linux 系统挂载使用。
  • 限制:在一个使用 MBR 分区表的磁盘上,最多只能创建 4 个主分区(因为 MBR 表头仅留出了 64 字节的空间用来存储分区表信息,每个分区占用 16 字节,只能写入 4 条记录)。
  • 用途:通常用于存放操作系统启动和核心数据,如包含引导程序(Boot Loader)的分区。

扩展分区(Extended Partition)

  • 定位:一种特殊的“主分区”。为了打破 MBR 只能划分 4 个分区的限制,人们设计出了扩展分区。
  • 限制:一块磁盘上最多只能有 1 个扩展分区。且“主分区 + 扩展分区”的总数不能超过 4 个。
  • 特殊性:扩展分区不能直接格式化,也不能直接存放数据或挂载。它的唯一作用是作为“容器”,将剩余的空间分配给逻辑分区。

逻辑分区(Logical Partition)

  • 定位:在扩展分区内部再细分出来的分区。
  • 限制:逻辑分区没有数量上的硬性限制(理论上由设备驱动支持,通常能划分出几十个),它们共享同一个扩展分区的物理空间。
  • 用途:可以被正常格式化为文件系统,并挂载到 Linux 系统的不同目录下使用(如 /home、/var 等)。

关系与结构示意

扩展分区就像是一块划分出来的“二级大皮囊”,里面的每一个小隔间就是一个逻辑分区:

1
2
3
4
5
6
7
8
硬盘物理空间 (MBR 分区表)
├── 主分区 1 (sda1) - 可直接使用
├── 主分区 2 (sda2) - 可直接使用
├── 主分区 3 (sda3) - 可直接使用
└── 扩展分区 (sda4) - 不能直接使用 (占满剩余所有空间)
    ├── 逻辑分区 1 (sda5) - 可格式化挂载
    ├── 逻辑分区 2 (sda6) - 可格式化挂载
    └── 逻辑分区 3 (sda7) - 可格式化挂载

Linux 系统中的设备命名规则

在 Linux 下,所有存储设备和分区都以文件的形式体现(通常在 /dev 目录下):

分区类型命名编号规则示例(以传统 SATA/SCSI 硬盘 /dev/sda 为例)
主分区 & 扩展分区1 ~ 4/dev/sda1, /dev/sda2, /dev/sda3, /dev/sda4
逻辑分区始终从 5 开始/dev/sda5, /dev/sda6, /dev/sda7 …

注意:即使你只创建了 1 个主分区(sda1)和 1 个扩展分区(sda2),扩展分区内的第一个逻辑分区依然强制命名为 sda5,3 和 4 会被自动跳过保留给主分区编号。

Linux 系统中的常用分区操作命令

在 Linux 系统中,可以使用以下命令查看和管理分区:

查看当前磁盘与分区结构

1
fdisk -l

1
lsblk

管理 MBR 分区

1
fdisk /dev/sda

在 fdisk 交互界面中,输入 n 创建新分区时,系统会明确询问:

  • p(primary):创建主分区
  • e(extended):创建扩展分区

一旦建立了扩展分区,再次按 n 时便会出现 l(logical)选项,用来创建逻辑分区。

现代 GPT 分区表:为何它逐渐取代 MBR

在当今现代的 Linux 系统(特别是大容量硬盘或使用 UEFI 启动的机器)中,GPT 分区方案已经逐渐取代了 MBR:

  • 没有逻辑分区的概念:GPT 不再区分“主分区”、“扩展分区”和“逻辑分区”。
  • 支持超多分区:标准情况下,GPT 默认支持最多 128 个主分区,每一个分区都是“独立的主分区”。
  • 突破容量限制:MBR 最大仅支持 2TB 的磁盘,而 GPT 支持超大容量硬盘。

若你在新服务器或超过 2TB 的硬盘上做分区,建议直接使用 GPT 分区表(工具使用 gdisk 或 parted),便无需再纠结主分区与扩展分区的划分。


本文由 小H 整理 🤖 原文链接:无

热爱生活 学无止境
使用 Hugo 构建
主题 StackJimmy 设计