云计算百科
云计算领域专业知识百科平台

阿里云ecs服务器扩容后,和宝塔面板显示的不一致,服务器扩容没有扩容成功解决方案

注意事项

系统类型

  • 系统:我的系统是Alibaba Cloud Linux 3.2104 LTS 64位

核心参考文章

  • 参考阿里云文章1: 《扩容云盘容量》
  • 参考阿里云文章2: 《扩容分区和文件系统(Linux)》
  • 参考阿里云文章3: 《扩容分区和文件系统(Windows)》

我参考文章

  • 参考阿里云文章1: 《扩容云盘容量》
    • 主要看:《步骤二:扩容分区及文件系统》的第2小结的说明
    • 如果您未挂载文件系统但并未加载自动配置挂载点界面,请登录操作系统利用mount指令手动挂载后,再根据操作系统类型进行手动扩容。具体操作,请参见扩容分区和文件系统(Linux)或扩容分区和文件系统(Windows)。

  • 参考阿里云文章2: 《扩容分区和文件系统(Linux)》的《方法二:登录实例,自行扩容分区和文件系统》的步骤1、步骤2、步骤3

盘符分区类型

  • MBR
  • GPT

解决步骤

背景

我的系统云盘分区是默认的,和官方教程不一样。他们都在一个上面

第1步:确定云盘名称及分区信息

sudo fdisk -lu

在这里插入图片描述

  • 确定云盘是否分区。 如上图所示,表示该实例有3块云盘,系统盘/dev/vda、数据盘/dev/vdb和数据盘/dev/vdc,我们以数据盘为例。其中:

    • vdb1表示数据盘/dev/vdb已分区,数字1是分区编号。
    • vdc表示数据盘/dev/vdc未分区(裸设备)****。
  • 确定待扩容分区云盘。 我们以数据盘/dev/vdb为例。其中:

    SIZE表示容量大小,从图中可知/dev/vdb1分区的容量小于云盘/dev/vdb的容量,即/dev/vdb1分区需要扩容。

    说明

    您也可以通过运行lsblk命令查看哪个分区待扩容。

  • 确定待扩容云盘的分区类型。 Disklabel type表示云盘的分区类型,值为dos表示MBR分区,值为gpt表示GPT分区。 我们以存在分区的数据盘/dev/vdb为例。示例中的数据盘的云盘名称为/dev/vdb,分区名称为/dev/vdb1,分区类型为MBR分区。

    说明

    • 不同操作系统的显示略有不同。如果没有Disk label type字段,可通过System字段判断。System值为Linux表示MBR分区,值为GPT表示GPT分区。
    • 较低版本的fdisk可能不能正常显示GPT分区表。您可以通过gdisk -l /dev/vdb命令查看分区类型。
  • 我的信息

    sudo fdisk -lu
    GPT PMBR size mismatch (125829119 != 335544319) will be corrected by write.
    The backup GPT table is not on the end of the device. This problem will be corrected by write.
    Disk /dev/vda: 160 GiB, 171798691840 bytes, 335544320 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: 0F2F0AED-A1BF-46F2-AEC4-E8727122801F

    Device Start End Sectors Size Type
    /dev/vda1 2048 6143 4096 2M BIOS boot
    /dev/vda2 6144 415743 409600 200M EFI System
    /dev/vda3 415744 125829086 125413343 59.8G Linux filesystem

    在这里插入图片描述

    我的需求

    我目前是需要把扩容的100G附加到系统文件上,根据上图看出我目前云盘容量是160G,/dev/vda3 的容量是59.8G; 也就是我需要把我扩容的100G附加/dev/vda3 上。 并且,我通过上面命令可以看出我的盘符分区类型是Disklabel type: gpt

    第2步:扩容分区

    这些命令主要用于在基于Red Hat的Linux系统(如CentOS或Fedora)上安装、更新并使用growpart和sgdisk工具来调整磁盘分区大小。

    执行命令1

    type growpart || sudo yum install -y cloud-utils-growpart

    • 检查系统中是否已安装growpart命令。如果没有安装,则通过yum包管理器自动安装cloud-utils-growpart软件包,该软件包包含了growpart工具,用于扩展分区的大小。

    执行命令2

    sudo yum update cloud-utils-growpart

    • 更新cloud-utils-growpart软件包到最新版本,确保拥有最新的功能和安全补丁。

    执行命令3

    type sgdisk || sudo yum install -y gdisk

    • 类似地,检查系统中是否已安装sgdisk命令。如果没有安装,则自动安装gdisk软件包,sgdisk是一个强大的命令行工具,用于管理GPT磁盘分区。

    执行命令4

    sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1

    • 使用growpart工具对/dev/vdb设备上的第一个分区(编号为1)进行扩展操作。这里设置了环境变量LC_ALL=en_US.UTF-8,以确保命令执行时使用统一的语言编码设置,避免因区域设置差异可能引起的错误。

    根据我的需求,我执行的命令是:

    sudo LC_ALL=en_US.UTF-8 growpart /dev/vda 3

    完整命令执行截图

    [root]# type growpart || sudo yum install -y cloud-utils-growpart
    growpart is /usr/bin/growpart
    [root]# sudo yum update cloud-utils-growpart
    Last metadata expiration check: 0:27:12 ago on Thu 20 Feb 2025 04:21:29 PM CST.
    Dependencies resolved.
    Nothing to do.
    Complete!
    [root]# type sgdisk || sudo yum install -y gdisk
    sgdisk is /usr/sbin/sgdisk
    [root]# sudo LC_ALL=en_US.UTF-8 growpart /dev/vda 3
    CHANGED: partition=3 start=415744 old: size=125413343 end=125829086 new: size=335128543 end=335544286

    如下图所示,输出CHANGED字样时,表示分区扩容成功。 在这里插入图片描述

    第3步:确定《扩容分区》是否成功

    执行命令

    sudo fdisk -lu

    命令结果

    [root]# sudo fdisk -lu
    Disk /dev/vda: 160 GiB, 171798691840 bytes, 335544320 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: 0F2F0AED-A1BF-46F2-AEC4-E8727122801F

    Device Start End Sectors Size Type
    /dev/vda1 2048 6143 4096 2M BIOS boot
    /dev/vda2 6144 415743 409600 200M EFI System
    /dev/vda3 415744 335544286 335128543 159.8G Linux filesystem

    在这里插入图片描述 从结果上看我已经成功了,但这还没有结束……

    第4步:扩容文件系统-获取待扩容设备的挂载目录

    命令

    df -Th

    在这里插入图片描述

    Type值为文件系统类型,Mounted on值为分区的挂载目录。如下图表示/dev/vdb1分区的文件系统类型为ext4,挂载目录为**/mnt**。

    如果Filesystem取值后缀不带数字(例如/dev/vdc),则为裸设备。

    我的信息

    [root]# df -Th
    Filesystem Type Size Used Avail Use% Mounted on
    devtmpfs devtmpfs 7.6G 0 7.6G 0% /dev
    tmpfs tmpfs 7.6G 16K 7.6G 1% /dev/shm
    tmpfs tmpfs 7.6G 848K 7.6G 1% /run
    tmpfs tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup
    /dev/vda3 ext4 59G 43G 14G 77% /
    tmpfs tmpfs 7.6G 228K 7.6G 1% /tmp
    /dev/vda2 vfat 200M 5.8M 195M 3% /boot/efi
    overlay overlay 59G 43G 14G 77% /var/lib/docker/overlay2/eb6d5a338a95c1e6f96f6e9c37d07ef786a7b4fdf8824c7e433f026dc1341c0c/merged
    overlay overlay 59G 43G 14G 77% /var/lib/docker/overlay2/8feb9ddca4f7036ebefcb102d480723990e053f5aec051498f11598c6c9065f4/merged
    tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/1002
    overlay overlay 59G 43G 14G 77% /var/lib/docker/overlay2/b27a96baeabd990d3032586decbf3a0941cce0e265ec524ad7250e71310f1507/merged
    overlay overlay 59G 43G 14G 77% /var/lib/docker/overlay2/cb46085915b145572a75bd9b7c2accfe6cc27ad53fcf0c0b16dc0a81f1be183f/merged
    tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0

    在这里插入图片描述

    • 看我的/dev/vda3还是59G;
    • 到这里你可以理解成,扩容分区已经完成了,但扩容文件系统还没有完成。

    第5步:扩容文件系统

    云盘和文件系统在使用的状态下,采用resize2fs等工具在线扩容文件系统,有可能会触发文件系统数据问题,该问题与镜像内核版本、resize2fs工具版本相关,与云盘扩容本身无关。建议您为云盘创建快照,做好数据备份。

    • 以扩容云盘分区/dev/vdb1的**ext***文件系统为例,则运行如下命令:

      sudo resize2fs /dev/vdb1

      说明

      如果您扩容的是系统盘,命令中的/dev/vdb1需要替换为/dev/vda1。

    • 以扩容裸设备/dev/vdc的**ext***文件系统为例,则运行如下命令:

      sudo resize2fs /dev/vdc

    我的命令

    sudo resize2fs /dev/vda3

    命令结果

    [root]# sudo resize2fs /dev/vda3
    resize2fs 1.46.0 (29-Jan-2020)
    Filesystem at /dev/vda3 is mounted on /; on-line resizing required
    old_desc_blocks = 4, new_desc_blocks = 10
    The filesystem on /dev/vda3 is now 41891067 (4k) blocks long.

    第6步:确定《扩容文件系统》是否成功

    命令

    df -Th

    命令结果

    [root]# df -Th
    Filesystem Type Size Used Avail Use% Mounted on
    devtmpfs devtmpfs 7.6G 0 7.6G 0% /dev
    tmpfs tmpfs 7.6G 16K 7.6G 1% /dev/shm
    tmpfs tmpfs 7.6G 848K 7.6G 1% /run
    tmpfs tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup
    /dev/vda3 ext4 158G 43G 108G 29% /
    tmpfs tmpfs 7.6G 228K 7.6G 1% /tmp
    /dev/vda2 vfat 200M 5.8M 195M 3% /boot/efi
    overlay overlay 158G 43G 108G 29% /var/lib/docker/overlay2/eb6d5a338a95c1e6f96f6e9c37d07ef786a7b4fdf8824c7e433f026dc1341c0c/merged
    overlay overlay 158G 43G 108G 29% /var/lib/docker/overlay2/8feb9ddca4f7036ebefcb102d480723990e053f5aec051498f11598c6c9065f4/merged
    tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/1002
    overlay overlay 158G 43G 108G 29% /var/lib/docker/overlay2/b27a96baeabd990d3032586decbf3a0941cce0e265ec524ad7250e71310f1507/merged
    overlay overlay 158G 43G 108G 29% /var/lib/docker/overlay2/cb46085915b145572a75bd9b7c2accfe6cc27ad53fcf0c0b16dc0a81f1be183f/merged
    tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0

    在这里插入图片描述 从截图上看,我的/dev/vda3 已经是158G啦,至此完成!!!

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 阿里云ecs服务器扩容后,和宝塔面板显示的不一致,服务器扩容没有扩容成功解决方案
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!