linux磁盘分区fdisk和gdisk介绍
一、fdisk 与 gdisk 的共性
| 项目 | 说明 |
|---|---|
| 功能 | 都是交互式磁盘分区工具,可新建、删除、查看、修改分区 |
| 操作方式 | 都支持命令行交互 (m 查看帮助),支持非交互式脚本操作 |
| 使用权限 | 都需要 root 权限操作块设备 |
| 常用场景 | 安装系统、初始化新磁盘、调整磁盘分区结构 |
| 替代工具 | 都可以被 parted、cfdisk、sgdisk 等替代 |
二、核心差异一览
| 项目 | fdisk |
gdisk |
|---|---|---|
| 分区表类型 | MBR (Master Boot Record) | GPT (GUID Partition Table) |
| 兼容性 | 传统 BIOS 模式 | 支持 UEFI 启动(也可用于 BIOS+GPT 场景) |
| 磁盘大小支持 | ≤ 2TB(MBR 限制) | 理论可支持 ZB 级(2⁶⁴ 扇区) |
| 分区数量 | 最多 4 个主分区(或 3 主 + 1 扩展 + 逻辑分区) | 默认支持 128 个分区(可扩展) |
| 数据结构 | 基于 CHS/LBA 的 32-bit 地址 | 使用 64-bit LBA 地址 |
| 安全性 | 分区表单一,损坏易导致丢盘 | 主/备份分区表双副本,容灾能力强 |
| 校验机制 | 无校验 | CRC32 校验,可检测分区表损坏 |
| 工具包来源 | util-linux |
gdisk (GPT fdisk 工具集) |
| 对应非交互式命令 | 无 | sgdisk(脚本化强) |
三、应用场景建议
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 新服务器、UEFI 启动、NVMe SSD | ✅ gdisk |
支持 GPT,安全可靠 |
| 老旧 BIOS 机器、系统盘 < 2TB | ✅ fdisk |
简单兼容 |
| 数据盘初始化(现代系统) | ✅ gdisk |
GPT 分区结构更优 |
| 混合分区表环境(BIOS+GPT) | ✅ gdisk |
可生成 hybrid GPT |
| 自动化批量分区 | ✅ sgdisk |
非交互式自动化命令支持强 |
四、核心命令对照表
| 操作 | fdisk 示例 | gdisk 示例 |
|---|---|---|
| 查看磁盘 | fdisk -l /dev/sda |
gdisk -l /dev/sda |
| 进入交互 | fdisk /dev/sda |
gdisk /dev/sda |
| 创建新分区 | n → 输入分区号和范围 |
n → 同理 |
| 删除分区 | d |
d |
| 打印分区表 | p |
p |
| 保存更改 | w |
w |
| 不保存退出 | q |
q |
| 转换分区类型 | 无法直接支持 | t 修改 GPT 类型 GUID |
| 修复分区表 | 手工或第三方工具 | 内置修复功能 (v 校验 + w 写入) |
五、使用技巧与进阶建议
5.1. 快速从 MBR 转 GPT
1 | # 备份分区表 |
5.2. 自动化分区脚本(gdisk 替代:sgdisk)
1 | # 清空分区表并新建两个分区 |
5.3. 将 GPT 磁盘写入保护区修复(保护性 MBR)
1 | gdisk /dev/sdb |
5.4. 校验分区表一致性
1 | gdisk /dev/sda |
5.5. 将 GPT 转换为 MBR(用于旧 BIOS 启动)
1 | gdisk /dev/sda |
⚠️:分区类型转换,请提前备份数据。
六、前瞻与实践建议
| 建议 | 原因 |
|---|---|
| 默认新盘统一使用 GPT | UEFI / NVMe / 云盘默认支持 GPT,易迁移 |
运维脚本统一用 sgdisk |
可声明式定义分区表,自动化更可靠 |
| 监控磁盘健康 + 分区结构校验 | smartctl + gdisk -v 可提前发现问题 |
| 注意 hybrid GPT 的风险 | 混合 MBR+GPT 仅为兼容,破坏性大,不推荐 |
| 自动化安装 PXE/Cloud-Init 时 | 优先用 GPT + parted / sgdisk 自动脚本 |
总结
| 项目 | fdisk | gdisk |
|---|---|---|
| 时代 | 传统 MBR 时代 | 现代 GPT 时代 |
| 限制 | 分区 ≤ 4 个, 容量 ≤ 2TB | 分区数多, 容量超大 |
| 推荐使用场景 | 旧系统维护 | 新系统 / 云原生 / UEFI 启动 |
| 现代替代工具 | parted, sfdisk | sgdisk, parted |