Linux 磁盘分区是对物理 / 虚拟磁盘进行逻辑划分的操作,核心目的是隔离数据、优化 I/O、便于管理和系统恢复,底层依赖MBR或GPT分区表,配合fdisk、parted等工具实现,还需完成分区格式化、挂载才能实际使用。
分区表类型:MBR 和 GPT
磁盘的分区表是记录分区信息的底层结构,磁盘必须先创建分区表,才能划分分区,两者核心差异如下:
| 磁盘容量支持 | 最大 2TB(寻址限制) | 无上限(支持 8EB 以上,适配大容量 SSD/HDD) |
| 主分区数量 | 最多 4 个主分区(或 3 主 + 1 扩展,扩展分逻辑分区) | 最多 128 个主分区(无需扩展 / 逻辑分区) |
| 分区标识 | 32 位分区类型 ID(易冲突) | 128 位 GUID(全球唯一,无冲突) |
| 容错性 | 无备份,分区表损坏易丢数据 | 分区表头部 + 尾部双备份,带 CRC 校验,自动修复 |
| 启动支持 | 传统 BIOS 启动,UEFI 启动需兼容模式 | 原生支持 UEFI 启动,是现代系统首选 |
| 适用场景 | 老旧小磁盘(<2TB)、BIOS 启动系统 | 新磁盘(≥2TB)、SSD、UEFI 启动、服务器环境 |
磁盘设备命名规则
Linux 中所有硬件以设备文件形式存在于/dev目录,磁盘 / 分区命名有固定规则,核心记住:
- SCSI/SATA/USB 磁盘:/dev/sd[a-z],如第一块磁盘/dev/sda,第二块/dev/sdb,字母按识别顺序分配;
- NVMe 固态硬盘:/dev/nvmeXnY,如第一块 NVMe 盘/dev/nvme0n1(X = 控制器号,Y = 磁盘号);
- 分区命名:磁盘后加数字,如/dev/sda1(sda 的 1 号分区)、/dev/nvme0n1p1(NVMe 盘的 1 号分区,p=partition);
- 虚拟磁盘(VMware/KVM):/dev/vd[a-z],如/dev/vda1,规则同 sda。
分区的格式化与文件系统
分区仅为裸逻辑块,必须格式化写入文件系统才能存储数据,Linux 支持多种文件系统,不同场景选型不同:
| ext4 | 稳定、兼容好、日志型 | 系统盘、普通数据盘 | mkfs.ext4 /dev/sda1 |
| xfs | 高性能、大文件 / 大分区 | 服务器数据盘、大容量存储 | mkfs.xfs /dev/sda2 |
| btrfs | 支持快照、RAID、动态扩容 | 需高级管理的场景(如容器) | mkfs.btrfs /dev/sda3 |
| vfat | 跨 Linux/Windows 兼容 | U 盘、移动硬盘 | mkfs.vfat /dev/sda4 |
| swap | 交换分区(虚拟内存) | 所有 Linux 系统 | mkswap /dev/sda5 |
常用分区工具
Linux 提供多款分区工具,分传统字符界面(fdisk)、多功能字符界面(parted)、图形界面(gparted),适配不同场景,核心差异和适用场景如下:
| fdisk | MBR/GPT | 交互指令 | 轻量、常用、兼容性好 | 新手入门、MBR 分区、小磁盘 |
| parted | MBR/GPT | 交互 / 批处理 | 支持大磁盘、分区调整 | GPT 分区、大容量磁盘、脚本化操作 |
| gparted | MBR/GPT | 图形界面 | 可视化、操作简单 | 桌面版 Linux、直观调整分区 |
| sfdisk | MBR/GPT | 命令行 | 批量分区、备份分区表 | 服务器批量部署、分区表备份 |
核心推荐:新手用fdisk(易上手),服务器 / 大容量磁盘用parted(GPT 原生支持),桌面端用gparted(可视化)。
MBR 分区
MBR(Master Boot Record,主引导记录)是传统的磁盘分区表格式,也是早期 Linux/Windows 系统的默认分区表,核心存储在磁盘第一个扇区(0 扇区,512 字节) 中,包含引导程序、分区表、结束标志三部分,受限于设计架构,仅支持最大 2TB 磁盘和最多 4 个主分区,适配BIOS 启动、老旧小磁盘场景,是 Linux 入门分区的核心基础。
MBR(主引导记录)的分区表位于磁盘第 0 扇区 446~510 字节,共 64 字节,被划分为4 个分区项(每个 16 字节),这是内核解析的物理基础:
- 主分区:直接在 4 个 MBR 分区项中定义,最多 4 个(编号 1~4,对应 sda1~sda4);
- 扩展分区:本质是特殊的主分区—— 它的分区项也占 1 个 MBR 名额,但其内容不是实际的文件系统,而是指向第一个逻辑分区的起始扇区(相当于 “分区的分区”);
- 逻辑分区:存储在扩展分区内,无数量上限(受磁盘容量限制),编号从5 开始(sda5~sdaN),内核会递归解析直到无逻辑分区;
- 扩展引导记录(EBR):扩展分区内管理逻辑分区的 “迷你 MBR”,每个 EBR 占 1 个扇区,存储当前逻辑分区和下一个 EBR的地址,是内核递归解析的关键。
MBR 底层核心结构(512 字节)
MBR 的 0 扇区是整个磁盘的核心,512 字节被严格划分为 3 个部分,分区表仅占 64 字节,这也是 MBR 分区限制的根本原因,结构如下:
| 0 ~ 445 | 446 | 主引导程序(MBR Code) | 磁盘启动时,BIOS 加载此程序,负责查找活动分区、加载分区的引导扇区(如 Linux 的 grub) |
| 446 ~ 509 | 64 | 分区表项(DPT) | 存储 4 个主分区的信息,每 16 字节对应 1 个分区表项,仅支持 4 个主分区 |
| 510 ~ 511 | 2 | 结束标志 | 固定为0x55AA,BIOS 通过此标志判断磁盘是否为可引导磁盘,缺失则磁盘无法启动 |
64 字节的分区表被分为 4 个 16 字节的表项,每个表项记录1 个主分区的所有核心信息,字段定义(从低地址到高地址):
核心结论:MBR 的分区限制(4 主分区、2TB 容量)均来自底层结构:
- 4 主分区:64 字节分区表 ÷16 字节 / 表项 = 4;
- 2TB 容量:LBA 寻址为 32 位,最大支持2^32个扇区,2^32×512字节=2199023255552字节≈2TB。
MBR 的分区类型(主分区 / 扩展分区 / 逻辑分区)
因 MBR 仅支持4 个主分区,为突破分区数量限制,设计了扩展分区(Extended Partition) +逻辑分区(Logical Partition) 的方案,核心规则:
MBR 分区黄金规则:最多创建4 个主分区,或3 个主分区 + 1 个扩展分区,扩展分区内可创建任意数量的逻辑分区(受磁盘容量限制)。
各分区类型区别
| 主分区 | 最多 4 个 | 能 | 能(仅 1 个) | 安装系统、存储数据,独立的分区,直接被系统识别 |
| 扩展分区 | 最多 1 个 | 不能 | 不能 | 非实际存储分区,是逻辑分区的容器,仅记录逻辑分区的起始位置 |
| 逻辑分区 | 无数量限制 | 能 | 不能 | 依托扩展分区存在,用于突破 4 分区限制,存储数据(如多数据盘、多应用分区) |
MBR 分区类型码
系统通过第 5 字节的分区类型码识别分区用途,fdisk/parted 操作中需指定,核心常用码(十六进制 / 十进制):
| 0x83 / 131 | Linux 主分区 | 系统盘、数据盘(ext4/xfs) |
| 0x82 / 130 | Linux swap 分区 | 虚拟内存 |
| 0x0b / 11 | FAT32(CHS) | 移动硬盘、U 盘(跨系统) |
| 0x07 / 7 | NTFS | Windows 系统盘 / 数据盘 |
| 0x05 / 5 | 扩展分区(DOS) | MBR 扩展分区容器 |
| 0x0f / 15 | 扩展分区(LBA) | 大容量磁盘的扩展分区 |
扩展分区的类型码为0x05或0x0f,逻辑分区的类型码与主分区一致(如 Linux 逻辑分区仍为0x83)。
核心限制
MBR 因设计年代早,存在无法规避的硬限制,也是现代系统优先使用 GPT 的原因,核心限制总结:
适用场景:
- 磁盘容量 **<2TB**(如老式机械硬盘、小容量 SSD);
- 主板为传统 BIOS 启动(无 UEFI 选项);
- 老旧 Linux/Windows 系统(如 CentOS 6、Windows 7);
- 简单分区需求(≤4 个分区)。
扩展分区的磁盘存储结构(EBR 链式结构)
MBR 的核心硬限制来自0 扇区的 64 字节分区表(仅 4 个 16 字节表项),最多支持 4 个主分区;为了在不修改 MBR 底层结构的前提下突破分区数量限制,设计了扩展分区 + EBR 链式逻辑分区的方案,核心逻辑:
- 扩展分区:作为逻辑分区的容器,占 1 个 MBR 主分区表项,仅记录扩展分区的整体起始 / 结束 LBA 地址,不存储具体的逻辑分区信息;
- EBR:在扩展分区内创建,每个 EBR 对应1 个逻辑分区+下一个 EBR 的位置,通过链式指针串联所有 EBR;
- 逻辑分区:由 EBR 的分区表项记录位置,依托 EBR 存在,无数量硬限制(仅受磁盘容量和扇区数量限制)。
- 扩展分区是物理范围的容器,EBR 是逻辑分区的索引链表,逻辑分区是实际可使用的存储分区,三者缺一不可,共同构成 MBR 的分区数量扩展方案。
EBR 的底层结构(512 字节,复用 MBR 格式)
EBR 与 MBR 完全相同,是512 字节的磁盘扇区,但仅使用后 66 字节(分区表项 + 结束标志),前 446 字节无意义(填充 0),因为 EBR 无需引导程序,仅需记录分区信息。
EBR 完整 512 字节结构
| 0 ~ 445 | 446 | 保留区域 | 无实际作用,填充 0(区别于 MBR 的引导程序区) |
| 446 ~ 509 | 64 | 分区表项(DPT) | 仅2 个有效 16 字节表项(MBR 支持 4 个),其余 2 个表项填充 0,是 EBR 的核心; |
| 510 ~ 511 | 2 | 结束标志 | 固定为0x55AA,与 MBR 一致,系统通过此标志识别 EBR 扇区,缺失则逻辑分区无法识别 |
EBR 的 2 个核心 16 字节分区表项
EBR 的 64 字节分区表仅用前两个 16 字节表项,后两个表项固定为 0,这两个表项有严格的功能定义,是链式结构的核心,表项 1 记录当前逻辑分区,表项 2 记录下一个 EBR 的位置:
表项 1:当前逻辑分区的信息(与 MBR 主分区表项完全一致)
记录当前 EBR 对应的逻辑分区的所有参数,字段定义与 MBR 的 16 字节分区表项完全相同,核心字段:
表项 2:下一个 EBR 的位置信息(EBR 链式指针)
记录下一个 EBR 扇区的位置,让系统能通过此表项找到下一个 EBR,形成链式遍历,核心字段:
EBR 链式结构
EBR 链式结构的本质是单向链表,扩展分区为链表的容器,第一个 EBR 为链表头节点,每个 EBR 为链表的中间节点,最后一个 EBR 为链表尾节点,系统通过从 MBR 到扩展分区,再到 EBR 链表的步骤,识别所有逻辑分区;
内核解析扩展分区的核心是处理EBR 链式链表,单扩展分区的典型结构:

所有 EBR 都位于扩展分区的扇区范围内,内核解析时会校验 EBR 地址是否越界,避免读写到扩展分区外。
MBR 的启动引导原理(BIOS+MBR)
BIOS+MBR的启动流程如下(纯硬件 + 磁盘底层,无系统参与):
GPT分区
GPT(GUID Partition Table,GUID 分区表)是新一代磁盘分区表标准,专为解决 MBR 的底层硬限制设计,原生支持 8EB 超大磁盘、128 个主分区,采用双分区表备份 + CRC 校验的高容错设计,是 UEFI 启动的标配,也是现代 Linux 服务器、大容量 SSD/HDD 的首选分区表格式。
GPT 从底层摒弃了 MBR 的 64 字节分区表、EBR 链式结构等补丁式设计,采用全局唯一标识(GUID) 标识分区,64 位 LBA 寻址,所有分区信息直接存储在主备份双分区表中,无需扩展分区 / 逻辑分区,系统读取效率和容错性大幅提升。
MBR+EBR 的设计因历史局限性,存在容量、分区数量、容错性、启动方式等一系列硬限制,且 EBR 链式结构属于「补丁式解决方案」,存在遍历效率低、易损坏的问题。GPT 作为全新的分区表标准,从底层架构上重新设计,核心解决以下问题:
GPT 不是 MBR 的升级,而是全新的分区表架构,从根源上规避了 MBR/EBR 的所有缺陷,是现代存储的标准选择。
GPT 的底层核心结构
GPT 不再将分区表局限在磁盘 0 扇区,而是将磁盘划分为多个专用区域,包含保护型 MBR、GPT 头部、分区表、分区数据区、备份 GPT 头部、备份分区表,所有区域按固定顺序排列,且GPT 头部 + 分区表均有备份,这是 GPT 高容错性的核心。
GPT 磁盘的扇区大小支持512 字节(传统磁盘)和4096 字节(4K 扇区,SSD / 新机械盘标配),以下以通用 512 字节扇区为例:
| 保护型 MBR(PMBR) | 0 扇区 | 1 扇区 | 兼容 MBR 工具,防止 MBR 工具误操作 GPT 磁盘;BIOS 启动时模拟 MBR 引导 | 仅含 1 个 GPT 保护分区表项(0xEE) |
| GPT 头部(Header) | 1 扇区 | 1 扇区 | 存储 GPT 分区表的核心元数据:分区表起始扇区、表项数量、表项大小、CRC 校验值等 | 带自身 CRC 校验,记录备份头部位置 |
| GPT 分区表 | 2 ~ 33 扇区 | 32 扇区 | 存储128 个分区表项,每个表项 128 字节,32×512=16384 字节 = 128×128 字节 | 带整体 CRC 校验,表项可扩展 |
| 分区数据区 | 34 ~ 末尾 – 34 扇区 | 剩余大部分 | 实际存储数据的区域,创建的所有 GPT 分区均在此范围内 | 无固定分区数量限制(≤128) |
| 备份 GPT 头部 | 末尾 – 33 扇区 | 1 扇区 | GPT 头部的完整备份,与主头部内容一致 | 磁盘尾部,故障时恢复主头部 |
| 备份 GPT 分区表 | 末尾 – 32 ~ 末尾 – 1 扇区 | 32 扇区 | GPT 分区表的完整备份,与主分区表内容一致 | 磁盘尾部,故障时恢复主分区表 |
| 磁盘结束扇区 | 末尾扇区 | 1 扇区 | 无实际作用,GPT 预留 | 部分工具用于标识磁盘结束 |
保护型 MBR(PMBR,0 扇区)
GPT 磁盘的0 扇区仍为 512 字节,但仅作兼容和保护用,并非真正的 MBR,核心特点:
- 前 446 字节:引导程序区填充 0(UEFI 启动不依赖此区域,BIOS 启动时可写入兼容引导程序);
- 446~509 字节:分区表仅含1 个 16 字节表项,类型码为0xEE(GPT 保护分区),覆盖整个磁盘的 LBA 范围,让 MBR 工具(如老版 fdisk)识别为「GPT 磁盘,不可操作」,防止误删除分区;
- 510~511 字节:结束标志0x55AA,保持与 MBR 的兼容性。
核心作用:防止 MBR 工具对 GPT 磁盘进行误操作,是 GPT 与 MBR 的兼容层。
GPT 头部(1 扇区,主 + 备份)
GPT 头部是GPT 的核心控制区,存储管理分区表的所有元数据,主头部在 1 扇区,备份头部在磁盘尾部倒数 34 扇区,两者内容完全一致,核心存储字段(均带 CRC32 校验):
- GPT 签名:固定为EFI PART(十六进制0x5452415020494645),系统通过此签名识别 GPT 磁盘;
- 头部版本:当前为GPT v1.0(0x00010000);
- 头部大小:固定为 92 字节(剩余字节填充 0);
- 头部 CRC32 校验值:用于检测头部是否损坏;
- 分区表起始扇区:默认2 扇区;
- 分区表结束扇区:默认33 扇区;
- 磁盘 GUID:整个 GPT 磁盘的唯一标识;
- 第一个分区的起始扇区:默认34 扇区(分区数据区开始);
- 分区表项数量:默认128 个(可扩展,最大支持无限个,受分区表扇区数限制);
- 单个分区表项大小:固定128 字节;
- 分区表 CRC32 校验值:用于检测分区表是否损坏;
- 备份 GPT 头部的扇区地址:磁盘尾部的备份头部位置。
核心机制:系统启动时先校验主头部的 CRC,若损坏则自动读取备份头部恢复,再用恢复后的头部校验并恢复分区表。
GPT 分区表(2~33 扇区,主 + 备份,128 个表项)
GPT 分区表是MBR 分区表的升级版,摒弃了 64 字节 4 表项的设计,采用32 扇区(16384 字节)存储 128 个表项,每个表项 128 字节,主分区表在 2~33 扇区,备份分区表在磁盘尾部倒数 33~1 扇区,核心特点:
- 无主 / 扩展 / 逻辑分区之分,所有分区均为「主分区」,直接存储在分区表中;
- 每个表项对应1 个分区,128 个表项原生支持 128 个分区,满足所有场景需求;
- 所有表项均带全局唯一标识(GUID),无冲突风险;
- 分区表整体带CRC32 校验,系统自动检测损坏并从备份恢复。
每个 128 字节的表项记录 1 个分区的所有信息,字段按固定顺序排列,核心关键字段(均为大端序):
核心优势:相比 MBR 的 16 字节表项,GPT 的 128 字节表项包含分区唯一标识、名称、属性等丰富信息,无需额外工具即可识别分区用途,且全局唯一无冲突。
分区数据区(34 扇区开始)
GPT 的实际存储区域,所有创建的 GPT 分区(如 Linux 根分区、EFI 分区、数据分区)均在此范围内,特点:
- 起始扇区固定为34 扇区(主分区表结束后),结束扇区为磁盘尾部倒数 34 扇区(备份 GPT 头部前);
- 无分区类型限制,所有分区均为独立主分区,直接从分区表读取信息,无需 EBR 链式遍历;
- 分区的 LBA 地址为磁盘绝对地址,无需像 EBR 那样计算相对偏移,系统读取效率更高。
GPT 的容错机制(双备份 + CRC 校验,核心亮点)
GPT 的高容错性是其相比 MBR/EBR 的核心优势,通过主 + 备份双区域和三层 CRC 校验实现,任何一个区域损坏均可自动恢复,完整容错机制:
核心结论:GPT 的容错机制从底层保障了分区表的安全性,相比 MBR/EBR 的「单区域无校验」,数据丢失风险大幅降低。
核心特性
- 超大容量支持:64 位 LBA 寻址,支持8EB(1EB=1024PB=1024×1024TB)磁盘,完全满足现代大容量存储需求;
- 多分区支持:原生128 个主分区,无需扩展分区 / EBR,彻底摒弃链式结构;
- 高容错性:主 + 备份双 GPT 头部、双分区表,三层 CRC 校验,自动检测修复损坏;
- 全局唯一标识:分区类型 / 分区本身均为128 位 GUID,无冲突,全球唯一;
- UEFI 原生支持:GPT 是 UEFI 启动的标配分区表,支持安全启动、快速启动等 UEFI 特性;
- 丰富的分区信息:每个分区表项 128 字节,包含分区名、GUID、属性等,无需额外工具识别;
- 4K 扇区兼容:原生支持 4K 扇区(Advanced Format)磁盘,提升 SSD / 新机械盘的性能和寿命;
- 无激活分区:GPT 摒弃了 MBR 的「激活分区」概念,UEFI 通过EFI 系统分区(ESP) 启动系统,支持多系统引导。
GPT+UEFI 启动原理
GPT 与 UEFI 是配套设计,GPT+UEFI 启动是现代系统的标准模式,相比传统的 BIOS+MBR 启动,具有启动速度快、支持大容量磁盘、安全启动、多系统引导等优势,核心区别是启动程序的存储位置和加载方式。
GPT+UEFI 启动的核心分区:EFI 系统分区(ESP)
UEFI 启动的必备分区,是一个建在 GPT 磁盘上的FAT32 分区,分区类型 GUID 为C12A7328-F81F-11D2-BA4B-00A0C93EC93B,核心特点:
- 大小:100~512MB(推荐 512MB);
- 文件系统:必须为 FAT32(UEFI 固件仅支持 FAT32);
- 分区属性:需设置为EFI 启动分区(parted/fdisk 会自动标记);
- 挂载点:Linux 下通常挂载为/boot/efi;
- 核心作用:存储UEFI 引导程序(如 Linux 的 grubx64.efi、Windows 的 bootmgfw.efi)、系统启动配置文件,UEFI 固件直接从 ESP 加载引导程序。
GPT+UEFI 完整启动流程
UEFI 是主板上的固件(替代传统 BIOS),内置文件系统驱动,可直接识别 GPT 磁盘和 ESP 分区的 FAT32 文件系统,启动流程完全脱离 MBR 的引导程序,步骤:




