云服务器ECS多分区场景下的磁盘分区扩容方法

免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

 

概述

本文主要介绍在多分区场景下,云服务器ECS磁盘分区扩容的方法。

 

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请根据操作系统类型,选择对应的磁盘分区扩容方法。

 

扩容Linux实例的磁盘

前提条件

在扩展磁盘分区和文件系统前,请提前完成以下工作。
  • 创建快照以备份数据,防止操作失误导致数据丢失。具体操作,请参见创建快照
  • 通过ECS控制台扩容云盘容量。具体操作,请参见扩容云盘容量

 

检查分区和文件系统

  1. 使用root用户登录该实例。
  2. 执行如下命令,查看当前磁盘的分区表格式。
    fdisk -lu [$Device]
    注:
    • [$Device]为磁盘设备名称,如/dev/vda/dev/vdb等。
    • 也可使用gdisk命令查看分区表格式。
    系统返回类似如下,若 Disklabel type 参数值为 dos,则分区表格式为MBR,若 Disklabel type 参数值为 gpt,则分区表格式为GPT。
  3. 执行如下命令,查看文件系统的类型。
    blkid [$Partition]
    注:[$Partition]对应当前磁盘的最后一个分区。
    系统返回类似如下,确认该分区的文件系统格式。
  4. 根据分区的文件系统格式,检查文件系统状态,并确认文件系统状态正常。
    • 若文件系统格式为EXT(包含ext2、ext3与ext4),请执行如下命令。
      e2fsck -n [$Partition]
    • 若文件系统格式为XFS,请执行如下命令。
      xfs_repair -n [$Partition]

 

扩容分区

由于新扩容的空间附加在虚拟磁盘末端,所以对于多分区场景,只支持对排在最后的分区进行扩容。以下扩容方法适用于系统盘与数据盘。请根据磁盘的最后一个分区的文件系统类型,选择对应的扩容方法。

注:为了防止数据丢失,不建议扩容已挂载的分区。

 

扩容MBR分区
  1. 执行如下命令,查看待扩容分区的磁盘信息。
    fdisk -lu [$Device]
    系统返回类似如下,确认该磁盘存在剩余空间用于扩容。
  2. 执行如下命令,卸载该磁盘的最后一个分区。
    注:卸载前检查是否有进程读写该分区,建议终止该进程后再进行卸载磁盘操作。
    umount [$Partition]
  3. 执行如下命令,进入Fdisk分区工具的交互环境。
    fdisk -u [$Device]
  4. 在Fdisk分区工具的交互环境,执行如下子命令,查看分区信息。
    p
    系统返回类似如下,记录最后一个分区的Number与起始位置。本文以最后一个分区vdb2为例,该分区的Number为2,起始位置为104859648。
  5. 执行如下子命令,在Partition number栏填写上一步获得的分区Number,现场请根据实际情况填写。
    d
    系统返回类似如下。
  6. 执行n子命令,将所有剩余空间扩容至最后一个分区。
    1. 在Partition type栏填p。
      注:本文以主分区为例,逻辑分区在Partition type栏填e。
    2. Partition number栏填步骤4中获得的分区Number。
    3. First sector栏填步骤4中获得的起始位置。
    4. Last sector栏直接回车使用默认值即可。
    5. 若提示如下信息,请在该栏填No。
      Partition #X contains a XXXX signature.
      Do you want to remove the signature? [Y]es/[N]o:
    6. 系统返回类似如下,确认扩容成功。
  7. 执行w子命令,保存并退出Fdisk分区工具的交互环境。
  8. 执行如下命令,确保分区表已经更新。
    lsblk [$Device]
  9. 执行如下命令,全面检查文件系统。
    fsck -f [$Partition]
  10. 执行如下命令,手动通知内核重读分区表。
    partprobe [$Partition]
  11. 根据分区的文件系统格式,扩展分区对应的文件系统。
    • 若文件系统格式为EXT(包含ext2、ext3与ext4),请执行如下命令。
      resize2fs [$Partition]
    • 若文件系统格式为XFS,请先挂载(mount)该分区,再执行如下命令。
      注:扩展XFS文件系统的前提是需要先挂载分区,否则会提示[$Partition] is not a mounted XFS filesystem错误。
      xfs_growfs [$Partition]

 

扩容GPT分区
  1. 执行如下命令,查看待扩容分区的磁盘信息。
    fdisk -l [$Device]
    系统返回类似如下,确认该磁盘存在剩余空间用于扩容。
  2. 执行如下命令,卸载该磁盘的最后一个分区。
    注:卸载前检查是否有进程读写该分区,建议终止该进程后再进行卸载磁盘操作。
    umount [$Partition]
  3. 执行如下命令,进入Parted分区工具的交互环境。
    注:若当前系统提示命令不存在,则请安装Parted软件包。
    parted [$Device]
  4. 在Parted分区工具的交互环境,执行如下子命令,查看分区信息。
    print
    系统返回类似如下,获得最后一个分区的Number。
  5. 依次执行如下子命令,将所有剩余空间扩容至最后一个分区,并检查扩容结果。
    resizepart [$Number] 100%
    print
    注:[$Number]即上一步获得的最后一个分区的Number。
    系统返回类似如下,确认扩容成功。
  6. 执行quit子命令,退出Parted分区工具的交互环境。
  7. 执行如下命令,全面检查文件系统。
    fsck -f [$Partition]
  8. 根据分区的文件系统格式,扩展分区对应的文件系统。
    • 若文件系统格式为EXT(包含ext2、ext3与ext4),请执行如下命令。
      resize2fs [$Partition]
    • 若文件系统格式为XFS,请先挂载(mount)该分区,再执行如下命令。
      注:扩展XFS文件系统的前提是需要先挂载分区,否则会提示[$Partition] is not a mounted XFS filesystem错误。
      xfs_growfs [$Partition]

 

扩容Windows实例的磁盘

前提条件

在扩展磁盘分区和文件系统前,请提前完成以下工作。
  • 创建快照以备份数据,防止操作失误导致数据丢失。具体操作,请参见创建快照
  • 通过ECS控制台扩容云盘容量。具体操作,请参见扩容云盘容量

 

扩容分区

以下扩容方法适用于系统盘与数据盘。

  1. 远程连接Windows实例。
  2. Win + R 键,打开 运行 窗口。输入 diskmgmt.msc 并回车,打开磁盘管理器。
  3. 在磁盘管理器,选择 操作 > 重新扫描磁盘
  4. 在磁盘管理区域,确认存在未分配容量。
  5. 右键单击分区的空白处,并选择 扩展卷。目前扩展卷功能支持如下两种场景。
    • 扩展系统盘最后一个分区。
    • 扩展数据盘任意分区。

  6. 根据扩展卷向导的指示完成扩展卷操作即可。


 

适用于

  • 云服务器 ECS