3.2.4 分区工具使用(fdisk、parted、gdisk)
3.2.4 分区工具使用(fdisk、parted、gdisk)#
适用场景与工具选择
- fdisk:经典交互式工具,适合MBR分区;可读GPT但不推荐写入。
- gdisk:GPT分区首选,命令风格与fdisk类似。
- parted:支持MBR/GPT,适合脚本化与大于2TB磁盘。
原理草图:分区表写入与内核识别流程#
安装与环境准备#
安装
# Debian/Ubuntu
apt-get update
apt-get install -y util-linux gdisk parted
# RHEL/CentOS/Rocky
yum install -y util-linux gdisk parted
确认设备与备份分区表
# 查看磁盘与分区
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
fdisk -l /dev/sdx
# 备份分区表(MBR/GPT均可)
sfdisk -d /dev/sdx > /root/sdx.pt
# 确保目标分区未挂载
umount /dev/sdxN
fdisk 常用流程(MBR)#
操作示例:创建一个 20GiB 主分区
fdisk /dev/sdx
交互命令说明:
- m:显示帮助
- p:打印分区表
- n:新建分区(主分区/逻辑分区)
- t:修改分区类型(如 83 Linux)
- w:写入并退出
- q:退出不保存
完整交互示例(关键步骤)
Command (m for help): p
Command (m for help): n
Partition type: p
Partition number: 1
First sector: 2048
Last sector: +20G
Command (m for help): t
Hex code: 83
Command (m for help): w
使内核重读分区表
partprobe /dev/sdx
# 或
blockdev --rereadpt /dev/sdx
gdisk 常用流程(GPT)#
操作示例:创建一个 50GiB GPT 分区并设置类型
gdisk /dev/sdx
交互命令说明:
- p:打印分区表
- n:新建分区
- t:修改分区类型(如 8300 Linux)
- w:写入并退出
- q:退出不保存
完整交互示例(关键步骤)
Command (? for help): n
Partition number: 1
First sector: 2048
Last sector: +50G
Hex code or GUID: 8300
Command (? for help): w
备份与恢复 GPT
# 备份
sgdisk -b /root/gpt.bak /dev/sdx
# 恢复
sgdisk -l /root/gpt.bak /dev/sdx
parted 常用流程(MBR/GPT)#
交互示例:创建 GPT 并划分两个分区
parted /dev/sdx
交互命令说明:
- print:显示分区表
- mklabel gpt:创建GPT分区表
- mkpart:创建分区
- align-check optimal N:检查分区N对齐
- quit:退出
完整交互示例(关键步骤)
(parted) mklabel gpt
(parted) mkpart primary ext4 1MiB 50GiB
(parted) mkpart primary xfs 50GiB 100%
(parted) align-check optimal 1
(parted) align-check optimal 2
(parted) quit
脚本化示例
parted -s /dev/sdx \
mklabel gpt \
mkpart primary ext4 1MiB 50GiB \
mkpart primary xfs 50GiB 100%
partprobe /dev/sdx
分区后验证与格式化示例#
# 查看分区
lsblk /dev/sdx
# 格式化
mkfs.ext4 /dev/sdx1
mkfs.xfs /dev/sdx2
# 挂载验证
mkdir -p /data1 /data2
mount /dev/sdx1 /data1
mount /dev/sdx2 /data2
df -h | grep /data
常见故障与排错#
1)分区表未刷新
partprobe /dev/sdx
dmesg | tail -n 20
2)设备忙无法卸载
lsof /dev/sdx1
fuser -m /dev/sdx1
3)GPT/MBR混乱导致无法识别
gdisk /dev/sdx
# 如果提示混乱,可选择修复并写入
4)误操作分区表
# 使用备份恢复
sfdisk /dev/sdx < /root/sdx.pt
partprobe /dev/sdx
练习与实操题#
- 使用
parted在测试盘/dev/sdb上创建 GPT,划分 2 个分区(20GiB 与剩余空间),并对齐检查。 - 使用
gdisk备份/dev/sdb的 GPT,删除分区后再恢复。 - 使用
fdisk在 MBR 测试盘/dev/sdc创建一个 5GiB 主分区,并通过mkfs.ext4格式化。 - 模拟“分区表未刷新”场景,使用
partprobe使内核重读并验证。
安全与变更建议#
- 写入分区表前再次确认设备名,避免操作系统盘。
- 生产环境分区变更需维护窗口与变更记录。
- 关键设备建议先备份分区表并验证恢复流程。