1)参考阿里云扩容分区文档,整理MBR分区扩容
2)本文档适用于MBR分区(fdisk -lu查询)、ext系列文件系统(df -Th查询)
关闭相关服务,避免因为磁盘扩容导致数据错误
确保Linux实例的操作系统是Alibaba Cloud Linux 2/3、Centos 6及以上、Debian 8及以上或者Ubuntu 14及以上版本。
注意:
- Centos 6操作系统在扩容到2Tib以上或者扩容GPT分区表的时候,需要参考
- CentOS 6操作系统在扩容至2 TiB以上或者扩容GPT分区表时,需要参考离线扩容分区和文件系统(Linux数据盘)使用
parted
命令进行操作,不能使用本文档介绍的growpart
命令进行操作,否则会有分区表被改坏的风险。判断是否为GPT分区,可以参见文档中准备工作:获取目标云盘信息。- 如果为其他操作系统,扩容操作请参见离线扩容分区和文件系统(Linux数据盘)。
参考各云服务商扩容方法即可
fdisk -lu:查看磁盘属性
重点查看红色标记处,如果Disk Label type
的值未dos
表示MBR
分区,值为gpt
表示GPT
分区。
不同操作系统显示可能略有不同。如果没有Disk label type字段,可以通过System字段判断。System值为Linux表示MBR分区,值为GPT表示GPT分区。
较低版本的fdisk可能不能正常显示GPT分区表,可以通过gdisk -l /dev/db
命令查看分区类型。
lsblk:查看哪个分区待扩容
输入lsblk命令后,可以看到vdb总共有1000G磁盘空间,目前挂载到/data目录下有500G,说明还有500G分区未扩容。
1.安装growpart
显示growpart is /usr/bin/growpart表示growpart已存在
[root@sdw2 ~]# type growpart || sudo yum install -y cloud-utils-growpart
growpart is /usr/bin/growpart
2.执行growpart
LC_ALL=en_US.UTF-8是环境变量配hi,为了兼容中文操作系统的字符编码
命令参数中/dev/vdb和1之间需要空格分隔,1是分区编号
如果单盘有多个连续分区,仅能扩容最后一个分区。例如数据盘
/dev/vdb
有三个分区/dev/vdb1
,/dev/vdb2
,/dev/vdb3
。扩容时,只能扩容最后一个分区/dev/vdb3
,即执行growpart /dev/vdb 3
命令即可完成数据盘的分区扩容。
[root@sdw2 ~]# sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
CHANGED: partition=1 start=2048 old: size=1048573952 end=1048576000 new: size=2097149919 end=2097151967
显示CHANGED之后即成功
df -Th:获取需要扩容的文件系统的类型和挂载目录
Type
值为文件系统类型,Mounted on
值为分区的挂载目录。如下图所示:/dev/vdb1
分区的文件系统类型为ext4,挂载目录为/data
。
如果Filesystem对应的数值不带数字(例如/dev/vdc
),则为裸设备。
扩容命令因文件系统类型不同,根据上一步查询到的结果选择适合的命令。
在上一步中查询到/dev/vdb1
的文件系统是ext4,挂载到/data
目录下。
1.扩容ext4文件系统
[root@sdw2 ~]# sudo resize2fs /dev/vdb1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vdb1 is mounted on /data; on-line resizing required
old_desc_blocks = 63, new_desc_blocks = 125
The filesystem on /dev/vdb1 is now 262143739 blocks long.
2.检查扩容结果
df -h查看磁盘信息,可以看到/data目录下磁盘空间已经扩展成功