如何转换磁盘MBR分区为GPT分区?
操作场景
MBR分区支持的云硬盘最大容量为2 TiB,GPT分区支持的最大云硬盘容量为18 EiB,因此当云硬盘容量大于2 TiB或目前小于等于2 TiB但后续可能会扩容至2TiB以上时,请在初始化云硬盘时,分区格式选择GPT分区。
对于已选择MBR分区格式的云硬盘,如果希望将其扩容至2 TiB以上,需要先将分区格式从MBR转换为GPT后,再进行扩容。本文为您介绍如何将Windows和Linux系统ECS的数据盘从MBR分区转换为GPT分区。
转换MBR分区为GPT分区(Windows系统ECS)
本文以Windows Server 2016操作系统ECS、数据盘“磁盘 1”为例进行介绍,若您实际环境采用其他版本的操作系统,请参考对应操作系统官网帮助中心。

- 备份磁盘数据。
- 远程登录ECS。
详细操作,请参见Windows ECS登录方式概述。
- 在云服务器桌面,右键单击左下方的开始图标,然后单击“磁盘管理”。
- 在“磁盘管理”页面,找到待转换分区的数据盘(以磁盘 1为例)。
图1 磁盘管理
- 右键单击一个简单卷,在弹出菜单中选择“删除卷”。
图2 删除卷
如果删除卷失败,可能是您的ECS内仍有程序访问该磁盘的数据或信息。建议您重启ECS后,再次执行删除卷。
重启ECS会影响业务运行,请选择合适的时间进行。
- 单击“是”,完成删除卷。
- 右键单击磁盘 1周边的空白区,在弹出菜单中选择“转换成GPT磁盘”。
图3 转换成GPT磁盘
- 右键单击磁盘的未分配区域,选择“新建简单卷”。
图4 新建简单卷
- 在“新建简单卷向导”对话框中,单击“下一步”,然后根据向导完成操作。
详细操作,请参见初始化windows数据盘中的“新建简单卷”步骤。
- 查看新建的简单卷信息,单击“完成”,关闭“新建简单卷向导”。
分区格式转换完成后,“磁盘管理”中“磁盘 1”的状态如下图所示。
图5 新磁盘状态 - (可选)恢复磁盘数据。
如果您已备份原数据盘的数据,分区转换完成后,可以恢复数据至原数据盘,并确认数据无误后再使用。
您可以根据数据备份方式,选择对应的数据恢复方案:
- 快照或云硬盘备份方式:
- 通过快照或云硬盘备份创建一块新的云硬盘。
具体操作,请参见使用快照创建云硬盘和使用云硬盘备份创建新云硬盘。
- 将新的云硬盘挂载至ECS。
具体操作,请参见为ECS挂载磁盘。
- 将数据拷贝至已完成分区转换的原数据盘。
不可利用快照或云硬盘备份直接恢复数据至已转换为GPT分区的磁盘中,避免回滚至MBR分区。
恢复数据后建议删除备份数据,避免持续计费。
- 通过快照或云硬盘备份创建一块新的云硬盘。
- 拷贝数据方式:
- 快照或云硬盘备份方式:
转换数据盘MBR分区为GPT分区(Linux系统ECS)
本文以Huawei Cloud EulerOS 2.0操作系统ECS、数据盘/dev/vdb为例进行介绍,若您实际环境采用其他版本的操作系统,请参考对应操作系统官网帮助中心。

通常情况下,Linux系统ECS在转换分区格式过程中,磁盘原有分区数据不会丢失。对于数据盘未进行过分区的Linux ECS,不需要进行分区转换操作,强制操作可能导致ECS启动失败或数据丢失。
为了避免因误操作导致数据丢失或异常,请您务必提前备份磁盘上的所有数据。
- 备份磁盘数据。
- 远程登录ECS。
详细操作,请参见Linux ECS登录方式概述。
- 执行以下命令,查看磁盘分区情况。
- 磁盘已分区,执行步骤4。
图6 磁盘分区
如图所示,该实例有2块磁盘,系统盘/dev/vda和数据盘/dev/vdb,以数据盘/dev/vdb为例进行介绍。
- 磁盘的设备名称:/dev/vdb
- 磁盘的分区类型:Disklabel type值为dos表示MBR分区。
- 磁盘分区:/dev/vdb1
不同操作系统的显示略有不同。如果没有Disklabel type字段,可通过System字段判断。System值为Linux表示MBR分区,值为GPT表示GPT分区。较低版本的fdisk可能不能正常显示GPT分区表。您可以通过gdisk -l /dev/vdb命令查看分区类型。
- 磁盘未分区,不支持转换进行分区转换,结束操作。
- 磁盘已分区,执行步骤4。
- 执行以下命令,检查磁盘数据的保存位置。
- 数据保存在分区中,执行步骤5。
图8 检查磁盘使用情况
- 数据未保存在分区中,不建议进行分区转换,结束操作。
如果执行df -h命令时发现磁盘数据存储位置出现问题,请参见常见问题进行解决。
- 数据保存在分区中,执行步骤5。
- 执行以下命令,安装gdisk工具。
- 执行以下命令,将MBR分区转换为GPT分区。
sgdisk只能对设备(例如/dev/vdb)进行操作,不能对分区(例如/dev/vdb1)进行操作,否则可能会损坏文件系统。
以磁盘设备名称/dev/vdb为例,执行如下命令:
sgdisk -g /dev/vdb
图10 转换成功如果执行sgdisk命令时出现报错提示信息,请参见常见问题进行解决。
常见问题
- 问题1:
执行转换分区sgdisk -g命令时,提示如下信息。
图12 报错信息1这是由于磁盘尾部剩余空间不足33个扇区,没有足够的空间用于MBR转换为GPT。
解决方案:
- 扩容云硬盘的容量,详细操作,请参见扩容云硬盘。
- 扩容云硬盘后,再次执行转换分区格式。
- 问题2:
执行转换分区sgdisk -g命令时,提示如下信息。图13 报错信息2
这是由于磁盘头部剩余空间不足以容纳GPT分区表所需的头部信息。这通常是因为数据或分区位于磁盘非常靠前的位置,没有足够的空间来放置GPT的分区表结构。
解决方案:
- 问题3:
执行转换分区sgdisk -g命令时,提示如下信息。
图14 报错信息3这是由于数据盘未分区的情况下,进行了MBR到GPT的分区转换。该场景下,转换分区操作会导致ECS启动失败或数据丢失。
解决方案:
通过步骤1中备份的数据进行数据恢复。
数据恢复的详细步骤,请参见使用快照回滚数据至云硬盘或使用云硬盘备份恢复数据。
- 问题4:
若数据未保存在磁盘分区中或磁盘分区有问题,则无法进行分区转换。包含如下两种情况:
- 数据直接保存在数据盘根目录,无法直接进行分区转换操作,否则可能导致ECS启动失败或数据丢失。
图15 数据未保存在分区中示例
解决方案:
直接扩容数据盘。详细步骤,请参见Linux系统扩容数据盘时,如何扩展未分区磁盘文件系统。
扩容完成后,不需要再进行分区转换操作,强制操作可能导致ECS启动失败或数据丢失。
- 数据盘格式化文件系统后再进行分区,导致存在两个相同的UUID。
执行lsblk -f查看磁盘分区层级结果,出现类似如下图所示情况,数据盘sda以及磁盘分区sda1均挂载了文件系统,并存在两个相同的UUID。
该情况下无法直接进行分区转换操作,否则可能导致ECS启动失败或数据丢失。
图16 磁盘分区层级结构示例解决方案:
- 参考步骤1备份数据。
- 重新格式化数据盘文件系统
- 格式化文件系统后,使用备份数据进行恢复。
数据恢复的详细步骤,请参见使用快照回滚数据至云硬盘或使用云硬盘备份恢复数据。
上述操作完成后,不需要再进行分区转换操作,强制操作可能导致ECS启动失败或数据丢失。
- 数据直接保存在数据盘根目录,无法直接进行分区转换操作,否则可能导致ECS启动失败或数据丢失。