Fix growroot device detection
We are incorrectly detecting major/minor device numbers for the growroot rootfs. This can also be simplified by querying udev for partition information. Change-Id: I68059bf11f2563872f6b4d0e23fa09a15de980a8
This commit is contained in:
parent
3a110bf96f
commit
858fc3db30
@ -5,18 +5,12 @@ set -exu
|
|||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
root_dev=$(df -P / | tail -n 1 | awk '/.*/ { print $1 }')
|
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,
|
disk=$(find /sys/dev/block -name $(udevadm info --query=all --name $root_dev | grep ID_PART_ENTRY_DISK | cut -d= -f2))
|
||||||
# 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)"
|
disk="/dev/$(source ${disk}/uevent; echo $DEVNAME)"
|
||||||
|
|
||||||
|
part_no=$(udevadm info --query=all --name $root_dev | grep ID_PART_ENTRY_NUMBER | cut -d= -f2)
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
growpart $disk $part_no
|
growpart $disk $part_no
|
||||||
# Error code 1 means no change
|
# Error code 1 means no change
|
||||||
|
Loading…
Reference in New Issue
Block a user