16fc1f9012
We can resize the rootfs without the initrd based approach. Create a growroot element which performs rootfs resizing as part of system init. Change-Id: Ibeb846b0170d141fb72323a441d14b65b93ae0a1
27 lines
823 B
Bash
Executable File
27 lines
823 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 }')
|
|
minor_dev_no=$(stat --printf="%T" $root_dev)
|
|
major_dev_no=$(stat --printf="%t" $root_dev)
|
|
|
|
# The last digit of our minor number should, on a partitioned block device,
|
|
# be the partition number of the device (starting at 1). We need to convert
|
|
# this value to decimal from hex for use in growpart.
|
|
part_no=$(echo $minor_dev_no | tail -c 2)
|
|
part_no=$((16#$part_no))
|
|
|
|
disk=$(find /sys/dev/block -name "$((16#$major_dev_no)):${minor_dev_no::-1}0")
|
|
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
|