#!/usr/bin/env bash set -euo pipefail if [[ $# -ne 1 ]]; then echo "Pass device to grow as first argument:" echo "grow-last-partition-and-filesystem DEVICE" exit 1 fi DEVICE="$1" PARTITIONDATA="$(parted --script --json --fix "${DEVICE}" print)" PARTNUMBER="$(echo "${PARTITIONDATA}" | jq -r '.disk.partitions | last | .number')" PARTNAME="$(echo "${PARTITIONDATA}" | jq -r '.disk.partitions | last | .name')" echo "Growing partition ${DEVICE}${PARTNUMBER} (${PARTNAME})" echo parted "${DEVICE}" resizepart "${PARTNUMBER}" 100% echo echo "Resizing filesystem" echo resize2fs "${DEVICE}${PARTNUMBER}" echo "Done."