Linux Resize GPT/ext4 Partition

I needed to resize my RAID array to test the speed of AES encryption with LUKS on the same controller but I had partitioned the array to use the entire thing.

For the entire guide /dev/sda will be my RAID array and /dev/sda1 will be my only partition.
I strongly recommend you backup your data first!

  1. Unmount the partition
    umount /dev/sda1

  2. Check the file system for errors.
    e2fsck -f /dev/sda1

  3. Resize the file system (replace 500G with your new partition size).
    resize2fs /dev/sda1 500G

  4. Delete the old partition and create a new one with the desired size.
    gdisk /dev/sda

    1
    2
    3
    4
    5
    6
    7
    8
    9
    p (show the partition table, you should write down the starting sector)
    d (delete partition)
    n (new)
    enter (partition number, should be 1)
    2048 (starting sector from earlier)
    500G (new partition size, replace it with the desired size)
    enter (partition type, 8300 is fine)
    w (write the new partition table)
    Y (yes I'm sure)
  5. Fix the file system. This time with no size at the end.
    resize2fs /dev/sda1

  6. Check the file system for errors just to be safe.
    e2fsck -f /dev/sda1

  7. Mount the partition and make sure your files are still there.

Now you can create new partitions using gdisk.