Over the past couple of months I have found myself several times having to look up how to expand a Linux-based AWS EBS volume.
This article showcases a simple step-by-step guide to performing this action.
Prerequisites: You have increased the subject volume using the AWS console or AWS CLI, and have installed the
cloud-guest-utils (Debian/Ubuntu) or
cloud-utils-growpart (CentOS) package on the EC2 instance.
With the volume expanded within AWS, we can see the 100G of unallocated space 😢.
Let’s go about increasing the
xvda1 partition to fill the full drive.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 120G 0 disk └─xvda1 202:1 0 20G 0 part /
growpart command, we are able to specify the device and partition number we wish to expand.
$ growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=41940959 end=41943007 new: size=251656159,end=251658207
We can now see that the partition has been expanded to fill the drive.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 120G 0 disk └─xvda1 202:1 0 120G 0 part /
However, the filesystem is still not aware of this newly available space.
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 2.6G 17G 14% /
We can now use the
resize2fs command to update the filesystem, making it aware of this space.
$ resize2fs /dev/xvda1 resize2fs 1.43.4 (31-Jan-2017) Filesystem at /dev/xvda1 is mounted on /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 15 The filesystem on /dev/xvda1 is now 31457019 (4k) blocks long.
Finally, when we now check the disk usage, we can see the extra 100G available 🎉!
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 119G 2.6G 111G 3% /