本文为您介绍如何将Linux和Windows数据盘的MBR分区转换为GPT分区。

操作场景

MBR分区格式不支持2 TiB以上的云盘。如果该云盘目前使用的是MBR分区类型,且希望将其扩容至2 TiB以上,需要先将分区类型从MBR转换为GPT。

转换Linux数据盘的分区类型

您可以参考如下操作将Linux数据盘的MBR分区转换为GPT分区。本操作以公共镜像Alibaba Cloud Linux 2.1903 LTS 64位、数据盘/dev/vdb为例,请您根据实际环境进行操作。

  1. 可选:为云盘创建快照,做好数据备份。
    具体操作,请参见创建一个云盘快照
    说明
    • Linux转换分区过程中,正常情况下不会丢失原分区的数据。避免误操作导致数据丢失或异常,建议您提前备份云盘上的所有数据。
    • 使用快照会产生计费。更多信息,请参见快照计费
  2. 远程连接ECS实例。
  3. 运行以下命令,查看云盘分区情况。
    fdisk -lu
    确认分区情况如图所示,表示该实例有2块云盘,系统盘/dev/vda和数据盘/dev/vdb,我们以数据盘/dev/vdb为例。其中:
    • ①:云盘的设备名称。
    • ②:云盘的分区类型。

      Disk label type值为dos表示MBR分区,值为gpt表示GPT分区。

      说明
      • 不同操作系统的显示略有不同。如果没有Disk label type字段,可通过System字段判断。System值为Linux表示MBR分区,值为GPT表示GPT分区。
      • 较低版本的fdisk可能不能正常显示GPT分区表。您可以通过gdisk -l /dev/vdb命令查看分区类型。
  4. 运行以下命令,安装gdisk工具。
    • Alibaba Cloud Linux 2/3版本、CentOS 6及以上版本运行以下命令。
      type sgdisk || yum install -y gdisk
    • Debian 8及以上版本、Ubuntu14及以上版本运行以下命令。
      type sgdisk || apt-get install -y gdisk
  5. 运行以下命令,将MBR分区转换为GPT分区。
    以云盘设备名称/dev/vdb为例,则运行如下命令。
    sgdisk -g /dev/vdb
    说明 如果出现报错提示,请参见常见问题进行解决。
  6. 运行以下命令,查看分区转换结果。
    以云盘设备名称/dev/vdb为例,则运行如下命令。
    fdisk -lu /dev/vdb
    如下图所示,Disk label type值为gpt时,表示已转换为GPT分区,分区转换成功。新分区
    说明 不同操作系统的显示略有不同。如果没有Disk label type字段,可通过System字段判断。System值为GPT表示GPT分区。

转换Windows数据盘的分区类型

您可以参考如下操作将Windows数据盘的MBR分区转换为GPT分区。本操作以公共镜像Windows Server 2012 R2 64位、数据盘磁盘1为例,请您根据实际环境进行操作。
重要 转换Windows云盘分区过程中,云盘数据不可用,如果您正在运行的业务依赖于该盘的数据,可能会存在问题。建议您先停止服务,待分区转换完成、恢复云盘数据后再继续运行业务。

步骤一:转换分区

  1. 可选:备份云盘数据。
    警告 Windows转换分区过程中,删除卷会清除该卷上的所有数据,请您提前备份云盘上的所有数据。
    分区转换成功后,可以通过备份数据恢复原云盘。您可以通过以下两种方式备份Windows云盘数据。
    • 方式一:通过快照备份。
      说明 使用快照会产生计费。更多信息,请参见快照计费
      1. 创建快照。具体操作,请参见创建一个云盘快照
      2. 通过快照创建一块新云盘并挂载至ECS实例。具体操作,请参见使用快照创建云盘挂载数据盘
    • 方式二:将原云盘数据手动拷贝到ECS实例的其他云盘上。
  2. 远程连接ECS实例。
  3. 在Windows Server桌面,右键单击开始图标图标,然后单击磁盘管理
  4. 找到待转换分区的数据盘(以磁盘 1为例)。
    磁盘1
  5. 右键单击一个简单卷,在弹出菜单中选择删除卷
    删除卷
    重要 如果删除卷失败,可能是您实例内仍有程序去访问此块云盘的数据或者信息。您可以尝试重启实例后,再执行删除卷。重启实例会影响业务,建议您选择合适的时间进行。
  6. 在弹出的删除简单卷对话框中,单击
  7. 右键单击磁盘周边的空白区,在弹出菜单中选择转换成GPT磁盘
    转换GTP
  8. 右键单击磁盘的未分配区域,选择新建简单卷
    新建简单卷
  9. 新建简单卷向导对话框中,单击下一步,然后根据向导完成操作。
    1. 指定卷大小对话框中,设置简单卷大小,然后单击下一步
      如果您只需要创建一个主区,直接使用默认值即可。您也可以根据需要设置简单卷大小,把磁盘 1分成多个分区来使用。指定卷大小
    2. 分配驱动器号和路径对话框中,选择分配以下驱动器号,并选择盘符名称(例如D),然后单击下一步
      分配驱动号
    3. 格式化分区对话框中,选择按下列设置格式化这个卷,并设置格式化信息,然后单击下一步
      设置格式化信息
    4. 查看新建的简单卷信息,单击完成,关闭新建简单卷向导
    分区格式转换完成后,磁盘管理磁盘 1的状态如下图所示。新磁盘状态

(可选)步骤二:恢复云盘数据

如果您已备份并需要恢复原云盘数据,分区转换完成后,您需要手动拷贝数据至原云盘,并确认数据无误后再使用。
说明 如果您是通过快照备份数据,恢复云盘数据后建议删除快照,避免快照产生计费。具体操作,请参见删除快照

常见问题

问题:运行转换分区sgdisk -g命令时,提示如下信息。
Warning! Secondary partition table overlaps the last partition by 33 blocks!
You will need to delete this partition or resize it in another utility.

原因:云盘尾部剩余空间不足33个扇区,没有足够的空间用于MBR转换GPT。

解决方案:先参考步骤一:扩容云盘容量在ECS控制台扩容云盘容量后,再转换分区格式。