30 lines
952 B
Bash
Executable File
30 lines
952 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -xeu
|
|
|
|
if [[ ${EUID} -ne 0 || ${UID} -ne 0 ]]; then
|
|
>&2 echo "$0: error: please run this script as root"
|
|
exit 1
|
|
fi
|
|
|
|
ROOT_DEVICE=$(mount | grep 'on / ' | awk '{print $1}')
|
|
ROOT_PARTITION="${ROOT_DEVICE: -1}"
|
|
if [[ "${ROOT_DEVICE}" =~ "mmcblk" || "${ROOT_DEVICE}" =~ "nvme" ]]; then
|
|
PARENT_ROOT_DEVICE=$(echo "${ROOT_DEVICE}" | rev | sed -r 's/^.{2}//' | rev)
|
|
elif [[ "${ROOT_DEVICE}" =~ "vd" || "${ROOT_DEVICE}" =~ "sd" ]]; then
|
|
PARENT_ROOT_DEVICE=$(echo "${ROOT_DEVICE}" | rev | sed -r 's/^.{1}//' | rev)
|
|
else
|
|
>&2 echo "$0: device type unsupported"
|
|
exit 1
|
|
fi
|
|
|
|
growpart "${PARENT_ROOT_DEVICE}" "${ROOT_PARTITION}" && GP_OK='true'
|
|
resize2fs "${ROOT_DEVICE}" && RESIZE_OK='true'
|
|
|
|
if [[ "${GP_OK}" == 'true' && "${RESIZE_OK}" == 'true' ]]; then
|
|
systemctl disable expand-rootfs.service
|
|
rm /etc/systemd/system/expand-rootfs.service
|
|
systemctl daemon-reload
|
|
rm /usr/local/bin/expand-rootfs.sh
|
|
fi
|