GPT 分区表简介
GPT(GUID Partition Table,全局唯一标识符分区表)是现代磁盘分区标准,是 UEFI 规范的组成部分,用于替代传统的 MBR 分区表。
目录
1. 什么是 GPT
GPT 是一种磁盘分区表格式,定义了磁盘上分区的布局方式。它是 UEFI 规范的一部分,由 Intel 在开发 EFI 时一并引入,目的是克服 MBR 分区表的诸多限制。
GPT 使用 128 位的 GUID(全局唯一标识符) 标识每个分区,支持几乎无限数量的分区,并内置数据冗余校验,大幅提升了可靠性。
2. GPT 与 MBR 的区别
| | |
|---|
| | |
| 2.2 TB | 理论 9.4 ZB |
| 4 个 | 128 个 |
| | |
| | |
| | |
| | |
| | Windows 10+、Linux、macOS 原生支持 |
3. GPT 磁盘结构详解
GPT 磁盘按以下顺序排列(以 512 字节/扇区为例):
┌────────────────────────────────────────────────────────┐│ LBA 0 │ 保护性 MBR(Protective MBR) │ ← 1 扇区(512 B)├────────────────────────────────────────────────────────┤│ LBA 1 │ GPT 头部(Primary GPT Header) │ ← 1 扇区(512 B)├────────────────────────────────────────────────────────┤│ LBA 2–33│ GPT 分区条目数组(Partition Entry Array) │ ← 32 扇区(16 KB)├────────────────────────────────────────────────────────┤│ LBA 34+ │ 实际数据分区(Partition 1, 2, 3 ...) ││ │ ... │├────────────────────────────────────────────────────────┤│ 倒数34扇区│ 备份 GPT 分区条目数组(Backup) │ ← 镜像备份├────────────────────────────────────────────────────────┤│ 最后1扇区│ 备份 GPT 头部(Backup GPT Header) │ ← 镜像备份└────────────────────────────────────────────────────────┘
3.1 保护性 MBR(LBA 0)
GPT 磁盘在 LBA 0 保留了一个特殊的 MBR,称为 Protective MBR,其作用是:
- 告知不支持 GPT 的旧工具「此磁盘已有分区,请勿误操作」
3.2 GPT 头部(LBA 1)
GPT 头部包含以下关键字段:
3.3 分区条目(每条 128 字节)
每个分区条目包含:
4. GUID 分区类型
GPT 用 GUID 标识分区用途,以下是常见类型:
| | |
|---|
| C12A7328-F81F-11D2-BA4B-00A0C93EC93B | |
| 0FC63DAF-8483-4772-8E79-3D69D8477DE4 | |
| 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F | |
| 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 | |
| 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 | |
| EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 | |
| E3C9E316-0B5C-4DB8-817D-F92DF00215AE | |
| DE94BBA4-06D1-4D40-A16A-BFD50179D6AC | |
| 48465300-0000-11AA-AA11-00306543ECAC | |
| 7C3457EF-0000-11AA-AA11-00306543ECAC | |
| 21686148-6449-6E6F-744E-656564454649 | |
5. GPT 的冗余与数据保护机制
5.1 双份备份
GPT 在磁盘 头部和尾部各存储一份完整的分区表:
- 主 GPT:位于磁盘起始(LBA 1 + LBA 2–33)
- 备份 GPT:位于磁盘末尾(倒数 34 扇区 + 最后 1 扇区)
当主 GPT 损坏时,工具可从备份 GPT 恢复。
5.2 CRC32 校验
- GPT 头部本身有 CRC32 校验,防止静默数据损坏。
5.3 分区唯一 GUID
每个分区拥有独立的 GUID,系统通过 GUID(而非磁盘位置)引用分区,分区顺序调整后仍能正确识别。
6. Linux 中操作 GPT
6.1 fdisk(新版支持 GPT)
# 以 GPT 模式操作磁盘sudo fdisk /dev/sda# 常用命令(交互模式内):# g — 新建 GPT 分区表(清除所有数据!)# n — 新建分区# t — 修改分区类型(输入 GUID 类型编号)# p — 打印分区表# w — 保存写入
6.2 gdisk(专用 GPT 工具)
sudo gdisk /dev/sda# 交互命令:# o — 新建 GPT 分区表# n — 新建分区,可指定起止 LBA 和类型 GUID# c — 修改分区名称# i — 显示分区详细信息(含 GUID)# p — 打印分区表# w — 保存写入
6.3 parted(支持脚本化操作)
# 新建 GPT 分区表sudo parted /dev/sda mklabel gpt# 创建 EFI 分区(1 MiB 对齐,512 MiB)sudo parted /dev/sda mkpart primary fat32 1MiB 513MiBsudo parted /dev/sda set 1 esp on# 创建根分区sudo parted /dev/sda mkpart primary ext4 513MiB 100%# 查看分区表sudo parted /dev/sda print
6.4 查看分区 GUID
# 查看磁盘和分区 GUIDsudo blkid /dev/sda1sudo sgdisk -i 1 /dev/sda # 显示分区 1 的详细 GUID 信息# 列出所有分区sudo sgdisk -p /dev/sda
6.5 备份与恢复 GPT
# 备份 GPT 到文件sudo sgdisk --backup=/root/sda-gpt-backup.bin /dev/sda# 从备份恢复 GPTsudo sgdisk --load-backup=/root/sda-gpt-backup.bin /dev/sda# 从备份 GPT 恢复主 GPT(当主表损坏时)sudo gdisk /dev/sda# 输入 r(恢复),然后选择从备份恢复主 GPT
7. Windows 中操作 GPT
7.1 磁盘管理(图形界面)
- 右键磁盘标签区域 → 「转换到 GPT 磁盘」(仅对空磁盘有效)
7.2 diskpart(命令行)
diskpart:: 列出磁盘list disk:: 选中磁盘(磁盘 0)select disk 0:: 转换为 GPT(清空磁盘!)convert gpt:: 创建分区create partition efi size=512create partition msr size=128create partition primary:: 查看分区list partition
8. MBR 转 GPT
8.1 无损转换(Linux,使用 gdisk)
# gdisk 打开 MBR 磁盘后,会提示转换sudo gdisk /dev/sda# 若检测到 MBR,按 w 写入即可将 MBR 转为 GPT# 注意:转换后需重新安装引导程序(GRUB)
8.2 无损转换(Windows,使用 MBR2GPT)
:: 验证磁盘是否可以转换MBR2GPT /validate /disk:0 /allowFullOS:: 执行转换MBR2GPT /convert /disk:0 /allowFullOS
注意:
- MBR2GPT 仅适用于系统盘,需要主板支持 UEFI。
- 转换后需在 BIOS 中将启动模式切换为 UEFI。
9. 常见问题
| | |
|---|
| | 使用 BIOS Boot 分区 + GRUB,或开启 CSM |
| | sudo gdisk /dev/sda |
| | 从备份 GPT 恢复(磁盘末尾);或使用 TestDisk |
| | |
| | |