particle-os/02-installer-bootc/scripts/create-simple-iso.sh
2025-08-07 01:04:22 -07:00

97 lines
No EOL
2.9 KiB
Bash
Executable file

#!/bin/bash
# Script to create a simple non-bootable ISO for testing
set -e
echo "Creating simple non-bootable ISO for testing..."
# Create build directory
mkdir -p build
echo "Creating simple ISO using podman..."
# Use podman to create everything inside the container
podman run --rm \
-v "$(pwd)/build:/output:Z" \
debian:trixie \
bash -c "
# Configure apt-cacher-ng proxy if available
if [ -n \"$APT_CACHER_NG_PROXY\" ]; then
echo \"Acquire::http::Proxy \\\"$APT_CACHER_NG_PROXY\\\";\" > /etc/apt/apt.conf.d/99proxy
echo \"Acquire::https::Proxy \\\"$APT_CACHER_NG_PROXY\\\";\" >> /etc/apt/apt.conf.d/99proxy
fi
# Update and install required packages
apt-get update
apt-get install -y genisoimage
# Create working directory
mkdir -p /tmp/iso-content
cd /tmp/iso-content
# Create basic ISO structure
mkdir -p boot/grub
mkdir -p isolinux
# Create a simple kernel placeholder
echo 'This is a placeholder kernel' > boot/vmlinuz
echo 'This is a placeholder initrd' > boot/initrd.img
# Create GRUB configuration
cat > boot/grub/grub.cfg << 'EOF'
set timeout=5
set default=0
menuentry 'Debian Atomic Desktop Installer' {
linux /boot/vmlinuz root=live:CDLABEL=DEBIAN_ATOMIC quiet
initrd /boot/initrd.img
}
menuentry 'Debian Atomic Desktop Installer (Safe Mode)' {
linux /boot/vmlinuz root=live:CDLABEL=DEBIAN_ATOMIC nomodeset
initrd /boot/initrd.img
}
EOF
# Create isolinux configuration
cat > isolinux/isolinux.cfg << 'EOF'
DEFAULT install
TIMEOUT 50
PROMPT 1
LABEL install
KERNEL /boot/vmlinuz
APPEND root=live:CDLABEL=DEBIAN_ATOMIC quiet initrd=/boot/initrd.img
LABEL install-safe
KERNEL /boot/vmlinuz
APPEND root=live:CDLABEL=DEBIAN_ATOMIC nomodeset initrd=/boot/initrd.img
EOF
# Create a simple README
echo 'Debian Atomic Desktop Installer ISO' > README.txt
echo 'This is a simple ISO for testing.' >> README.txt
# List contents to debug
echo 'Contents of /tmp/iso-content:'
ls -la /tmp/iso-content/
# Create simple ISO without bootloader inside container
genisoimage -o /tmp/debian-atomic-installer-simple.iso \
-r \
-V 'DEBIAN_ATOMIC' \
.
# Copy ISO to output directory
cp /tmp/debian-atomic-installer-simple.iso /output/
echo 'ISO created and copied to output directory'
"
echo "Simple ISO created: build/debian-atomic-installer-simple.iso"
if [ -f "build/debian-atomic-installer-simple.iso" ]; then
echo "Size: $(du -h build/debian-atomic-installer-simple.iso | cut -f1)"
echo "✅ Simple ISO creation completed!"
else
echo "❌ ISO creation failed!"
exit 1
fi