Skip to content

Commit 6aa8c5d

Browse files
pcnctomashley
andauthored
fix: correctly select root disk partition (#1244)
* fix: correctly select root disk partition * chore: check extracted partition value is a number --------- Co-authored-by: Tom Ashley <[email protected]>
1 parent 32ccff5 commit 6aa8c5d

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

ansible/files/admin_api_scripts/grow_fs.sh

+21-4
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,32 @@ if pgrep resizefs; then
99
exit 1
1010
fi
1111

12+
# Parses the output of lsblk to get the root partition number
13+
# Example output:
14+
# NAME MOUNTPOINT
15+
# nvme0n1
16+
# ├─nvme0n1p1 /boot
17+
# └─nvme0n1p3 /
18+
# nvme1n1 /data
19+
#
20+
# Resulting in:
21+
# └─nvme0n1p3 / -> nvme0n1p3 -> 3
22+
ROOT_PARTITION_NUMBER=$(lsblk -no NAME,MOUNTPOINT | grep ' /$' | awk '{print $1;}' | sed 's/.*nvme[0-9]n[0-9]p//g')
23+
24+
if ! [[ "$ROOT_PARTITION_NUMBER" =~ ^[0-9]+$ ]]; then
25+
echo "Error: ROOT_PARTITION_NUMBER is not a valid number: $ROOT_PARTITION_NUMBER"
26+
exit 1
27+
fi
28+
1229
if [ -b /dev/nvme1n1 ] ; then
1330
if [[ "${VOLUME_TYPE}" == "data" ]]; then
1431
resize2fs /dev/nvme1n1
1532

1633
elif [[ "${VOLUME_TYPE}" == "root" ]] ; then
1734
PLACEHOLDER_FL=/home/ubuntu/50M_PLACEHOLDER
1835
rm -f "${PLACEHOLDER_FL}" || true
19-
growpart /dev/nvme0n1 2
20-
resize2fs /dev/nvme0n1p2
36+
growpart /dev/nvme0n1 "${ROOT_PARTITION_NUMBER}"
37+
resize2fs "/dev/nvme0n1p${ROOT_PARTITION_NUMBER}"
2138
if [[ ! -f "${PLACEHOLDER_FL}" ]] ; then
2239
fallocate -l50M "${PLACEHOLDER_FL}"
2340
fi
@@ -26,7 +43,7 @@ if [ -b /dev/nvme1n1 ] ; then
2643
exit 1
2744
fi
2845
else
29-
growpart /dev/nvme0n1 2
30-
resize2fs /dev/nvme0n1p2
46+
growpart /dev/nvme0n1 "${ROOT_PARTITION_NUMBER}"
47+
resize2fs "/dev/nvme0n1p${ROOT_PARTITION_NUMBER}"
3148
fi
3249
echo "Done resizing disk"

0 commit comments

Comments
 (0)