diff --git a/elements/growroot/static/usr/local/sbin/growroot b/elements/growroot/static/usr/local/sbin/growroot index 7600a9db6..ef818c014 100755 --- a/elements/growroot/static/usr/local/sbin/growroot +++ b/elements/growroot/static/usr/local/sbin/growroot @@ -6,10 +6,26 @@ set -o pipefail root_dev=$(df -P / | tail -n 1 | awk '/.*/ { print $1 }') -disk=$(find /sys/dev/block -name $(udevadm info --query=all --name $root_dev | grep ID_PART_ENTRY_DISK | cut -d= -f2)) -disk="/dev/$(source ${disk}/uevent; echo $DEVNAME)" +if [ -z "${root_dev}" ]; then + echo "*** Root device not found?" + exit 1 +fi -part_no=$(udevadm info --query=all --name $root_dev | grep ID_PART_ENTRY_NUMBER | cut -d= -f2) +udev_root=$(udevadm info --query=all --name $root_dev) + +part=$(grep ID_PART_ENTRY_DISK <<< "${udev_root}" | cut -d= -f2) +if [ -z "${part}" ]; then + echo "*** Root partition not found!" + exit 1 +fi +part_no=$(grep ID_PART_ENTRY_NUMBER <<< "${udev_root}" | cut -d= -f2) +if [ -z "${part_no}" ]; then + echo "*** Root partition number not found!" + exit 1 +fi + +disk=$(find /sys/dev/block -name ${part}) +disk="/dev/$(source ${disk}/uevent; echo $DEVNAME)" set +e growpart $disk $part_no