Files
operating-system/buildroot-external/rootfs-overlay/usr/libexec/hassos-expand
Pascal Vizeli b3530d1ce1 Allow easy move data partition (#651)
* Allow easy move data partition

* Cleanup handling systemd

* Improve handling

* fix pipeline

* pipeline

* fix shell handling

* fix scripts

* Add bin folder

* fix lint

* Fix service handling

* Fix loading

* hide output

* Fix handling
2020-05-06 00:00:28 +02:00

42 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
# shellcheck disable=SC2039
# ==============================================================================
# HassOS partition expander
# ==============================================================================
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
echo "[INFO] Update hassos-data partition ${PART_NUM}"
if sfdisk -dq "${DEVICE_ROOT}" | grep -q 'label: gpt'; then
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"