AWS ec2 root volume increase: Expanding elastic root volume on aws ubuntu instance not working

user156327 picture user156327 · Feb 26, 2017 · Viewed 12.5k times · Source

I've followed aws doc for expanding elastic root volume and got my root volume size increased from 8 GB to 20 GB, which i confirmed using lsblk.

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 8G 0 part /

But updated size not reflecting in the df -h command, even after i explicitly resize the device using the sudo resize2fs /dev/xvda1 command as my file system type is ext4 which i checked using sudo file -s /dev/xvd* command. sudo resize2fs /dev/xvda1 command giving below output :-

sudo resize2fs /dev/xvda1 resize2fs 1.42.12 (29-Aug-2014) The filesystem is already 2096635 (4k) blocks long. Nothing to do!

Let me know, what i need to do for OS to pickup the size in my volume.

Thanks

Answer

Antonio Gomez Alvarado picture Antonio Gomez Alvarado · Apr 1, 2018

The reason for your output is because you are missing a step.

The resize2fs program does not manipulate the size of partitions. If you wish to enlarge a filesystem, you must make sure you can expand the size of the underlying partition first... https://linux.die.net/man/8/resize2fs

Once you've increased the size of your volume either from using the AWS Console ( UI ) or using the command line aws ec2 modify-volume --volume-id ID_OF_DEVICE --size NEW_SIZE (modify volume command line documentation)

You still need to tell the operating system that you want to allocate more space to the partition ( in this case the root partition /) So the correct sequence to get it work is as shown:

Extend the partition in a partition table to fill available space

(1) sudo growpart /dev/xvda 1 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/expand-linux-partition.html

Expand an ext2, ext3, ext4 file system

(2)sudo resize2fs /dev/xvda1

More on AWS recognizing expanded volume