转换MBR分区为GPT分区

重要

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

MBR分区格式不支持2 TiB以上的云盘。如果您的云盘为MBR分区类型,且希望将其扩容至2 TiB及以上,需将分区类型转换为GPT后再进行扩容。

准备工作

已完成容量扩展。

转换Linux数据盘的分区类型

(建议)转换过程中通常不会丢失数据,但建议创建快照备份云盘数据,以防误操作。

重要

使用快照会产生快照费用

  1. 登录ECS实例。

    1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

    2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。

  2. 判断是否需要分区转换。

    运行sudo fdisk -lu,查看目标云盘的Disklabel type字段。

    image

    因分区格式限制,若为dos,且扩容后容量超过2TiB,需进行分区转换,否则无需转换,可直接扩容分区

  3. 执行分区转换指令。

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

      • Alibaba Cloud Linux 2/3版本、CentOS 6及以上版本。

        type sgdisk || sudo yum install -y gdisk
      • Debian 9及以上版本、Ubuntu14及以上版本。

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

      重要

      <待转换设备名称>可通过sudo fdisk -ludisk字段获取,sgdisk只能对待转换设备(例如/dev/vdb)进行操作,不能对分区(如/dev/vdb1)进行操作,否则可能会损坏文件系统。

      sudo sgdisk -g <待转换设备名称>

      返回The operation has completed successfully表示命令执行成功。

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

    <待转换设备名称>可通过sudo fdisk -ludisk字段获取。

    sudo fdisk -lu <待转换设备名称>

    回执中,当Disklabel type值为gpt时,表示已将分区格式转换为GPT。

  5. 分区转换成功后,您可继续扩容分区与文件系统

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

转换Windows数据盘的分区类型

重要

转换过程中,云盘数据不可用,可能影响业务。建议规划停机窗口,先停止服务,待转换完成并恢复数据后再继续运行。

步骤一:转换分区格式并重新分区

  1. Windows转换分区过程中,需要删除卷,删除卷会清除该卷上的所有数据,请您创建快照备份云盘数据,分区转换成功后,通过快照恢复数据。

    重要

    使用快照会产生快照费用

  2. 登录ECS实例。

    1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

    2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。选择连接方式为终端连接,输入账号和密码,登录图形化终端页面。

  3. 判断是否需要分区转换。

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

    2. 磁盘管理界面,右键单击目标磁盘,在弹出菜单中选择属性image

    3. 在弹出的对话框中,单击页签,查看磁盘分区形式

      因分区格式限制若为MBR分区且扩容后容量大于2TiB需转换分区。否则无需转换,直接扩容分区与文件系统

  4. 分区转换。

    1. 右键单击目标磁盘下的卷,选择删除卷,并在弹出的删除简单卷对话框中,单击

      如果删除卷操作失败,可能是因为实例中的程序仍在访问该云盘数据。建议重启实例后再次尝试删除。请注意,重启实例可能影响业务运行,建议在业务低峰期或合适的时间进行。
      警告

      删除卷会清除该卷上的所有数据,请您务必在删除卷前创建快照备份云盘数据。

    2. 目标磁盘下全部的卷删除完毕后,右键单击磁盘,选择转换成GPT磁盘

    3. 查看分区转换是否生效

      右键单击磁盘,在弹出菜单中选择属性>,若磁盘分区格式gpt表示分区转换成功。

  5. 重新分区

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

    2. 新建简单卷向导对话框中,单击下一步。

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

        如果只需要创建一个主区,直接使用默认值即可。您也可以根据需要设置简单卷大小,把磁盘分成多个分区来使用。
      2. 分配驱动器号和路径对话框中,选择分配以下驱动器号,并选择盘符名称,然后单击下一步。

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

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

步骤二:恢复云盘数据

恢复数据时,需要使用快照创建数据盘并将其挂载至ECS实例后拷贝数据,不可利用快照回滚,避免回滚至MBR格式。

常见问题

fdisk -lu的回执为什么没有Disklabel type?

  • 如无Disk label type字段,可通过System字段判断:Linux表示MBR分区,GPT表示GPT分区。

  • 部分低版本 fdisk 可能无法正确显示 GPT 分区表,建议使用 gdisk -l /dev/vdb查看分区类型。

运行转换分区sgdisk -g命令时,提示“Secondary partition table overlaps the last partition by 33 blocks!”

报错信息

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

运行转换分区type sgdisk || yum install -y gdisk命令时,提示“Insufficient space in download directory”。

报错信息

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)没有足够的空间来下载所需的包。

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