gdisk 是什么
gdisk(GPT fdisk)是专门处理 GPT 分区表的交互式工具。只认 MBR 的老 fdisk 在 2 TiB 以上磁盘、超过 4 个主分区时就会力不从心,而 gdisk 原生支持 GPT:单盘可达 128 个分区、支持 2 TiB 以上容量,并且在磁盘头部和尾部各存一份分区表互为备份,头表损坏时可用尾表恢复。它来自 gptfdisk 软件包,同包的 sgdisk 提供等价的命令行接口,适合写进自动化脚本。
基本信息
| 用途 | 创建、查看、修复 GPT 分区表与分区项 |
|---|---|
| 语法 | gdisk [选项] 设备;交互模式 gdisk /dev/sdb,命令行模式 sgdisk |
| 所属软件包 | gptfdisk(Debian/Ubuntu 与 RHEL 系均需按需安装) |
| 权限要求 | 读写分区表需要 root;改动必须显式执行写入命令才落盘 |
典型使用场景
- 新盘初始化:2 TiB 以上的数据盘、或需要超过 4 个分区的盘,直接建 GPT 表
- 分区表修复:MBR 与 GPT 混用、尾表损坏导致系统只看到部分空间时做校验与重建
- 脚本化分区:用 sgdisk 一条命令建表建分区,写进装机脚本里
- 备份换盘:换盘或重装前导出分区结构,恢复后分区布局完全一致
- 改分区类型:把分区标记为 LVM、RAID 或 EFI 系统分区,供后续 lvm/RAID 使用
交互式操作
交互式操作
gdisk /dev/sdb
# p 打印当前分区表(先看再动)
# o 新建空 GPT 表(会清空原有分区,务必确认)
# n 新建分区(回车选默认分区号与扇区范围)
# t 改分区类型(8300 Linux filesystem / 8e00 Linux LVM / fd00 Linux RAID / ef00 EFI System)
# c 改分区名(LVM 与部分系统靠名称识别)
# v 校验分区表 w 写入并退出 q 放弃退出命令行模式与备份恢复
命令行模式与备份恢复
sgdisk -p /dev/sdb # 打印分区表,脚本里可解析
sgdisk -n 1:0:+100G -t 1:8e00 /dev/sdb # 建 1 号分区 100G,类型 LVM
sgdisk --backup=/root/sdb-gpt.bak /dev/sdb
sgdisk --load-backup=/root/sdb-gpt.bak /dev/sdb
sgdisk -Z /dev/sdb # 抹掉全部分区表(清盘前用)常用交互命令对照
| 命令 | 作用 | 注意 |
|---|---|---|
| p | 打印分区表 | 动手前先看一眼,确认设备选对 |
| n | 新建分区 | 起始扇区从默认值起即可,能自动对齐 |
| d | 删除分区项 | 只改分区表,不碰分区内数据,但改动后原数据无法再挂载 |
| t | 改分区类型 GUID | 类型码影响系统与 LVM/RAID 的识别 |
| v | 校验分区表 | 报错要处理完再写盘 |
| w | 写入并退出 | 只有这一步才真正落盘 |
gdisk 的 b 命令可把 GPT 分区表导出到文件,换盘或重装后用 --load-backup 秒级恢复分区结构。生产环境改分区表前先备份,是成本最低的一道保险。
改完分区表内核未必立刻刷新设备节点:新建分区后常需 partprobe /dev/sdb 或 partx -u /dev/sdb,否则 mkfs 时会提示设备不存在。