前言
提供如何使用growpart或者xfsprogs等工具,完成Linux系统盘的扩展分区和文件系统的操作指导
控制台扩容操作
阿里云
实例->选择服务器->云盘->选择需要扩容的云盘,更多->云盘扩容->填写扩容后的容量->确认扩容
AWS
实例->选择服务器->选择需要扩容的设备->操作->修改卷->填写大小->修改
安装扩容格式化工具
Alibaba Cloud Linux 2、CentOS 7
yum install cloud-utils-growpart xfsprogs -y
Ubuntu 14、Ubuntu 16、Ubuntu 18、Debian 9
apt install cloud-guest-utils xfsprogs -y
说明
运行uname -a
命令查看实例的内核版本:
#uname -a
Linux Laifu-Blog 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- 本文操作需内核版本大于等于3.6.0
- 本文的操作步骤适用于以下分区和文件系统格式的云盘
- 分区格式支持MBR、GPT
- 文件系统支持ext*、xfs、btrfs
扩展分区和文件系统
1、运行以下命令查看现有云盘大小
fdisk -l
以下返回云盘(/dev/vda)容量是100 GiB
[root@Laifu-Blog ~]#fdisk -l
磁盘 /dev/vda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ac89
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 83886046 41941999+ 83 Linux
2、运行以下命令查看云盘分区大小和文件系统类型
df -hT
以下返回分区(/dev/vda1)容量是40GiB,文件系统类型为ext4
[root@Laifu-Blog ~]#df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 989M 0 989M 0% /dev
tmpfs tmpfs 1000M 24K 1000M 1% /dev/shm
tmpfs tmpfs 1000M 632K 999M 1% /run
tmpfs tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/vda1 ext4 40G 4.9G 33G 13% /
tmpfs tmpfs 200M 0 200M 0% /run/user/0
overlay overlay 40G 4.9G 33G 13% /var/lib/docker/overlay2/d2f7ad75a80359936a8f222dcde8192e02545d0725c5f25c90deba29be546dc3/merged
3、运行以下命令扩容分区
growpart <DeviceName> <PartionNumber>
说明:
<DeviceName>是系统盘的设备名称,<PartionNumber>是分区编号,
且设备名称和分区编号之间需要空格分隔
以下示例命令表示扩容系统盘的第一个分区
[root@Laifu-Blog ~]# growpart /dev/vda 1
CHANGED: partition=1 start=2048 old: size=83883999 end=83886047 new: size=209713119 end=209715167
扩展文件系统
请先使用df -Th
命令查看文件系统类型,然后根据不同的文件系统类型运行以下命令扩展文件系统
ext*文件系统(例如ext3和ext4)
运行以下命令扩展文件系统
resize2fs <PartitionName>
示例命令表示为扩容系统盘的 /dev/vda1 分区的文件系统
[root@Laifu-Blog ~]# resize2fs /dev/vda1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 7
The filesystem on /dev/vda1 is now 26214139 blocks long.
提示:若命令不存在 # yum install gdisk -y
xfs文件系统
运行以下命令扩展文件系统
xfs_growfs <mountpoint>
示例命令表示为扩容系统盘的 /dev/vda1分区的文件系统
其中根目录(/)为 /dev/vda1 的挂载点
[root@Laifu-Blog ~]# xfs_growfs /
meta-data=/dev/vda1 isize=512 agcount=13, agsize=1310656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=15728379, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 15728379 to 20971259
说明
不同版本的xfs_growfs命令可能存在差异,可以运行xfs_growfs --help
查看对应的命令
btrfs文件系统
运行以下命令扩展文件系统
btrfs filesystem resize max <mountpoint>
示例命令表示为扩容系统盘的 /dev/vda1分区的文件系统
其中根目录(/)为 /dev/vda1的挂载点。
[root@Laifu-Blog ~]# btrfs filesystem resize max /
检查云盘扩容结果
运行以下命令检查云盘扩容结果
df -h
以下示例返回分区(/dev/vda1)容量是100 GiB,表示已经成功扩容
[root@Laifu-Blog ~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 989M 0 989M 0% /dev
tmpfs 1000M 24K 1000M 1% /dev/shm
tmpfs 1000M 632K 999M 1% /run
tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/vda1 99G 4.9G 33G 4% /
tmpfs 200M 0 200M 0% /run/user/0
overlay 40G 4.9G 33G 13% /var/lib/docker/overlay2/d2f7ad75a80359936a8f222dcde8192e02545d0725c5f25c90deba29be546dc3/merged
扩展
[root@Laifu-Blog ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 197.8M 0 rom
vda 253:0 0 100G 0 disk
└─vda1 253:1 0 40G 0 part /
说明:
vda设备显示100G,vda1分区40G,说明可以扩充60G到分区大小
小结
根据经验,默认设备名的情况下,ext4格式扩容:
# 阿里
lsblk
growpart /dev/vdb 1
resize2fs /dev/vdb1
df -h
# AWS
lsblk
growpart /dev/nvme1n1 1
resize2fs /dev/nvme1n1p1
df -h