转换MBR分区为GPT分区

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

MBR分区格式不支持2 TiB以上的云盘。如果您的云盘目前使用的是MBR分区类型,且希望将其扩容至2 TiB以上,需要先将分区类型从MBR转换为GPT,再扩容分区及文件系统。本文为您介绍如何将Linux和Windows数据盘的MBR分区转换为GPT分区。

准备工作

转换Linux数据盘的分区类型

您可以参考如下操作,将Linux数据盘的MBR分区转换为GPT分区。本操作以数据盘/dev/vdb为例,请您根据实际环境进行操作。

  1. (可选)为云盘创建快照,做好数据备份。

    具体操作,请参见创建快照

    说明
    • Linux转换分区过程中,正常情况下不会丢失原分区的数据。避免误操作导致数据丢失或异常,建议您提前备份云盘上的所有数据。

    • 使用快照会产生计费。更多信息,请参见快照计费

  2. 远程连接ECS实例。

    登录ECS管理控制台,单击左侧导航栏实例,选择目标实例,单击远程连接,登录实例,具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  3. 运行以下命令,安装gdisk工具。

    • Alibaba Cloud Linux 2/3版本、CentOS 6及以上版本运行以下命令。

      type sgdisk || sudo yum install -y gdisk
    • Debian 8及以上版本、Ubuntu14及以上版本运行以下命令。

      type sgdisk || sudo apt-get install -y gdisk
  4. 运行以下命令,将MBR分区转换为GPT分区。

    重要

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

    以云盘设备名称/dev/vdb为例,则需要运行如下命令。

    sudo sgdisk -g /dev/vdb

    image

    说明

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

    -g表示convert MBR to GPT。

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

    以云盘设备名称/dev/vdb为例,则运行如下命令。

    sudo fdisk -lu /dev/vdb

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

    image

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

    • 若转换分区后数据出现异常,您可以使用快照回滚云盘,使云盘恢复到创建快照时的状态,具体操作详见使用快照回滚云盘

  6. MBR分区转换为GPT分区成功后,您可依照扩容分区和文件系统(Linux)继续执行扩容分区及文件系统操作。

转换Windows数据盘的分区类型

您可以参考如下操作将Windows数据盘的MBR分区转换为GPT分区。本操作以公共镜像Windows Server 2016 64位、数据盘磁盘1为例,请您根据实际环境进行操作。

重要

转换Windows云盘分区过程中,云盘数据不可用,如果您正在运行的业务依赖于该盘的数据,可能会出现问题。建议您先停止服务,待分区转换完成并恢复云盘数据后再继续运行业务。

步骤一:转换分区

  1. (可选)备份云盘数据。

    警告

    Windows转换分区过程中,需要删除卷,删除卷会清除该卷上的所有数据,请您提前备份云盘上的所有数据。

    分区转换成功后,可以通过备份数据恢复原云盘。您可以通过以下两种方式备份Windows云盘数据。

    • 方式一:通过快照备份。

      说明
      • 创建快照。具体操作,请参见创建快照

      • 使用快照会产生计费。更多信息,请参见快照计费

    • 方式二:将原云盘数据手动拷贝到ECS实例的其他云盘上。

  2. 远程连接ECS实例。

    登录ECS管理控制台,点击左侧导航栏实例,选择目标实例,单击远程连接,登录实例,具体操作,请参见使用Workbench工具以RDP协议登录Windows实例

  3. 在Windows Server桌面,右键单击开始图标图标,然后单击磁盘管理

  4. 找到待转换分区的数据盘(以磁盘 1为例)。

    磁盘1

  5. 右键单击一个简单卷,在弹出菜单中选择删除卷

    删除卷

    重要

    如果删除卷失败,可能是您实例内仍有程序去访问此块云盘的数据或者信息。您可以尝试重启实例后,再执行删除卷。重启实例会影响业务,建议您选择合适的时间进行。

  6. 在弹出的删除简单卷对话框中,单击

  7. 磁盘1 的简单卷全部删除完毕后,右键单击磁盘,在弹出菜单中选择转换成GPT磁盘

    转换GTP

  8. 右键单击磁盘,在弹出菜单中选择属性>,查看磁盘分区格式是否转换成功。 截屏2024-10-30 15

  9. 右键单击磁盘的未分配区域,选择新建简单卷

    新建简单卷

  10. 新建简单卷向导对话框中,单击下一步,然后根据向导完成操作。

    1. 指定卷大小对话框中,设置简单卷大小,然后单击下一步

      如果您只需要创建一个主区,直接使用默认值即可。您也可以根据需要设置简单卷大小,把磁盘 1分成多个分区来使用。指定卷大小

    2. 分配驱动器号和路径对话框中,选择分配以下驱动器号,并选择盘符名称(例如D),然后单击下一步

      分配驱动号

    3. 格式化分区对话框中,选择按下列设置格式化这个卷,并设置格式化信息,然后单击下一步

      设置格式化信息

    4. 查看新建的简单卷信息,单击完成,关闭新建简单卷向导

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

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

如果您已备份并需要恢复原云盘数据,分区转换完成后,您需要手动拷贝数据至原云盘,并确认数据无误后再使用。

说明

如果您是通过快照备份数据:

  • 恢复数据时,需要通过快照创建一块新云盘并挂载至ECS实例后拷贝数据,不可利用快照回滚,避免回滚至MBR模式。具体操作,请参见使用快照创建云盘挂载数据盘

  • 恢复云盘数据后建议删除快照,避免快照产生计费。具体操作,请参见删除快照

步骤三:扩容分区和文件系统

MBR分区转换为GPT分区成功后,您可依照扩容分区和文件系统(Windows)继续执行扩容分区及文件系统操作。

常见问题

  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控制台扩容云盘容量后,再转换分区格式。

  2. 问题:运行转换分区sgdisk -g命令时,提示如下信息。

    image

    原因:云盘头部剩余空间不足以容纳GPT分区表所需的头部信息。这通常是因为数据或分区位于磁盘的非常靠前位置,没有足够的空间来放置GPT的分区表结构。这种情况下,是不支持转换分区的。

    解决方案

    1. 为云盘创建快照备份数据。具体操作,请参见创建快照

    2. 创建一个新云盘并挂载至ECS实例。具体操作,请参见创建空数据盘挂载数据盘

    3. 通过rsync相关命令,将旧云盘的数据拷贝至新云盘。

    4. 卸载和删除旧云盘。具体操作,请参见卸载数据盘释放云盘

  3. 问题:运行转换分区type sgdisk || yum install -y gdisk命令时,提示如下信息。

    Error downloading packages:
      gdisk-0.8.10-3.1.al7.x86_64: Insufficient space in download directory /var/cache/yum/x86_64/2.1903/updates/packages
        * free   0
        * needed 190 k

    原因:下载目录(/var/cache/yum/x86_64/2.1903/updates/packages)没有足够的空间来下载所需的包。

    解决方案:需要清理空间,增加下载目录的大小。