gdisk可安全将含残留mbr的磁盘无损转为gpt,前提是首尾扇区空闲、分区未越界2tb且已卸载;转换仅重写分区表目录,不触碰数据。

gdisk 可以安全地将含残留 MBR 数据的磁盘无损转为 GPT,前提是磁盘首尾扇区空闲、分区未越界 2TB,且操作前已卸载目标分区。转换本质是重写分区表“目录”,不触碰实际数据。
确认磁盘状态与转换可行性
先判断是否真为 MBR 且具备转换条件:
- 运行 sudo gdisk -l /dev/sdX(替换 sdX 为实际设备名),若提示 Found invalid GPT and valid MBR,说明可安全转换;若报 overlaps the first/last partition,表示首 34 或尾 33 扇区被占用,需先用 parted 调整分区边界或扩容云盘释放空间
- 用 sudo parted /dev/sdX unit s print 检查:最小 Start 值应 ≥ 2048(跳过前 2048 扇区),最大 End 值应 ≤ 总扇区数 − 34
- 确保该磁盘未挂载:执行 sudo umount /dev/sdX1 等所有关联分区,否则 gdisk 可能拒绝写入或发出警告
执行无损转换(交互式)
gdisk 的 r → g → w 流程专为 MBR→GPT 设计,保留原有分区结构:
- 启动:sudo gdisk /dev/sdX
- 输入 r 进入恢复/转换菜单
- 输入 g 触发 MBR 到 GPT 的映射转换(此时仅在内存中完成,未写盘)
- 输入 w 将新 GPT 表写入磁盘 —— 此步会提示 THIS WILL OVERWRITE EXISTING PARTITIONS!!,确认输入 y
- 成功后输出 Final checks complete. OK, writing new GUID partition table,无 ERROR 即表示完成
验证并优化对齐
转换后需确认生效,并让分区起始位置满足 4K 对齐(推荐 2048 扇区,即 1MiB 对齐):
- 运行 sudo fdisk -l /dev/sdX,确认显示 Disklabel type: gpt
- 检查 sudo blkid /dev/sdX1 是否仍能识别原文件系统(如 ext4、xfs),证明数据完好
- 若原 MBR 分区起始于 63 扇区等非对齐位置,可用 sudo gdisk /dev/sdX 重建分区:输入 d 删除原分区条目(不删数据),再输入 n 新建,First sector 设为 2048,Last sector 保持原值,最后 w 保存
- 刷新内核分区表:sudo partprobe /dev/sdX,然后测试挂载:sudo mount /dev/sdX1 /mnt
注意事项与风险规避
无损不等于零风险,关键点必须守住:
- 绝不操作系统盘(如 /dev/sda),务必用 lsblk 和 fdisk -l 双重核对设备名
- 转换过程中严禁断电、强制关机或磁盘异常掉线,否则分区表可能损坏导致无法识别
- gdisk 自动创建 Protective MBR 和备份 GPT 头,无需手动干预;但若误删分区后新建,数据将丢失
- 超过 2TB 的 MBR 分区无法无损转换,因 GPT 才支持 >2TB 单一分区,此类场景需先缩小原分区再操作











