Linux GPT 分区介绍

发布时间: 更新时间: 总字数:1678 阅读时间:4m 作者: IP上海 分享 网址

GPT 分区(GUID Partition Table,全局唯一标识分区表)是一种用于对计算机存储设备(如硬盘驱动器或固态驱动器)进行分区表布局的标准,它取代了传统的 MBR(Master Boot Record,主引导记录)分区方案。

GPT 分区的主要特点

特点 GPT (GUID Partition Table) MBR (Master Boot Record)
最大磁盘容量 理论上支持的容量非常大(目前在 18 EiB 级别) 仅支持最大 2 TiB (2048 GiB) 的磁盘容量
支持分区数量 理论上无限制,Windows 默认支持 128 个 分区 限制为 4 个主分区,或 3 个主分区 + 1 个扩展分区(扩展分区内可包含多个逻辑分区)
分区类型 没有 主分区、扩展分区和逻辑分区之分,所有分区都是主分区 有主分区、扩展分区和逻辑分区之分
引导方式 通常与 UEFI(统一可扩展固件接口)引导模式配合使用 通常与 Legacy BIOS(传统 BIOS)引导模式配合使用
数据安全性 在磁盘末尾存储 分区表的备份,并包含 CRC32 校验和,数据恢复能力更强 分区信息只存储在一个位置,容易因损坏而丢失

GPT 分区的结构

GPT 磁盘的结构通常包括以下几个关键部分:

  1. 保护 MBR (Protective MBR)

    • 位于磁盘的第一个扇区(LBA 0)。
    • 它的作用是防止那些不识别 GPT 分区的旧版磁盘工具误操作或覆盖 GPT 磁盘。
    • 它包含一个特殊的 MBR 分区项(类型为 0xEE),表示整个磁盘被一个未知的 GPT 分区占用。
  2. 主 GPT 头部 (Primary GPT Header)

    • 位于第二个扇区(LBA 1)。
    • 它定义了分区表的位置和大小。
    • 它包含头部和分区表的 CRC32 校验和,用于检测错误。
  3. 主分区表项 (Primary Partition Entry Array)

    • 紧跟在 GPT 头部之后(通常是 LBA 2 到 LBA 33 扇区)。
    • 这里存储着每个分区的详细信息。
    • 每个分区项都包含 分区类型 GUID唯一的 GUID、起始/结束地址、属性标志和人类可读的名称。
  4. 实际分区数据 (GPT Partitions)

    • 这是磁盘上分配给各个分区的最大区域,存储实际数据。
  5. 备份区域 (Backup Area)

    • 位于磁盘的尾部。
    • 包含 备份的 GPT 头部备份的分区表。这是 GPT 增强数据安全性和恢复能力的关键。

关键概念:GUID

GPT 使用 GUID(全局唯一标识符)来标识:

  • 分区类型:例如,EFI 系统分区 (ESP) 有一个特定的 GUID。
  • 每个单独的分区:磁盘上的每个分区都有一个独一无二的 GUID。

gdisk 操作命令

在 Linux 环境中,推荐使用 gdisk (GPT fdisk) 工具来操作 GPT 分区表,它专为 GPT 设计,比传统的 fdisk (仅支持 MBR) 更强大和安全。

安装:

apt install gdisk

假设您的新磁盘设备名为 /dev/sdb

场景一:初始化一个全新 GPT 磁盘

当您插入一块新硬盘,需要将其转换为 GPT 分区格式时。

步骤 说明 命令
1. 启动 gdisk 针对新磁盘设备 /dev/sdb 启动 gdisk。 sudo gdisk /dev/sdb
2. 创建新分区表 gdisk 提示符下输入 o (创建新的空 GPT 分区表)。 Command (? for help): o
3. 确认 确认操作,这将清除磁盘上所有数据! Proceed with non-empty GUID partition table? (y/n): y
4. 保存并退出 输入 w (写入分区表到磁盘并退出)。 Command (? for help): w

场景二:创建两个分区(boot 和根分区)

这是一个常见的服务器或桌面系统安装布局,用于支持 UEFI 启动。

步骤 说明 命令
1. 启动 gdisk (如上) sudo gdisk /dev/sdb
2. 创建第一个分区 输入 n,分区号默认 1,起始扇区默认,大小输入 +512M (作为 EFI/boot 分区)。 Command (? for help): nPartition number (1-128, default 1): [Enter]First sector: [Enter]Last sector or size: +512M
3. 设置分区类型 将类型代码设置为 EF00 (EFI System Partition)。 Hex code or GUID (L to show codes): EF00
4. 创建第二个分区 输入 n,分区号默认 2,起始扇区默认,大小输入 +50G (作为根分区)。 Command (? for help): nPartition number (2-128, default 2): [Enter]First sector: [Enter]Last sector or size: +50G
5. 设置分区类型 将类型代码设置为 8300 (Linux 文件系统)。 Hex code or GUID (L to show codes): 8300
6. 写入并退出 (如上) Command (? for help): wFinal check: yes

场景三:格式化并挂载新分区

假设您已经完成了上述分区操作,现在需要格式化并使用它们。

步骤 说明 命令
1. 格式化 EFI 分区 EFI 分区必须是 FAT32 格式。 sudo mkfs.fat -F 32 /dev/sdb1
2. 格式化根分区 根分区通常使用 ext4 格式。 sudo mkfs.ext4 /dev/sdb2
3. 创建挂载点 创建用于临时挂载的目录。 sudo mkdir -p /mnt/new_root /mnt/new_efi
4. 挂载分区 将分区挂载到相应的目录。 sudo mount /dev/sdb2 /mnt/new_root
5. 挂载 EFI 分区 将 EFI 分区挂载到根分区下的 /boot/efi (或者直接挂载到 /mnt/new_efi)。 sudo mount /dev/sdb1 /mnt/new_efi

注意: 在实际安装操作系统时,您通常会在安装程序中完成这些步骤。这些命令主要用于手动配置或数据盘操作。

总结与应用

目前,GPT 分区配合 UEFI 引导 已经成为主流的系统引导和磁盘分区方案,尤其是在安装 Windows 10/11 或现代 Linux/macOS 系统时。如果您使用容量大于 2TB 的硬盘,或者需要创建超过 4 个主分区,GPT 是唯一的选择

本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics