#!/bin/sh set -e MOUNT_LINE=$(cat /etc/mtab | grep ' / ' | grep -v '^rootfs') DEVICE=$(echo "$MOUNT_LINE" | cut -d' ' -f1) FSTYPE=$(echo "$MOUNT_LINE" | cut -d' ' -f3) GROWPART=$(which growpart) if [ $? -ne 0 ]; then echo "growpart command is missing" exit 1 fi if [ $(grep mapper /etc/fstab |grep ' / ' |wc -l) -eq 0 ]; then DEVICE=$(readlink -f "$DEVICE") DISK=$(echo "$DEVICE" | sed 's/.$//') PARTITION=$(echo "$DEVICE" | sed "s|^$DISK||") LVM="no" fi if [ "${LVM}" != "no" ]; then if [ -f /etc/debian_version ]; then DEVICE=$(mount | grep ' / ' | grep -v '^rootfs'|cut -d' ' -f1) fi PVRESIZE=$(which pvresize) LVEXTEND=$(which lvextend) DISK=$(pvdisplay |grep "PV Name"|awk '{print $3}'|sed 's/.$//') PARTITION=$(pvdisplay |grep "PV Name"|awk '{print $3}'| sed "s|^${DISK}||") PV=$(pvdisplay |grep "PV Name"|awk '{print $3}') LV=$(lvdisplay ${DEVICE} |grep "LV Path"|awk '{print $3}') fi if [ -n "$DEBUG" ]; then echo DEVICE: ${DEVICE} echo FSTYPE: ${FSTYPE} echo DISK: ${DISK} echo PARTITION: ${PARTITION} fi ${GROWPART} ${DISK} ${PARTITION} if [ "${LVM}" != "no" ]; then ${PVRESIZE} ${PV} ${LVEXTEND} -l +100%FREE ${LV} fi case "${FSTYPE}" in ext2|ext3|ext4) resize2fs ${DEVICE} ;; xfs) xfs_growfs / ;; esac