How to increase AWS EBS NVME size
Prerequesities:
- You found the partition you want to extend and there is just one partition on this particular NVME:
/dev/nvme0n1p1
but not/dev/nvme0n1p2
. Note the mount location:/
df
Filesystem 1K-blocks Used Available Use% Mounted on
...
/dev/nvme0n1p1 _________ ________ ________ 99% /
- You run
lsblk
and it confirms a single partition under the volumenvme0n1
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:2 0 400G 0 disk
└─nvme0n1p1 259:3 0 400G 0 part /
Than you first extend your volume through AWS console and then run next code block.
Single place script:
# /dev/nvme0n1 - volume name, 1 - partition index
sudo growpart /dev/nvme0n1 1
# block for xfs
# / - mount from above. Command will safely fail for non xfs
sudo xfs_growfs -d /
# block for ext4
# /dev/nvme0n1p1 - partition you would like to extend
sudo resize2fs /dev/nvme0n1p1
Assembled from this resource: Extend a Linux file system after resizing a volume
resize2fs
didn't work for me, so I used this instead:
xfs_growfs /dev/nvme0n1p1
resize2fs
gave me this error when I used it:
[root@ip-1-2-3-4 ~]# resize2fs /dev/nvme0n1p1
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/nvme0n1p1
Couldn't find valid filesystem superblock.
I noticed the disk was using xfs
under /etc/fstab
:
UUID=4cbf4a19-1fba-4027-bf92-xxxxxxxxxxxx / xfs defaults,noatime 1 1
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
growpart [OPTIONS] DISK PARTITION-NUMBER
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 16G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
So to grow the partition, we use the diskname nvme0n1
(see disk
under TYPE
) and desired partition is 1
sudo growpart /dev/nvme0n1 1
And then to extend the fs -
resize2fs device [ size ]
(device refers to the location of the target filesystem)
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 470M 52K 470M 1% /dev
tmpfs 480M 0 480M 0% /dev/shm
/dev/nvme0n1p1 7.8G 7.7G 3.1M 100% /
So to extend the fs, we use the device name /dev/nvme01np1
:
sudo resize2fs /dev/nvme0n1p1
Voila!
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 470M 52K 470M 1% /dev
tmpfs 480M 0 480M 0% /dev/shm
/dev/nvme0n1p1 16G 7.7G 7.9G 50% /