36 lines
761 B
Bash
36 lines
761 B
Bash
#!/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
|