diff --git a/features/_usi/file.include/etc/systemd/system/dbgimport.service b/features/_usi/file.include/etc/systemd/system/dbgimport.service new file mode 100644 index 00000000..2b84b937 --- /dev/null +++ b/features/_usi/file.include/etc/systemd/system/dbgimport.service @@ -0,0 +1,13 @@ +[Unit] +Description=Import debug container image +ConditionPathExists=|/opt/dbgimage/debug.tar +ConditionFirstBoot=yes +After=containerd.service +Requires=containerd.service + +[Service] +ExecStart=/bin/sh -c 'ctr image import --base-name "$(cat /opt/dbgimage/debug.tar.name)" /opt/dbgimage/debug.tar && rm -f /opt/dbgimage/debug.tar && rm -f /opt/dbgimage/debug.tar.name && rm -f /opt/dbgimage/image' +Type=oneshot + +[Install] +WantedBy=multi-user.target diff --git a/features/_usi/initrd.include/usr/bin/persist b/features/_usi/initrd.include/usr/bin/persist index ad950446..1f00186c 100755 --- a/features/_usi/initrd.include/usr/bin/persist +++ b/features/_usi/initrd.include/usr/bin/persist @@ -94,6 +94,20 @@ if [ "$ENABLE_HUGEPAGE_SETUP" = "true" ]; then objcopy --add-section .cmdline=/tmp/cmdlinef --change-section-vma .cmdline=$(printf 0x%x $offs) $addon "$addon_dir/hugepages.addon.efi" fi +# debug container +DBG_CONTAINER_IMPORT="/sysroot/opt/dbgimage" +DBG_CONTAINER_IMAGE_DUMP="debug.tar" +DBG_CONTAINER_FILE="/sysroot/opt/dbgimage/image" + +mkdir -p "$DBG_CONTAINER_IMPORT" +if [ -f "$DBG_CONTAINER_FILE" ]; then + oras backup --output "$DBG_CONTAINER_IMPORT/$DBG_CONTAINER_IMAGE_DUMP" "$(cat "$DBG_CONTAINER_FILE")" + cat "$DBG_CONTAINER_FILE" | cut -d: -f 1 > "$DBG_CONTAINER_IMPORT/$DBG_CONTAINER_IMAGE_DUMP.name" +else + echo "no container image file provided, skipping..." +fi + + # Network config generation if [[ -x /sysroot/opt/persist/network_up.sh ]]; then chroot /sysroot /opt/persist/network_up.sh