63182a02e4
This is a slight refactor I found useful when debugging. The udevadmin info query will be visbile in the output of "set -x" which helps, and is the logs/journal. We can also reduce some calls by keeping the value and just grepping with a herefile. This also does some error checking and bails out if it does not see what it needs to continue. Change-Id: I39c4d262f9c5ce53f6b83d95b1363a74834cf2c8
37 lines
869 B
Bash
Executable File
37 lines
869 B
Bash
Executable File
#!/bin/bash
|
|
# dib-lint: disable=dibdebugtrace
|
|
|
|
set -exu
|
|
set -o pipefail
|
|
|
|
root_dev=$(df -P / | tail -n 1 | awk '/.*/ { print $1 }')
|
|
|
|
if [ -z "${root_dev}" ]; then
|
|
echo "*** Root device not found?"
|
|
exit 1
|
|
fi
|
|
|
|
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
|
|
# Error code 1 means no change
|
|
if [ "$?" -le 1 ]; then
|
|
# always return true because this might not work if were are non ext4
|
|
resize2fs $root_dev || true
|
|
fi
|