mirror of
https://github.com/home-assistant/operating-system.git
synced 2026-08-17 02:36:54 +01:00
* Harmonize systemd unit and helper-script prefixes to haos (#4725) Rename the hassos-prefixed systemd units and their ExecStart helper binaries to a consistent haos- prefix, and update all in-repo references. Normalize the affected unit Description= strings as well. Units renamed in this commit are not referred externally (except for syslog identifiers used in Supervisor Host logs), so no other changes should be needed. * Rename hassos-config to haos-config with alias Rename the hassos-config.service unit and its binary to the haos- prefix. This unit is restarted by Supervisor in os/manager.py, so add Alias= to avoid the need to try both variants there. * Rename hassos-cli binary to haos-cli * Change HassOS to HAOS in unit descriptions and comments * Rename hassos->haos in Buildroot makefiles, scripts and configs * Rename bootargs_hassos to bootargs_haos in U-Boot scripts * Rename external Buildroot tree HASSOS to HAOS Set external.desc name to HAOS and rename all BR2_EXTERNAL_HASSOS_PATH references to BR2_EXTERNAL_HAOS_PATH accordingly. * Rename hassos.conf service drop-ins to haos.conf * Rename hassos.config kernel fragment to haos.config * Rename hassos-blobs repo in package/bluetooth-rtl8723 The repo was renamed somewhere in the past and it now relies on an internal GitHub redirect. Change the URL to match the new repo name.
50 lines
2.1 KiB
Bash
Executable File
50 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# ==============================================================================
|
|
# Home Assistant OS data partition migration script
|
|
# ==============================================================================
|
|
set -e
|
|
|
|
# Rely on systemd-udev symlinks to find current data partition by fs label
|
|
OLD_DEVICE_CHILD="$(readlink -f "/dev/disk/by-label/hassos-data")"
|
|
|
|
# We cannot rely on systemd Wants/Requires since this is evaluated before
|
|
# ConditionPathExists, and would make us wait for an external device on
|
|
# every boot.
|
|
# Instead, just start the unit here, which makes sure a device with the
|
|
# partlabel "hassos-data-external" is present.
|
|
if ! systemctl start "dev-disk-by\\x2dpartlabel-hassos\\x2ddata\\x2dexternal.device"; then
|
|
echo "[ERROR] External data device ${NEW_DEVICE} not found!"
|
|
exit 1
|
|
fi
|
|
|
|
# Rely on systemd-udev symlinks to find external data partition by partlabel
|
|
NEW_DEVICE_CHILD="$(readlink -f "/dev/disk/by-partlabel/hassos-data-external")"
|
|
|
|
# Check if target device is the current device
|
|
if [ "${NEW_DEVICE_CHILD}" = "${OLD_DEVICE_CHILD}" ]; then
|
|
echo "[ERROR] Home Assitant OS is already using this external data device!"
|
|
exit 1
|
|
fi
|
|
|
|
NEW_DEVICE_PART_SIZE=$(cat "/sys/class/block/$(basename "${NEW_DEVICE_CHILD}")/size")
|
|
OLD_DEVICE_PART_SIZE=$(cat "/sys/class/block/$(basename "${OLD_DEVICE_CHILD}")/size")
|
|
if [ "${NEW_DEVICE_PART_SIZE}" -lt "${OLD_DEVICE_PART_SIZE}" ]; then
|
|
echo "[ERROR] Target device too small!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[INFO] Moving data from ${OLD_DEVICE_CHILD} to ${NEW_DEVICE_CHILD}"
|
|
if ! e2image -ra -p "${OLD_DEVICE_CHILD}" "${NEW_DEVICE_CHILD}"; then
|
|
echo "[ERROR] Copying data partition to external device failed!"
|
|
# Rename partition to make sure HAOS does not try to mount a failed copy attempt.
|
|
e2label "${NEW_DEVICE_CHILD}" hassos-data-fail || true
|
|
exit 1
|
|
fi
|
|
|
|
# At this point we have two partition with the same fs label. Make sure
|
|
# to rename the internal partition so we won't mount it anymore.
|
|
echo "[INFO] Rename old hassos-data partition ${OLD_DEVICE_CHILD}"
|
|
e2label "${OLD_DEVICE_CHILD}" hassos-data-old
|
|
|
|
echo "[INFO] Data move has been completed successfully"
|