From a892113ff6a6062d49979b47eaa4aba7ad6f6e06 Mon Sep 17 00:00:00 2001 From: Itxaka Date: Fri, 2 Jun 2023 14:28:30 +0200 Subject: [PATCH 1/3] :bug: Copy default values and configs in the oem partition for rpi Signed-off-by: Itxaka --- tools-image/build-arm-image.sh | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/tools-image/build-arm-image.sh b/tools-image/build-arm-image.sh index 5f4bd72..a8b34c2 100755 --- a/tools-image/build-arm-image.sh +++ b/tools-image/build-arm-image.sh @@ -72,6 +72,13 @@ cleanup() { umount $oem || true fi losetup -D || true + + for LOOPS in $(losetup -a | awk -F':' {'print $1'} | awk -F'/' {'print $3'}); do + for LOOPPART in $(ls /dev/mapper/${LOOPS}*| awk -F'/' {'print $4'}); do + dmsetup remove "${LOOPPART}"; + done; + losetup -d /dev/"${LOOPS}"; + done } ensure_dir_structure() { @@ -423,23 +430,30 @@ fi mount $state $WORKDIR/state mount $efi $WORKDIR/efi -mkdir $WORKDIR/persistent -mount $persistent $WORKDIR/persistent -mkdir -p $WORKDIR/persistent/cloud-config -cp -rfv /defaults.yaml $WORKDIR/persistent/cloud-config/01_defaults.yaml +if [ "$disable_lvm" == "false" ]; then + mkdir $WORKDIR/oem + mount $oem_lv $WORKDIR/oem + + cp -rfv /defaults.yaml $WORKDIR/oem/01_defaults.yaml + + # Set a OEM config file if specified + if [ -n "$config" ]; then + echo ">> Copying $config OEM config file" + get_url $config $WORKDIR/oem/99_custom.yaml + fi + + umount $WORKDIR/oem +else + echo "LVM disabled: Not adding default config with default user/pass and custom config file" + echo "Enable LVM to copy those files into /oem" +fi grub2-editenv $WORKDIR/state/grub_oem_env set "default_menu_entry=$menu_entry" # We copy the file we saved earier to the STATE partition cp -rfv "${tmpgrubconfig}" $WORKDIR/state/grubmenu -# Set a OEM config file if specified -if [ -n "$config" ]; then - echo ">> Copying $config OEM config file" - get_url $config $WORKDIR/persistent/cloud-config/99_custom.yaml -fi -umount $WORKDIR/persistent # Copy over content cp -arf $EFI/* $WORKDIR/efi From 1101a59c9ec6927de2c68250e4ddb66b80617cee Mon Sep 17 00:00:00 2001 From: Itxaka Date: Fri, 2 Jun 2023 14:37:17 +0200 Subject: [PATCH 2/3] More cleanup of loop devices and lvm groups Signed-off-by: Itxaka --- tools-image/build-arm-image.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools-image/build-arm-image.sh b/tools-image/build-arm-image.sh index a8b34c2..d7f64da 100755 --- a/tools-image/build-arm-image.sh +++ b/tools-image/build-arm-image.sh @@ -71,13 +71,16 @@ cleanup() { if [ -n "$oem" ]; then umount $oem || true fi - losetup -D || true + + if [ "$disable_lvm" == "false" ]; then + lvremove --yes KairosVG + fi for LOOPS in $(losetup -a | awk -F':' {'print $1'} | awk -F'/' {'print $3'}); do for LOOPPART in $(ls /dev/mapper/${LOOPS}*| awk -F'/' {'print $4'}); do - dmsetup remove "${LOOPPART}"; + dmsetup remove "${LOOPPART}" || true; done; - losetup -d /dev/"${LOOPS}"; + losetup -d /dev/"${LOOPS}" || true; done } From 3c419594b4a229f08bb6f7975e0a0f53f56ac622 Mon Sep 17 00:00:00 2001 From: Itxaka Date: Fri, 2 Jun 2023 15:29:49 +0200 Subject: [PATCH 3/3] Be less agressive on arm cleanup Signed-off-by: Itxaka --- tools-image/build-arm-image.sh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tools-image/build-arm-image.sh b/tools-image/build-arm-image.sh index d7f64da..0188d47 100755 --- a/tools-image/build-arm-image.sh +++ b/tools-image/build-arm-image.sh @@ -75,13 +75,11 @@ cleanup() { if [ "$disable_lvm" == "false" ]; then lvremove --yes KairosVG fi - - for LOOPS in $(losetup -a | awk -F':' {'print $1'} | awk -F'/' {'print $3'}); do - for LOOPPART in $(ls /dev/mapper/${LOOPS}*| awk -F'/' {'print $4'}); do - dmsetup remove "${LOOPPART}" || true; - done; - losetup -d /dev/"${LOOPS}" || true; - done + MAPPER_LOOP=$(basename "$LOOP") + for LOOPPART in $(ls /dev/mapper/"${MAPPER_LOOP}"*| awk -F'/' {'print $4'}); do + dmsetup remove "${LOOPPART}" || true; + done; + losetup -d "${LOOP}" || true; } ensure_dir_structure() {