#!/bin/bash # build-iso.sh — Ubuntu 24.04 Autoinstall ISO für Ventoy bauen # Ausführen auf einem Ubuntu/Debian-System mit Internetzugang # Ergebnis: ubuntu-macbook-autoinstall.iso (~4-5 GB) set -e UBUNTU_ISO_URL="https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso" UBUNTU_ISO="ubuntu-24.04-live-server-amd64.iso" OUTPUT_ISO="ubuntu-macbook-autoinstall.iso" WORKDIR="/tmp/iso-build" RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m' ok() { echo -e "${GREEN}✓ $*${NC}"; } warn() { echo -e "${YELLOW}⚠ $*${NC}"; } echo "════════════════════════════════════════════" echo " macbook-setup ISO Builder" echo "════════════════════════════════════════════" # Abhängigkeiten echo -e "\n=== Abhängigkeiten prüfen ===" sudo apt install -y xorriso squashfs-tools genisoimage ok "Werkzeuge verfügbar" # Ubuntu ISO herunterladen (falls nicht vorhanden) if [[ ! -f "$UBUNTU_ISO" ]]; then echo -e "\n=== Ubuntu 24.04 ISO herunterladen ===" wget --show-progress -O "$UBUNTU_ISO" "$UBUNTU_ISO_URL" ok "ISO heruntergeladen" else ok "ISO bereits vorhanden: $UBUNTU_ISO" fi # Arbeitsverzeichnis vorbereiten echo -e "\n=== ISO entpacken ===" rm -rf "$WORKDIR" mkdir -p "$WORKDIR/source" sudo mount -o loop "$UBUNTU_ISO" /mnt cp -rT /mnt "$WORKDIR/source" sudo umount /mnt chmod -R u+w "$WORKDIR/source" ok "ISO entpackt nach $WORKDIR/source" # autoinstall-Dateien einfügen echo -e "\n=== Autoinstall-Dateien einbetten ===" mkdir -p "$WORKDIR/source/autoinstall" cp user-data "$WORKDIR/source/autoinstall/" cp meta-data "$WORKDIR/source/autoinstall/" ok "user-data und meta-data eingefügt" # GRUB-Konfiguration: autoinstall-Parameter hinzufügen echo -e "\n=== GRUB konfigurieren ===" GRUB_CFG="$WORKDIR/source/boot/grub/grub.cfg" # Autoinstall-Eintrag am Anfang einfügen cat > /tmp/grub-autoinstall.cfg <<'EOF' set default=0 set timeout=10 menuentry "Ubuntu MacBook AutoInstall" { set gfxpayload=keep linux /casper/vmlinuz quiet autoinstall ds=nocloud\;s=/cdrom/autoinstall/ --- initrd /casper/initrd } EOF cat /tmp/grub-autoinstall.cfg "$GRUB_CFG" > /tmp/grub-merged.cfg mv /tmp/grub-merged.cfg "$GRUB_CFG" ok "GRUB konfiguriert (autoinstall als Standard)" # ISO neu bauen echo -e "\n=== ISO bauen ===" xorriso -as mkisofs \ -r -V "Ubuntu-24.04-MacBook" \ -J -joliet-long \ -b boot/grub/i386-pc/eltorito.img \ -c boot.catalog \ -no-emul-boot -boot-load-size 4 -boot-info-table \ --efi-boot boot/grub/efi.img \ -efi-boot-part --efi-startup-part --protective-msdos-label \ "$WORKDIR/source" \ -o "$OUTPUT_ISO" ok "ISO erstellt: $OUTPUT_ISO" echo "" echo "Größe: $(du -sh "$OUTPUT_ISO" | cut -f1)" echo "" warn "Nächster Schritt: ISO auf Ventoy-Stick kopieren" echo " cp $OUTPUT_ISO /media/\$USER/Ventoy/" echo "" warn "Vor der Installation: user-data anpassen!" echo " - Passwort-Hash: mkpasswd -m sha-512 DEINPASSWORT" echo " - Modell: 'setup.sh -- 13' oder 'setup.sh -- 16' in user-data"