文档首页/ 弹性云服务器 ECS/ 常见问题/ 磁盘分区/挂载/扩容/ 如何转换磁盘MBR分区为GPT分区?
更新时间:2025-08-18 GMT+08:00
分享

如何转换磁盘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”为例进行介绍,若您实际环境采用其他版本的操作系统,请参考对应操作系统官网帮助中心。

  • Windows系统ECS转换分区格式过程中,磁盘数据不可用,如果您正在运行的业务依赖于该磁盘的数据,可能会出现问题。

    建议您转换前先停止业务,待分区格式转换完成并恢复磁盘数据后再继续进行。

  • 转换分区格式过程中,磁盘上所有数据会被清除,请您提前备份磁盘上的所有数据。
  1. 备份磁盘数据。
  2. 远程登录ECS。

    详细操作,请参见Windows ECS登录方式概述

  3. 在云服务器桌面,右键单击左下方的开始图标,然后单击“磁盘管理”。
  4. 在“磁盘管理”页面,找到待转换分区的数据盘(以磁盘 1为例)。
    图1 磁盘管理
  5. 右键单击一个简单卷,在弹出菜单中选择“删除卷”。
    图2 删除卷

    如果删除卷失败,可能是您的ECS内仍有程序访问该磁盘的数据或信息。建议您重启ECS后,再次执行删除卷。

    重启ECS会影响业务运行,请选择合适的时间进行。

  6. 单击“是”,完成删除卷。
  7. 右键单击磁盘 1周边的空白区,在弹出菜单中选择“转换成GPT磁盘”。
    图3 转换成GPT磁盘
  8. 右键单击磁盘的未分配区域,选择“新建简单卷”。
    图4 新建简单卷
  9. 在“新建简单卷向导”对话框中,单击“下一步”,然后根据向导完成操作。

    详细操作,请参见初始化windows数据盘中的“新建简单卷”步骤。

  10. 查看新建的简单卷信息,单击“完成”,关闭“新建简单卷向导”。

    分区格式转换完成后,“磁盘管理”中“磁盘 1”的状态如下图所示。

    图5 新磁盘状态
  11. (可选)恢复磁盘数据。

    如果您已备份原数据盘的数据,分区转换完成后,可以恢复数据至原数据盘,并确认数据无误后再使用。

    您可以根据数据备份方式,选择对应的数据恢复方案:

    • 快照或云硬盘备份方式:
      1. 通过快照或云硬盘备份创建一块新的云硬盘。

        具体操作,请参见使用快照创建云硬盘使用云硬盘备份创建新云硬盘

      2. 将新的云硬盘挂载至ECS。

        具体操作,请参见为ECS挂载磁盘

      3. 将数据拷贝至已完成分区转换的原数据盘。

      不可利用快照或云硬盘备份直接恢复数据至已转换为GPT分区的磁盘中,避免回滚至MBR分区。

      恢复数据后建议删除备份数据,避免持续计费。

    • 拷贝数据方式:

      手动拷贝数据至原数据盘。

转换数据盘MBR分区为GPT分区(Linux系统ECS)

本文以Huawei Cloud EulerOS 2.0操作系统ECS、数据盘/dev/vdb为例进行介绍,若您实际环境采用其他版本的操作系统,请参考对应操作系统官网帮助中心。

通常情况下,Linux系统ECS在转换分区格式过程中,磁盘原有分区数据不会丢失。对于数据盘未进行过分区的Linux ECS,不需要进行分区转换操作,强制操作可能导致ECS启动失败或数据丢失。

为了避免因误操作导致数据丢失或异常,请您务必提前备份磁盘上的所有数据。

  1. 备份磁盘数据。
    您可以选择以下方式备份磁盘数据:
  2. 远程登录ECS。

    详细操作,请参见Linux ECS登录方式概述

  3. 执行以下命令,查看磁盘分区情况。

    fdisk -lu

    • 磁盘已分区,执行步骤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命令查看分区类型。

    • 磁盘未分区,不支持转换进行分区转换,结束操作。
      如下图所示,数据盘未分区,不支持转换分区。
      图7 磁盘未分区示例
  4. 执行以下命令,检查磁盘数据的保存位置。

    df -h

    • 数据保存在分区中,执行步骤5
      图8 检查磁盘使用情况
    • 数据未保存在分区中,不建议进行分区转换,结束操作。
      如下图所示,数据未保存在分区,而直接保存在数据盘,不建议进行分区转换操作,否则可能导致ECS启动失败或数据丢失。
      图9 数据未保存在分区中示例

    如果执行df -h命令时发现磁盘数据存储位置出现问题,请参见常见问题进行解决。

  5. 执行以下命令,安装gdisk工具。
    • Huawei Cloud EulerOS 2.0版本、CentOS 6及以上版本运行以下命令。

      type sgdisk || yum install -y gdisk

    • Debian 8及以上版本、Ubuntu14及以上版本运行以下命令。

      type sgdisk || apt-get install -y gdisk

  6. 执行以下命令,将MBR分区转换为GPT分区。

    sgdisk只能对设备(例如/dev/vdb)进行操作,不能对分区(例如/dev/vdb1)进行操作,否则可能会损坏文件系统。

    以磁盘设备名称/dev/vdb为例,执行如下命令:

    sgdisk -g /dev/vdb

    图10 转换成功

    如果执行sgdisk命令时出现报错提示信息,请参见常见问题进行解决。

  1. 执行以下命令,查看分区转换结果。

    以磁盘设备名称/dev/vdb为例,执行如下命令:

    fdisk -lu /dev/vdb

    如下图所示,当Disklabel type值为gpt时,表示已转换为GPT分区,分区转换成功。

    图11 转换分区成功

    不同操作系统的显示略有不同。如果没有Disklabel type字段,可通过System字段判断。System值为GPT表示为GPT分区。

常见问题

  • 问题1

    执行转换分区sgdisk -g命令时,提示如下信息。

    图12 报错信息1

    这是由于磁盘尾部剩余空间不足33个扇区,没有足够的空间用于MBR转换为GPT。

    解决方案

    1. 扩容云硬盘的容量,详细操作,请参见扩容云硬盘
    2. 扩容云硬盘后,再次执行转换分区格式。
  • 问题2
    执行转换分区sgdisk -g命令时,提示如下信息。
    图13 报错信息2

    这是由于磁盘头部剩余空间不足以容纳GPT分区表所需的头部信息。这通常是因为数据或分区位于磁盘非常靠前的位置,没有足够的空间来放置GPT的分区表结构。

    解决方案

    1. 备份磁盘数据。
    2. 新增一个磁盘并挂载至ECS,详细操作,请参见为ECS新增磁盘为ECS挂载磁盘
    3. 将旧磁盘的数据复制到新磁盘。
    4. 卸载并删除旧磁盘,详细操作,请参见在线卸载磁盘删除云硬盘
  • 问题3:

    执行转换分区sgdisk -g命令时,提示如下信息。

    图14 报错信息3

    这是由于数据盘未分区的情况下,进行了MBR到GPT的分区转换。该场景下,转换分区操作会导致ECS启动失败或数据丢失。

    解决方案:

    通过步骤1中备份的数据进行数据恢复。

    数据恢复的详细步骤,请参见使用快照回滚数据至云硬盘使用云硬盘备份恢复数据

  • 问题4:
    若数据未保存在磁盘分区中或磁盘分区有问题,则无法进行分区转换。包含如下两种情况:
    • 数据直接保存在数据盘根目录,无法直接进行分区转换操作,否则可能导致ECS启动失败或数据丢失。
      图15 数据未保存在分区中示例

      解决方案:

      直接扩容数据盘。详细步骤,请参见Linux系统扩容数据盘时,如何扩展未分区磁盘文件系统

      扩容完成后,不需要再进行分区转换操作,强制操作可能导致ECS启动失败或数据丢失。

    • 数据盘格式化文件系统后再进行分区,导致存在两个相同的UUID。

      执行lsblk -f查看磁盘分区层级结果,出现类似如下图所示情况,数据盘sda以及磁盘分区sda1均挂载了文件系统,并存在两个相同的UUID。

      该情况下无法直接进行分区转换操作,否则可能导致ECS启动失败或数据丢失。

      图16 磁盘分区层级结构示例

      解决方案:

      1. 参考步骤1备份数据。
      2. 重新格式化数据盘文件系统
      3. 格式化文件系统后,使用备份数据进行恢复。

        数据恢复的详细步骤,请参见使用快照回滚数据至云硬盘使用云硬盘备份恢复数据

      上述操作完成后,不需要再进行分区转换操作,强制操作可能导致ECS启动失败或数据丢失。

相关文档