问题描述
符合如下条件的Alibaba Cloud Linux 2实例在系统盘配置不是默认值20 GB时,扩容磁盘失败,系统显示系统盘大小仍然为默认值20 GB。
镜像:aliyun_2_1903_x64_20G_alibase_20200114.qboot.vhd镜像(以下简称qboot镜像)。
内核:4.19.81-17.al7.x86_64内核版本。
例如系统盘配置为300 GB,扩容vda1分区至非20 GB后,还是显示20 GB,如下图所示:
查看对应的/var/log/cloud-init.log
日志,发现磁盘resize失败。
问题原因
该问题的原因是由于qboot镜像启动优化去除了initramfs过程,导致实例启动后出现以下情况:
/proc/mounts
中/
根目录的挂载设备为/dev/root
。系统没有正确创建软链接
/dev/root
。
因此在实例启动过程中,cloud-init应用无法正确识别系统根分区信息,导致扩容失败。
解决方案
方案一:扩容系统盘的分区和文件系统
参考以下步骤,扩容系统盘的分区和文件系统。
执行以下命令,对系统盘第一个分区进行扩容。
growpart /dev/vda 1
执行以下命令,扩容系统盘的
/dev/vda1
分区文件系统。resize2fs /dev/vda1
说明以上命令是扩容EXT4格式的文件系统。如果您使用的是XFS文件系统,需执行
xfs_growfs /dev/vda1
命令扩容文件系统。更多信息,请参见扩容分区和文件系统(Linux)。
方案二:更换系统盘
该问题在aliyun_2_1903_x64_20G_qboot_alibase_20200904.vhd版本的qboot镜像中已修复,您使用新镜像即可。具体操作,请参见更换操作系统(系统盘)。