#!/usr/bin/env bash set -euo pipefail DISK="${DISK:-/dev/sda}" PARTITION_NUMBER="${PARTITION_NUMBER:-3}" PARTITION="${PARTITION:-${DISK}${PARTITION_NUMBER}}" LV_PATH="${LV_PATH:-/dev/ubuntu-vg/ubuntu-lv}" if [ "$(id -u)" -ne 0 ]; then echo "This script must run as root. Use: sudo $0" >&2 exit 1 fi echo "Before:" lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS "$DISK" df -h / pvs vgs lvs echo "Growing partition ${PARTITION} to fill ${DISK}..." growpart "$DISK" "$PARTITION_NUMBER" echo "Resizing LVM physical volume ${PARTITION}..." pvresize "$PARTITION" echo "Extending ${LV_PATH} to all free VG space and resizing filesystem..." lvextend -l +100%FREE -r "$LV_PATH" echo "After:" lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS "$DISK" df -h / pvs vgs lvs