35 lines
1.1 KiB
Bash
Executable File
35 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# shellcheck disable=SC2039
|
|
set -e
|
|
|
|
DEVICE_CHILD="$(findfs LABEL="hassos-data")"
|
|
DEVICE_ROOT="/dev/$(lsblk -no pkname "${DEVICE_CHILD}")"
|
|
PART_NUM="${DEVICE_CHILD: -1}"
|
|
|
|
# Need resize
|
|
UNUSED=$(sfdisk -Fq "${DEVICE_ROOT}" | cut -d " " -f 3 | tail -1)
|
|
if [ -z "${UNUSED}" ] || [ "${UNUSED}" -le "2048" ]; then
|
|
echo "[INFO] No resize of data partition needed"
|
|
exit 0
|
|
fi
|
|
|
|
if sfdisk -dq "${DEVICE_ROOT}" | grep -q 'label: gpt'; then
|
|
# Resize & Reload partition
|
|
echo "[INFO] Update hassos-data partition ${PART_NUM}"
|
|
sgdisk -e "${DEVICE_ROOT}"
|
|
sgdisk -d "${PART_NUM}" -n "${PART_NUM}:0:0" -c "${PART_NUM}:hassos-data" -t "${PART_NUM}:0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "${PART_NUM}:a52a4597-fa3a-4851-aefd-2fbe9f849079" "${DEVICE_ROOT}"
|
|
sgdisk -v "${DEVICE_ROOT}"
|
|
else
|
|
echo ", +" | sfdisk -N "${PART_NUM}" "${DEVICE_ROOT}" --force
|
|
sfdisk -V "${DEVICE_ROOT}"
|
|
fi
|
|
|
|
partx -u "${DEVICE_ROOT}"
|
|
|
|
# Resize filesystem
|
|
echo "[INFO] Resize hassos-data filesystem"
|
|
e2fsck -y "${DEVICE_CHILD}"
|
|
resize2fs -f "${DEVICE_CHILD}"
|
|
|
|
echo "[INFO] Finish hassos-data resizing"
|