gdisk专家模式专为修复gpt主/备头不一致、位置错位或校验失效设计,需手动执行x进入、v校验、i/b查看头信息、e修复或z清除后重建,最后w写入并partprobe刷新内核识别。

进入专家模式并确认当前状态
先用 sudo gdisk /dev/sdX(X 替换为实际设备名,如 sdb)启动工具。若提示“Found invalid GPT and valid MBR”或类似警告,直接回车继续。进入交互界面后:
- 输入 x 进入专家模式
- 输入 v 执行完整性校验 —— 它会明确告诉你哪部分出错:比如 “Primary header thinks Alt. header is not at the end of the disk” 或 “CRC mismatch in backup header”
- 输入 i 查看主 GPT 头详细信息,重点关注 “First usable LBA”、“Last usable LBA”、“Backup LBA” 三项数值;再输入 b 查看备份 GPT 头内容,对比两者是否指向同一物理位置、LBA 数值是否合理(备份头应位于磁盘末尾附近)
修复备用 GPT 头部位置与内容
当校验指出备用头部位置错误(如日志中出现 “229375 != 2097151”),说明备份头未落在磁盘末尾扇区,gdisk 无法自动对齐。此时需手动干预:
- 输入 e —— 这是“repair GPT header”命令,gdisk 会尝试根据分区表实际范围重新计算并写入正确的备份头位置(即把备份头移到磁盘最后一个可用扇区)
- 如果 e 报错或无效,可改用 z(zap — 清除 GPT 结构):它会删除主/备 GPT 头和分区表,但保留 MBR 和所有原始分区数据(只要没被覆盖)。之后再用 o 创建新空 GPT 表,再用 r → b 尝试从残留备份中恢复(前提是备份区未损坏)
- 若已提前用 sgdisk --backup=backup.gpt /dev/sdX 备份过,可在专家模式下输入 l 加载该备份文件(需先退出 gdisk,用 sgdisk --load-backup=backup.gpt /dev/sdX 更可靠)
保存并验证修复结果
完成上述任一修复动作后,不要直接退出:
- 返回主模式(按 m),输入 p 查看分区布局是否完整、起止扇区是否连续、类型码是否正确
- 再次输入 v 校验 —— 理想输出是 “No problems found.”
- 确认无误后,输入 w 写入变更;gdisk 会提示 “About to write GPT data…”,此时务必输入 y
- 最后运行 sudo partprobe /dev/sdX,让内核立即识别更新后的分区表











