From 39e1107a77978c1000b342a7e980fde396c563fe Mon Sep 17 00:00:00 2001 From: oxmc7769 Date: Thu, 24 Apr 2025 01:40:34 -0700 Subject: [PATCH] Fixes? --- build.sh | 12 +- export-image/mk-img.sh | 79 ------ export-image/prerun-old.sh | 10 - export-image/prerun.sh | 251 +++--------------- export-iso/00-allow-rerun/00-run.sh | 11 + export-iso/01-user-rename/00-packages | 1 + export-iso/01-user-rename/01-run.sh | 9 + export-iso/02-set-sources/01-run.sh | 10 + export-iso/03-network/01-run.sh | 3 + export-iso/03-network/files/resolv.conf | 1 + export-iso/04-set-partuuid/00-run.sh | 15 ++ export-iso/05-finalise/01-run.sh | 141 ++++++++++ .../mk-iso.sh => export-iso/prerun.sh | 0 13 files changed, 242 insertions(+), 301 deletions(-) delete mode 100755 export-image/mk-img.sh delete mode 100755 export-image/prerun-old.sh mode change 100644 => 100755 export-image/prerun.sh create mode 100755 export-iso/00-allow-rerun/00-run.sh create mode 100644 export-iso/01-user-rename/00-packages create mode 100755 export-iso/01-user-rename/01-run.sh create mode 100755 export-iso/02-set-sources/01-run.sh create mode 100755 export-iso/03-network/01-run.sh create mode 100644 export-iso/03-network/files/resolv.conf create mode 100755 export-iso/04-set-partuuid/00-run.sh create mode 100755 export-iso/05-finalise/01-run.sh rename export-image/mk-iso.sh => export-iso/prerun.sh (100%) diff --git a/build.sh b/build.sh index 3b5cb65..e8bd978 100755 --- a/build.sh +++ b/build.sh @@ -447,7 +447,17 @@ for EXPORT_DIR in ${EXPORT_DIRS}; do # shellcheck source=/dev/null source "${EXPORT_DIR}/EXPORT_IMAGE" EXPORT_ROOTFS_DIR=${WORK_DIR}/$(basename "${EXPORT_DIR}")/rootfs - run_stage + if [ -e "${EXPORT_DIR}/EXPORT_ISO" ]; then + # shellcheck source=/dev/null + source "${EXPORT_DIR}/EXPORT_ISO" + STAGE_DIR="${BASE_DIR}/export-iso" + run_stage + elif [ -e "${EXPORT_DIR}/EXPORT_IMAGE" ]; then + # shellcheck source=/dev/null + source "${EXPORT_DIR}/EXPORT_IMAGE" + STAGE_DIR="${BASE_DIR}/export-image" + run_stage + fi if [ "${USE_QEMU}" != "1" ]; then if [ -e "${EXPORT_DIR}/EXPORT_NOOBS" ]; then # shellcheck source=/dev/null diff --git a/export-image/mk-img.sh b/export-image/mk-img.sh deleted file mode 100755 index d562500..0000000 --- a/export-image/mk-img.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -e - -IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" - -unmount_image "${IMG_FILE}" - -rm -f "${IMG_FILE}" - -rm -rf "${ROOTFS_DIR}" -mkdir -p "${ROOTFS_DIR}" - -BOOT_SIZE="$((512 * 1024 * 1024))" -ROOT_SIZE=$(du -x --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot/firmware --block-size=1 | cut -f 1) - -# All partition sizes and starts will be aligned to this size -ALIGN="$((4 * 1024 * 1024))" -ROOT_MARGIN="$(echo "($ROOT_SIZE * 0.2 + 400 * 1024 * 1024) / 1" | bc)" - -# Recovery partition fixed size: 256MB -RECOVERY_SIZE="$((256 * 1024 * 1024))" - -BOOT_PART_START=$((ALIGN)) -BOOT_PART_SIZE=$(((BOOT_SIZE + ALIGN - 1) / ALIGN * ALIGN)) -ROOT_PART_START=$((BOOT_PART_START + BOOT_PART_SIZE)) -ROOT_PART_SIZE=$(((ROOT_SIZE + ROOT_MARGIN + ALIGN - 1) / ALIGN * ALIGN)) -RECOVERY_PART_START=$((ROOT_PART_START + ROOT_PART_SIZE)) -RECOVERY_PART_SIZE=$(((RECOVERY_SIZE + ALIGN - 1) / ALIGN * ALIGN)) -IMG_SIZE=$((RECOVERY_PART_START + RECOVERY_PART_SIZE)) - -truncate -s "${IMG_SIZE}" "${IMG_FILE}" - -parted --script "${IMG_FILE}" mklabel msdos -parted --script "${IMG_FILE}" unit B mkpart primary fat32 "${BOOT_PART_START}" "$((BOOT_PART_START + BOOT_PART_SIZE - 1))" -parted --script "${IMG_FILE}" unit B mkpart primary ext4 "${ROOT_PART_START}" "$((ROOT_PART_START + ROOT_PART_SIZE - 1))" -parted --script "${IMG_FILE}" unit B mkpart primary ext4 "${RECOVERY_PART_START}" "$((RECOVERY_PART_START + RECOVERY_PART_SIZE - 1))" - -echo "Creating loop device..." -cnt=0 -until ensure_next_loopdev && LOOP_DEV="$(losetup --show --find --partscan "$IMG_FILE")"; do - if [ $cnt -lt 5 ]; then - cnt=$((cnt + 1)) - echo "Error in losetup. Retrying..." - sleep 5 - else - echo "ERROR: losetup failed; exiting" - exit 1 - fi -done - -ensure_loopdev_partitions "$LOOP_DEV" -BOOT_DEV="${LOOP_DEV}p1" -ROOT_DEV="${LOOP_DEV}p2" -RECOVERY_DEV="${LOOP_DEV}p3" - -ROOT_FEATURES="^huge_file" -for FEATURE in 64bit; do - if grep -q "$FEATURE" /etc/mke2fs.conf; then - ROOT_FEATURES="^$FEATURE,$ROOT_FEATURES" - fi -done - -if [ "$BOOT_SIZE" -lt 134742016 ]; then - FAT_SIZE=16 -else - FAT_SIZE=32 -fi - -mkdosfs -n bootfs -F "$FAT_SIZE" -s 4 -v "$BOOT_DEV" > /dev/null -mkfs.ext4 -L rootfs -O "$ROOT_FEATURES" "$ROOT_DEV" > /dev/null -mkfs.ext4 -L recovery -O "$ROOT_FEATURES" "$RECOVERY_DEV" > /dev/null - -mount -v "$ROOT_DEV" "${ROOTFS_DIR}" -t ext4 -mkdir -p "${ROOTFS_DIR}/boot/firmware" -mount -v "$BOOT_DEV" "${ROOTFS_DIR}/boot/firmware" -t vfat - -rsync -aHAXx --exclude /var/cache/apt/archives --exclude /boot/firmware "${EXPORT_ROOTFS_DIR}/" "${ROOTFS_DIR}/" -rsync -rtx "${EXPORT_ROOTFS_DIR}/boot/firmware/" "${ROOTFS_DIR}/boot/firmware/" - -echo "Image created with boot, rootfs, and 256MB recovery partition." \ No newline at end of file diff --git a/export-image/prerun-old.sh b/export-image/prerun-old.sh deleted file mode 100755 index c271f9f..0000000 --- a/export-image/prerun-old.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -e - -# Check if the architecture is arm64 or armhf -if [[ "$ARCH" == "arm64" || "$ARCH" == "armhf" ]]; then - # If the architecture is arm64 or armhf, run mk-img.sh - ./mk-img.sh -else - # Otherwise, run mk-iso.sh - ./mk-iso.sh -fi \ No newline at end of file diff --git a/export-image/prerun.sh b/export-image/prerun.sh old mode 100644 new mode 100755 index f940ada..d562500 --- a/export-image/prerun.sh +++ b/export-image/prerun.sh @@ -1,29 +1,24 @@ -# Define file/directory names -IMG_NAME="${IMG_FILENAME}${IMG_SUFFIX}" -IMG_FILE="${STAGE_WORK_DIR}/${IMG_NAME}.img" -MOUNT_DIR="${ROOTFS_DIR}" # Consistent name for the main rootfs mount point +#!/bin/bash -e -# Define partition sizes -BOOT_SIZE=$((512 * 1024 * 1024)) # 512MB -RECOVERY_SIZE=$((256 * 1024 * 1024)) # 256MB -ALIGN=$((4 * 1024 * 1024)) # 4MB alignment +IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" -# --- Cleanup --- -echo "--- Cleaning up previous artifacts ---" -# Assume unmount_image handles unmounting potential mounts and detaching loop device unmount_image "${IMG_FILE}" -rm -f "${IMG_FILE}" -rm -rf "${MOUNT_DIR}" -mkdir -p "${MOUNT_DIR}" -# --- Calculate Image Size --- -echo "--- Calculating required image size ---" -# Calculate rootfs size excluding caches and firmware placeholder +rm -f "${IMG_FILE}" + +rm -rf "${ROOTFS_DIR}" +mkdir -p "${ROOTFS_DIR}" + +BOOT_SIZE="$((512 * 1024 * 1024))" ROOT_SIZE=$(du -x --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot/firmware --block-size=1 | cut -f 1) -# Add a margin for overhead and future growth (using mk-img.sh margin) + +# All partition sizes and starts will be aligned to this size +ALIGN="$((4 * 1024 * 1024))" ROOT_MARGIN="$(echo "($ROOT_SIZE * 0.2 + 400 * 1024 * 1024) / 1" | bc)" -# Calculate aligned partition sizes and starts +# Recovery partition fixed size: 256MB +RECOVERY_SIZE="$((256 * 1024 * 1024))" + BOOT_PART_START=$((ALIGN)) BOOT_PART_SIZE=$(((BOOT_SIZE + ALIGN - 1) / ALIGN * ALIGN)) ROOT_PART_START=$((BOOT_PART_START + BOOT_PART_SIZE)) @@ -32,219 +27,53 @@ RECOVERY_PART_START=$((ROOT_PART_START + ROOT_PART_SIZE)) RECOVERY_PART_SIZE=$(((RECOVERY_SIZE + ALIGN - 1) / ALIGN * ALIGN)) IMG_SIZE=$((RECOVERY_PART_START + RECOVERY_PART_SIZE)) -echo "Rootfs Size: ${ROOT_SIZE} B" -echo "Root Margin: ${ROOT_MARGIN} B" -echo "Calculated Image Size: ${IMG_SIZE} B" - -# --- Create Raw Image File --- -echo "--- Creating raw image file: ${IMG_FILE} ---" truncate -s "${IMG_SIZE}" "${IMG_FILE}" -# --- Partition the Image --- -echo "--- Partitioning the image ---" parted --script "${IMG_FILE}" mklabel msdos -parted --script "${IMG_FILE}" unit B set 1 boot on # Set boot flag on partition 1 parted --script "${IMG_FILE}" unit B mkpart primary fat32 "${BOOT_PART_START}" "$((BOOT_PART_START + BOOT_PART_SIZE - 1))" parted --script "${IMG_FILE}" unit B mkpart primary ext4 "${ROOT_PART_START}" "$((ROOT_PART_START + ROOT_PART_SIZE - 1))" parted --script "${IMG_FILE}" unit B mkpart primary ext4 "${RECOVERY_PART_START}" "$((RECOVERY_PART_START + RECOVERY_PART_SIZE - 1))" -# --- Setup Loop Device --- -echo "--- Setting up loop device ---" +echo "Creating loop device..." cnt=0 -# Assume ensure_next_loopdev() ensures a free loop device is available until ensure_next_loopdev && LOOP_DEV="$(losetup --show --find --partscan "$IMG_FILE")"; do - ((cnt++)) - if [ $cnt -ge 5 ]; then - echo "ERROR: losetup failed after 5 attempts." - exit 1 - fi - echo "Error setting up loop device. Retrying (${cnt}/5)..." - sleep 5 + if [ $cnt -lt 5 ]; then + cnt=$((cnt + 1)) + echo "Error in losetup. Retrying..." + sleep 5 + else + echo "ERROR: losetup failed; exiting" + exit 1 + fi done -echo "Loop device created: ${LOOP_DEV}" -# Assume ensure_loopdev_partitions() waits for partition nodes (e.g., /dev/loopXp1) to appear + ensure_loopdev_partitions "$LOOP_DEV" BOOT_DEV="${LOOP_DEV}p1" ROOT_DEV="${LOOP_DEV}p2" RECOVERY_DEV="${LOOP_DEV}p3" -# --- Format Partitions --- -echo "--- Formatting partitions ---" -# Determine EXT4 features (disable 64bit if not supported/needed, keep ^huge_file) ROOT_FEATURES="^huge_file" -if grep -q "64bit" /etc/mke2fs.conf; then - ROOT_FEATURES="^64bit,$ROOT_FEATURES" - echo "Enabling 64bit feature for ext4." -fi +for FEATURE in 64bit; do + if grep -q "$FEATURE" /etc/mke2fs.conf; then + ROOT_FEATURES="^$FEATURE,$ROOT_FEATURES" + fi +done -# Determine FAT size for boot partition -if [ "$BOOT_SIZE" -lt 134742016 ]; then # Approx 128MiB - FAT_SIZE=16 - echo "Using FAT16 for boot partition." +if [ "$BOOT_SIZE" -lt 134742016 ]; then + FAT_SIZE=16 else - FAT_SIZE=32 - echo "Using FAT32 for boot partition." + FAT_SIZE=32 fi -mkdosfs -n BOOT -F "$FAT_SIZE" -s 4 -v "$BOOT_DEV" > /dev/null +mkdosfs -n bootfs -F "$FAT_SIZE" -s 4 -v "$BOOT_DEV" > /dev/null mkfs.ext4 -L rootfs -O "$ROOT_FEATURES" "$ROOT_DEV" > /dev/null -mkfs.ext4 -L recovery -O "$ROOT_FEATURES" "$RECOVERY_DEV" > /dev/null # Format recovery for all archs +mkfs.ext4 -L recovery -O "$ROOT_FEATURES" "$RECOVERY_DEV" > /dev/null -# --- Architecture-Specific Steps --- +mount -v "$ROOT_DEV" "${ROOTFS_DIR}" -t ext4 +mkdir -p "${ROOTFS_DIR}/boot/firmware" +mount -v "$BOOT_DEV" "${ROOTFS_DIR}/boot/firmware" -t vfat -if [ "$ARCH" == "amd64" ]; then - # --- AMD64: Create IMG, Install GRUB, Create ISO --- - echo "--- Running AMD64 specific steps (IMG + GRUB + ISO) ---" +rsync -aHAXx --exclude /var/cache/apt/archives --exclude /boot/firmware "${EXPORT_ROOTFS_DIR}/" "${ROOTFS_DIR}/" +rsync -rtx "${EXPORT_ROOTFS_DIR}/boot/firmware/" "${ROOTFS_DIR}/boot/firmware/" - ISO_STAGING_DIR="${STAGE_WORK_DIR}/iso_staging" # Temp dir for ISO contents - - # Mount partitions for AMD64 (boot on /boot) - echo "Mounting partitions for AMD64..." - mount -v "$ROOT_DEV" "${MOUNT_DIR}" -t ext4 - mkdir -p "${MOUNT_DIR}/boot" - mount -v "$BOOT_DEV" "${MOUNT_DIR}/boot" -t vfat - # Optional: Mount recovery if you need to add specific recovery tools to the ISO - # mkdir -p "${MOUNT_DIR}/recovery" - # mount -v "$RECOVERY_DEV" "${MOUNT_DIR}/recovery" -t ext4 - - # Copy root filesystem content (excluding caches, firmware, overlays which are typically ARM specific) - echo "Copying root filesystem..." - rsync -aHAXx --delete --exclude /var/cache/apt/archives --exclude /boot/firmware --exclude /boot/overlays "${EXPORT_ROOTFS_DIR}/" "${MOUNT_DIR}/" - - # Install GRUB bootloader for BIOS boot - echo "Installing GRUB (BIOS)..." - mkdir -p "${MOUNT_DIR}/boot/grub" # Ensure grub dir exists - # Basic GRUB config - **IMPORTANT**: Adjust kernel/initrd paths and root= parameter if needed! - # Using PARTUUID is generally more reliable than /dev/sdxN - ROOT_PARTUUID=$(blkid -s PARTUUID -o value "$ROOT_DEV") - cat > "${MOUNT_DIR}/boot/grub/grub.cfg" </dev/null | xxd -e | cut -f 2 -d' ')" + +BOOT_PARTUUID="${IMGID}-01" +ROOT_PARTUUID="${IMGID}-02" +#HOME_PARTUUID="${IMGID}-03" + +sed -i "s/BOOTDEV/PARTUUID=${BOOT_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab" +sed -i "s/ROOTDEV/PARTUUID=${ROOT_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab" +#sed -i "s/HOMEDEV/PARTUUID=${HOME_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab" + +sed -i "s/ROOTDEV/PARTUUID=${ROOT_PARTUUID}/" "${ROOTFS_DIR}/boot/firmware/cmdline.txt" diff --git a/export-iso/05-finalise/01-run.sh b/export-iso/05-finalise/01-run.sh new file mode 100755 index 0000000..da6ab55 --- /dev/null +++ b/export-iso/05-finalise/01-run.sh @@ -0,0 +1,141 @@ +#!/bin/bash -e + +IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" +INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info" +SBOM_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.sbom" +BMAP_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.bmap" + +on_chroot << EOF +update-initramfs -k all -c +if [ -x /etc/init.d/fake-hwclock ]; then + /etc/init.d/fake-hwclock stop +fi +if hash hardlink 2>/dev/null; then + hardlink -t /usr/share/doc +fi +EOF + +if [ -f "${ROOTFS_DIR}/etc/initramfs-tools/update-initramfs.conf" ]; then + sed -i 's/^update_initramfs=.*/update_initramfs=yes/' "${ROOTFS_DIR}/etc/initramfs-tools/update-initramfs.conf" + sed -i 's/^MODULES=.*/MODULES=dep/' "${ROOTFS_DIR}/etc/initramfs-tools/initramfs.conf" +fi + +#if [ -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config" ]; then +# chmod 700 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config" +#fi + +rm -f "${ROOTFS_DIR}/usr/bin/qemu-arm-static" + +if [ "${USE_QEMU}" != "1" ]; then + if [ -e "${ROOTFS_DIR}/etc/ld.so.preload.disabled" ]; then + mv "${ROOTFS_DIR}/etc/ld.so.preload.disabled" "${ROOTFS_DIR}/etc/ld.so.preload" + fi +fi + +rm -f "${ROOTFS_DIR}/etc/network/interfaces.dpkg-old" + +rm -f "${ROOTFS_DIR}/etc/apt/sources.list~" +rm -f "${ROOTFS_DIR}/etc/apt/trusted.gpg~" + +rm -f "${ROOTFS_DIR}/etc/passwd-" +rm -f "${ROOTFS_DIR}/etc/group-" +rm -f "${ROOTFS_DIR}/etc/shadow-" +rm -f "${ROOTFS_DIR}/etc/gshadow-" +rm -f "${ROOTFS_DIR}/etc/subuid-" +rm -f "${ROOTFS_DIR}/etc/subgid-" + +rm -f "${ROOTFS_DIR}"/var/cache/debconf/*-old +rm -f "${ROOTFS_DIR}"/var/lib/dpkg/*-old + +rm -f "${ROOTFS_DIR}"/usr/share/icons/*/icon-theme.cache + +rm -f "${ROOTFS_DIR}/var/lib/dbus/machine-id" + +true > "${ROOTFS_DIR}/etc/machine-id" + +ln -nsf /proc/mounts "${ROOTFS_DIR}/etc/mtab" + +find "${ROOTFS_DIR}/var/log/" -type f -exec cp /dev/null {} \; + +rm -f "${ROOTFS_DIR}/root/.vnc/private.key" +rm -f "${ROOTFS_DIR}/etc/vnc/updateid" + +update_issue "$(basename "${EXPORT_DIR}")" +install -m 644 "${ROOTFS_DIR}/etc/rpi-issue" "${ROOTFS_DIR}/boot/firmware/issue.txt" +if ! [ -L "${ROOTFS_DIR}/boot/issue.txt" ]; then + ln -s firmware/issue.txt "${ROOTFS_DIR}/boot/issue.txt" +fi + +cp "$ROOTFS_DIR/etc/rpi-issue" "$INFO_FILE" + +{ + if [ -f "$ROOTFS_DIR/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" ]; then + firmware=$(zgrep "firmware as of" \ + "$ROOTFS_DIR/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" | \ + head -n1 | sed -n 's|.* \([^ ]*\)$|\1|p') + printf "\nFirmware: https://github.com/raspberrypi/firmware/tree/%s\n" "$firmware" + + kernel="$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/git_hash")" + printf "Kernel: https://github.com/raspberrypi/linux/tree/%s\n" "$kernel" + + uname="$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/uname_string7")" + printf "Uname string: %s\n" "$uname" + fi + + printf "\nPackages:\n" + dpkg -l --root "$ROOTFS_DIR" +} >> "$INFO_FILE" + +if hash syft 2>/dev/null; then + syft scan dir:"${ROOTFS_DIR}" \ + --base-path="${ROOTFS_DIR}" \ + --source-name="${IMG_NAME}${IMG_SUFFIX}" \ + --source-version="${IMG_DATE}" \ + -o spdx-json="${SBOM_FILE}" +fi + +ROOT_DEV="$(awk "\$2 == \"${ROOTFS_DIR}\" {print \$1}" /etc/mtab)" + +unmount "${ROOTFS_DIR}" +zerofree "${ROOT_DEV}" + +unmount_image "${IMG_FILE}" + +if hash bmaptool 2>/dev/null; then + bmaptool create \ + -o "${BMAP_FILE}" \ + "${IMG_FILE}" +fi + +mkdir -p "${DEPLOY_DIR}" + +rm -f "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.*" +rm -f "${DEPLOY_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" + +case "${DEPLOY_COMPRESSION}" in +zip) + pushd "${STAGE_WORK_DIR}" > /dev/null + zip -"${COMPRESSION_LEVEL}" \ + "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.zip" "$(basename "${IMG_FILE}")" + popd > /dev/null + ;; +gz) + pigz --force -"${COMPRESSION_LEVEL}" "$IMG_FILE" --stdout > \ + "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.img.gz" + ;; +xz) + xz --compress --force --threads 0 --memlimit-compress=50% -"${COMPRESSION_LEVEL}" \ + --stdout "$IMG_FILE" > "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.img.xz" + ;; +none | *) + cp "$IMG_FILE" "$DEPLOY_DIR/" +;; +esac + +if [ -f "${SBOM_FILE}" ]; then + xz -c "${SBOM_FILE}" > "$DEPLOY_DIR/image_$(basename "${SBOM_FILE}").xz" +fi +if [ -f "${BMAP_FILE}" ]; then + xz -c "${BMAP_FILE}" > "$DEPLOY_DIR/image_$(basename "${BMAP_FILE}").xz" +fi +cp "$INFO_FILE" "$DEPLOY_DIR/" diff --git a/export-image/mk-iso.sh b/export-iso/prerun.sh similarity index 100% rename from export-image/mk-iso.sh rename to export-iso/prerun.sh