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
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