#!/bin/bash # Simple script to create bootable USB from extracted ISO files set -e USB_DEVICE="${1:-/dev/disk4}" ISO_FILE="${2:-/Users/dorian/Projects/archy/image-recipe/results/archipelago-3.19-hp-prodesk-uefi-x86_64.iso}" echo "╔════════════════════════════════════════════════════════╗" echo "║ Create Bootable USB from ISO ║" echo "╚════════════════════════════════════════════════════════╝" echo "" echo "📀 ISO: $(basename $ISO_FILE)" echo "💾 USB: $USB_DEVICE" echo "" # Check if USB is formatted and mounted USB_MOUNT=$(diskutil info "${USB_DEVICE}s1" 2>/dev/null | grep "Mount Point" | awk '{print $3}' || echo "") if [ -z "$USB_MOUNT" ]; then echo "❌ USB not mounted. Please format it first:" echo " sudo diskutil eraseDisk FAT32 ALPINE MBR $USB_DEVICE" exit 1 fi echo "✅ USB mounted at: $USB_MOUNT" echo "" # Extract ISO to temp directory echo "📦 Extracting ISO..." TEMP_DIR="/tmp/alpine-extract-$$" mkdir -p "$TEMP_DIR" 7z x "$ISO_FILE" -o"$TEMP_DIR" -y >/dev/null # Copy to USB echo "📋 Copying to USB..." rsync -av --progress "$TEMP_DIR/" "$USB_MOUNT/" # Fix bootloader names for USB echo "🔧 Configuring bootloader..." cd "$USB_MOUNT/boot/syslinux" if [ -f isolinux.bin ]; then mv isolinux.bin syslinux.bin echo " ✓ Renamed isolinux.bin → syslinux.bin" fi if [ -f isolinux.cfg ]; then mv isolinux.cfg syslinux.cfg echo " ✓ Renamed isolinux.cfg → syslinux.cfg" fi # Update config file if [ -f syslinux.cfg ]; then sed -i '' 's/isolinux/syslinux/g' syslinux.cfg echo " ✓ Updated syslinux.cfg" fi # Sync echo "🔄 Syncing..." cd / sync sleep 2 # Unmount echo "📤 Unmounting USB..." diskutil unmount "$USB_MOUNT" # Install MBR if [ -f "$TEMP_DIR/boot/syslinux/mbr.bin" ]; then echo "🚀 Installing MBR..." sudo dd if="$TEMP_DIR/boot/syslinux/mbr.bin" of="$USB_DEVICE" bs=440 count=1 conv=notrunc 2>/dev/null echo " ✓ MBR installed" fi # Clean up rm -rf "$TEMP_DIR" echo "" echo "✅ Bootable USB created successfully!" echo "" echo "📋 Next steps:" echo " 1. Safely eject: diskutil eject $USB_DEVICE" echo " 2. Boot HP ProDesk from USB" echo " 3. BIOS: Legacy mode, Secure Boot OFF" echo ""