用gdisk修改GPT分区后必须运行sudo partprobe /dev/sdb使内核识别新分区,否则/dev/sdb1等设备节点不生成,lsblk不显示,无法格式化或挂载;操作前需确认磁盘为GPT且未挂载,gdisk中v校验和w写入不可省略。

用 gdisk 创建或修改 GPT 分区后,系统内核并不会自动识别新分区结构——因为分区表变更只写入磁盘,未通知内核。此时必须用 partprobe 主动刷新,才能让 /dev/sdX1 等设备节点出现、lsblk 显示新分区、后续格式化或挂载操作才可进行。
确认目标磁盘与 GPT 状态
操作前先明确你要处理的设备(如 /dev/sdb),并验证其是否为 GPT 类型:
- 运行
sudo fdisk -l /dev/sdb或sudo parted /dev/sdb print,查看输出中是否含 “GPT” 字样 - 若提示 “Invalid GPT” 或 “Found MBR”,说明分区表不一致,
gdisk启动时会自动修复建议,按回车继续即可 - 确保该磁盘未被挂载或用作根/swap 等活跃用途;正在使用的分区不可删除或调整起始位置
用 gdisk 创建或修改分区
gdisk 是专为 GPT 设计的安全交互工具,所有变更暂存内存,直到你主动写入:
- 启动:
sudo gdisk /dev/sdb - 新建分区:输入
n→ 接连回车采用默认编号和起始扇区(通常 2048)→ 输入大小如+50G或+1T→ 回车用默认类型8300(Linux 文件系统) - 查看布局:
p确认分区数量、范围、类型是否符合预期 - 校验完整性:
v检查 GPT 头部、备份、CRC 校验值是否正常(关键步骤,别跳过) - 修改类型或删除:用
t(输分区号再输类型码,如ef00表示 EFI)或d(输分区号)
用 partprobe 让内核立即识别变更
partprobe 的作用是强制内核重新读取指定磁盘的分区表,生成对应设备节点,无需重启:
- 写入成功后(
gdisk中输入w并确认),立即执行:sudo partprobe /dev/sdb - 验证效果:运行
lsblk | grep sdb,应看到sdb1、sdb2等新节点;cat /proc/partitions | grep sdb也应列出新增分区号 - 常见错误提示 “Device or resource busy” 通常因某一分区正被挂载或用作 swap,需先
umount /dev/sdb1或swapoff /dev/sdb2再操作 - 不加设备参数(
sudo partprobe)会扫描所有磁盘,但建议始终指定目标,避免误触发其他盘
后续操作衔接
分区表生效只是第一步,真正可用还需文件系统支持:
- 格式化:如
sudo mkfs.xfs /dev/sdb1或sudo mkswap /dev/sdb2 - 临时挂载:
sudo mkdir /mnt/data && sudo mount /dev/sdb1 /mnt/data - 永久挂载:将条目加入
/etc/fstab,推荐使用 UUID(sudo blkid /dev/sdb1获取) - 若在 CentOS 6 等旧系统中
partprobe失效,可改用partx -a /dev/sdb替代


















