archy/image-recipe/_archived/scripts/convert-iso-to-disk.sh
archipelago ed73e4709b chore(release): archive ISO build recipes, tarball-only releases
Releases no longer ship as bootable ISOs. Archipelago updates are
distributed as the backend binary plus a frontend tarball referenced by
releases/manifest.json. Nodes OTA-update via scripts/self-update.sh.

Filebrowser and AIUI remain bundled inside the frontend tarball and
deployed atomically, verified present in v1.7.43-alpha release artifact
(189 AIUI files, filebrowser-client bundle).

Archived under image-recipe/_archived/ (resurrectable if ISO distribution
is reintroduced):
  - build-auto-installer-iso.sh
  - build-unbundled-iso.sh
  - test-iso-qemu.sh
  - scripts/convert-iso-to-disk.sh
  - BUILD-ISO-STATUS.md, ISO-BUILD-CHECKLIST.md
  - branding/isohdpfx.bin
  - .gitea/workflows/build-iso-dev.yml

Updated release process docs to drop ISO references:
  - scripts/create-release.sh (next-steps text)
  - docs/BETA-RELEASE-CHECKLIST.md
  - docs/hotfix-process.md
  - README.md
2026-04-23 15:36:00 -04:00

66 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Convert ISO image to bootable disk image
# Creates a raw disk image that can be flashed directly
set -e
OUTPUT_DIR="${1:-../results}"
ARCHIPELAGO_VERSION="${ARCHIPELAGO_VERSION:-0.1.0}"
ARCH="${ARCH:-x86_64}"
echo "💾 Converting ISO to disk image..."
# Find ISO file
ISO_FILE=$(ls "$OUTPUT_DIR"/*.iso 2>/dev/null | head -1)
if [ -z "$ISO_FILE" ]; then
echo "❌ No ISO file found in $OUTPUT_DIR"
exit 1
fi
echo " Source ISO: $ISO_FILE"
# Create disk image (4GB minimum)
DISK_SIZE=4096 # 4GB in MB
DISK_IMG="$OUTPUT_DIR/archipelago-${ARCHIPELAGO_VERSION}-${ARCH}.img"
echo " Creating disk image: $DISK_IMG"
# Check if we have required tools
if ! command -v dd >/dev/null 2>&1; then
echo "❌ dd not found"
exit 1
fi
# Create empty disk image
dd if=/dev/zero of="$DISK_IMG" bs=1M count=$DISK_SIZE 2>/dev/null || {
echo "❌ Failed to create disk image"
exit 1
}
# Note: Full disk image creation with partitions requires:
# - parted or fdisk
# - mkfs.vfat, mkfs.ext4
# - losetup (Linux only)
# - grub-install
# For now, we'll create a simple approach:
# The ISO can be used directly, or users can use tools like:
# - balenaEtcher (macOS/Linux GUI)
# - Rufus (Windows)
# - dd (command line)
echo "⚠️ Full disk image conversion requires additional tools"
echo " For now, use the ISO file directly with:"
echo " - balenaEtcher (recommended)"
echo " - dd command (see docs)"
echo ""
echo " ISO file: $ISO_FILE"
echo " Size: $(du -h "$ISO_FILE" | cut -f1)"
# Clean up empty image file
rm -f "$DISK_IMG"
echo ""
echo "💡 Tip: Use the ISO file with a USB flashing tool"
echo " The ISO is bootable and can be flashed directly"