能无损转换mbr为gpt的工具是sgdisk(linux)或mbr2gpt(windows),前提需磁盘首≥34扇区、尾≥33扇区空闲且分区未超2tb;转换后须验证gpt生效、修复4k对齐并切换uefi启动模式。

组装电脑装完系统后想把磁盘从MBR换成GPT,又不想重装系统、不丢数据,就得用真正能保留分区结构的工具——不是fdisk、不是parted mklabel,而是sgdisk或Windows自带的mbr2gpt。
先确认当前是MBR还是GPT
打开终端(Linux)或管理员命令提示符(Windows),运行:
sudo fdisk -l /dev/sda → 看“Disk label type:”后面是dos就是MBR,是gpt就是GPT。
这一步不能跳过,误判会导致后续操作直接清空分区表。
Linux下用sgdisk无损转MBR为GPT
方法一:命令行一键转换(推荐)
第一步:卸载目标磁盘所有分区,例如 sudo umount /dev/sda1 /dev/sda2;
第二步:执行 sudo sgdisk -g /dev/sda;
第三步:等待输出“The operation has completed successfully”,且无ERROR或WARNING;
【必须确保磁盘开头≥34扇区、结尾≥33扇区空闲,否则转换会失败甚至损坏分区】;
第四步:验证结果,运行 sudo fdisk -l /dev/sda,确认Disk label type已变为gpt。
方法二:用gdisk交互式转换
运行 sudo gdisk /dev/sda → 输入 r 进入恢复菜单 → 输入 g 转换MBR为GPT → 输入 w 写入并退出;
注意:gdisk不会自动检查首尾扇区是否空闲,若报“overlaps the first/last partition”,说明磁盘布局不满足无损转换条件,此时不能强行操作。
Windows下用mbr2gpt无损转换
仅适用于Win10 1703及以上、系统盘且满足UEFI兼容结构(如无逻辑分区、有足够未分配空间供ESP生成):
以管理员身份运行PowerShell → 输入 mbr2gpt /validate /disk:0 验证;
若提示“Validation completed successfully”,再执行 mbr2gpt /convert /disk:0;
转换完成后必须重启进BIOS,将启动模式从Legacy切换为UEFI,否则系统无法启动。
转换后必须做的事
Linux下:用 sudo parted /dev/sda unit s print 检查分区起始扇区是否为2048(即1MiB对齐),如果不是,需用gdisk重新创建分区条目,保持原数据区域不变;
Windows下:转换后若系统无法启动,说明EFI系统分区缺失,需用diskpart手动创建ESP并赋予boot属性;
无论哪种系统,转换完成后都必须运行 sudo partprobe /dev/sda(Linux)或 diskpart → rescan(Windows)让内核/系统识别新分区表。











