在ECS控制台上扩容云盘容量后,对应分区和文件系统并未扩容,您还需要进入ECS实例内部继续扩容云盘的分区和文件系统,将扩容部分的容量划分至已有分区及文件系统内,使云盘扩容生效。本文为您介绍如何通过两个步骤完成Linux实例云盘的分区和文件系统扩容.
本文参考阿里云服务器的云盘扩容,云盘扩容指引_云服务器 ECS(ECS)-阿里云帮助中心 (aliyun.com)
在虚拟机上操作ubuntu22为示例记录一下操作步骤
前提条件
确保Linux实例的操作系统是Alibaba Cloud Linux 2/3、CentOS 6及以上、Debian 8及以上或者Ubuntu14及以上版本。
操作步骤
准备工作:获取目标云盘信息
执行扩容分区和文件系统操作前,请先获取待扩容云盘和云盘分区信息。
方式一:通过命令行获取
运行以下命令,确认待扩容云盘及其分区信息。
sudo fdisk -lu
步骤1:扩容分区
Debian 8及以上版本、Ubuntu14及以上版本
- 如果是MBR分区 ,执行下面步骤
sudo apt-get update
type growpart || sudo apt-get install -y cloud-guest-utils
sudo LC_ALL=en_US.UTF-8 growpart /dev/sda 3
- 当前测试环境是GPT分区(需安装gdisk工具)
sudo apt-get update
type growpart || sudo apt-get install -y cloud-guest-utils
type sgdisk || sudo apt-get install -y gdisk
重要说明
执行扩容分区命令时,您需要特别注意以下几种情况:
- LC_ALL=en_US.UTF-8是环境变量设置,为了兼容中文操作系统的字符编码。
- 如果单盘有多个连续分区的情况,仅能扩容最后一个分区。例如数据盘/dev/sda有三个分区/dev/sda1、/dev/sda2和/dev/sda3。扩容时,只能扩容最后一个分区/dev/sda3,即执行growpart /dev/sda 3命令即可完成数据盘的分区扩容。
sudo LC_ALL=en_US.UTF-8 growpart /dev/sda 3
如下图所示,输出CHANGED字样时,表示分区扩容成功(条件必选)CentOS 6等较低版本的操作系统,需要执行reboot命令重启实例,使分区扩容生效。
步骤2:扩容文件系统
-
运行以下命令,获取需要扩容的文件系统的类型和挂载目录。
df -Th
Type
值为文件系统类型,Mounted on
值为分区的挂载目录。如下图表示/dev/sda3
分区的文件系统类型为ext4,挂载目录为/。如果Filesystem取值后缀不带数字(例如
/dev/vdc),则为裸设备
-
2:扩容文件系统
ext*(例如ext2、ext3、ext4)文件系统
以扩容云盘分区/dev/sda3的ext*文件系统为例,则运行如下命令:
-
sudo resize2fs /dev/sda3
运行以下命令,确认是否扩容成功
当查询结果中的文件系统容量和控制台容量一致时,表示扩容成功。