How to Increase Partition Size on an AWS Instance
Tags: aws, devops, linux, tutorial
Published: 2024-03-05 12:43:01

In cloud computing environments like Amazon Web Services (AWS), it's common to need to increase the size of partitions on instance disks. This might be necessary to accommodate more data, expand available storage space, or simply optimize infrastructure. This guide will provide a step-by-step process on how to increase the partition size on an AWS instance, using a practical example and demonstrating the necessary commands.

_**Before You Begin:** It's recommended to take a snapshot of the disk before starting the partition resizing process. This will help protect your data and allow you to restore the instance to a previous state if needed._

## Step by step

Let's assume we have an AWS instance with a root partition of 30GB that we need to increase to 50GB.

### Check Current Disk Structure

* Connect to the AWS instance using SSH.
* Run `sudo lsblk` to view the structure of the storage devices.

```bash
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme1n1       259:0    0  200G  0 disk /storage
nvme2n1       259:1    0  150G  0 disk 
nvme0n1       259:2    0   50G  0 disk 
├─nvme0n1p1   259:3    0   30G  0 part /
└─nvme0n1p128 259:4    0    1M  0 part 
```

_💡 NOTE: The root partition **(nvme0n1p1)** is only using 30GB of the 50GB disk._

### Check Current System Usage

* Run `df -hT` to check the current usage of the filesystem.

```bash
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs        30G  3.3G   27G  11% /
/dev/nvme1n1   ext4      197G   87G  101G  47% /storage
```

### Resize the File System

* Since the filesystem is `XFS`, execute `sudo xfs_growfs -d /` to resize it.

_💡 NOTE: that / is where it is mounted_
_💡 NOTE: For `ext2/3/4` filesystems, use `sudo resize2fs /dev/nvme0n1p1`._

### Verify the Final Result:

* After resizing the filesystem, run `df -hT` again to verify the final result.

```bash
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs        50G  3.3G   47G   7% /
/dev/nvme1n1   ext4      197G   88G  101G  47% /storage
```

_💡 NOTE: Now, the root partition has been successfully extended to 50GB, utilizing all available space on the disk._

## Observation

### Note on `sudo lsblk` Command Output
It appears that the `lsblk` command is showing two subpartitions for the root disk **(/dev/nvme0n1)**. This happens when there is a GPT partition table and a partition reserved for **BIOS (usually 1MB)**. The root partition **(nvme0n1p1)** has been extended to 50GB and is mounted as **/**. The **nvme0n1p128** partition is reserved for **BIOS** and is not used for storing data. This configuration is common in modern systems using the GPT partition table.

***

## Thanks for reading!

If you have any questions, complaints or tips, you can leave them here in the comments. I will be happy to answer!

😊😊 See you later! 😊😊

***

## Support Me

[Youtube - WalterNascimentoBarroso](https://www.youtube.com/channel/UCXm0xRtDRrdnvkW24WmkBqA)
[Github - WalterNascimentoBarroso](https://github.com/walternascimentobarroso)
[Codepen - WalterNascimentoBarroso](https://codepen.io)