Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
# build-iso.sh — Ubuntu 24.04 Autoinstall ISO für Ventoy bauen
|
2026-03-07 21:37:00 +01:00
|
|
|
# Funktioniert auf macOS (xorriso via brew) und Linux (xorriso via apt)
|
|
|
|
|
# Ergebnis: ubuntu-macbook-autoinstall.iso (~3.2 GB)
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
|
|
|
|
|
set -e
|
2026-03-07 21:37:00 +01:00
|
|
|
UBUNTU_ISO_URL="https://releases.ubuntu.com/24.04/ubuntu-24.04.4-live-server-amd64.iso"
|
|
|
|
|
UBUNTU_ISO="ubuntu-24.04.4-live-server-amd64.iso"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
OUTPUT_ISO="ubuntu-macbook-autoinstall.iso"
|
2026-03-07 21:37:00 +01:00
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
|
|
|
|
|
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}"; }
|
2026-03-07 21:37:00 +01:00
|
|
|
err() { echo -e "${RED}✗ $*${NC}"; exit 1; }
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
|
2026-03-07 21:37:00 +01:00
|
|
|
OS="$(uname -s)"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
echo "════════════════════════════════════════════"
|
2026-03-07 21:37:00 +01:00
|
|
|
echo " macbook-setup ISO Builder ($OS)"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
echo "════════════════════════════════════════════"
|
|
|
|
|
|
2026-03-08 19:29:59 +01:00
|
|
|
# ── Modell aus user-data erkennen ──────────────────────────────────────────
|
|
|
|
|
MODEL=$(grep -o 'setup-base.sh | bash -s -- [0-9]*' "$SCRIPT_DIR/user-data" | grep -o '[0-9]*$')
|
|
|
|
|
HOSTNAME=$(grep 'hostname:' "$SCRIPT_DIR/user-data" | awk '{print $2}')
|
|
|
|
|
if [[ -z "$MODEL" ]]; then
|
|
|
|
|
err "Konnte Modell nicht aus user-data ermitteln"
|
|
|
|
|
fi
|
|
|
|
|
ok "Modell: MBP $MODEL\" (Hostname: $HOSTNAME)"
|
|
|
|
|
|
2026-03-07 21:37:00 +01:00
|
|
|
# ── Abhängigkeiten ───────────────────────────────────────────────────────
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
echo -e "\n=== Abhängigkeiten prüfen ==="
|
2026-03-07 21:37:00 +01:00
|
|
|
if [[ "$OS" == "Darwin" ]]; then
|
|
|
|
|
if ! command -v xorriso &>/dev/null; then
|
|
|
|
|
echo "xorriso nicht gefunden, installiere via Homebrew..."
|
|
|
|
|
brew install xorriso
|
|
|
|
|
fi
|
|
|
|
|
ok "xorriso verfügbar (macOS)"
|
|
|
|
|
else
|
|
|
|
|
if ! command -v xorriso &>/dev/null; then
|
|
|
|
|
sudo apt install -y xorriso
|
|
|
|
|
fi
|
|
|
|
|
ok "xorriso verfügbar (Linux)"
|
|
|
|
|
fi
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
|
2026-03-07 21:37:00 +01:00
|
|
|
# ── Ubuntu ISO herunterladen ─────────────────────────────────────────────
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
if [[ ! -f "$UBUNTU_ISO" ]]; then
|
|
|
|
|
echo -e "\n=== Ubuntu 24.04 ISO herunterladen ==="
|
2026-03-07 21:37:00 +01:00
|
|
|
curl -L --progress-bar -o "$UBUNTU_ISO" "$UBUNTU_ISO_URL"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
ok "ISO heruntergeladen"
|
|
|
|
|
else
|
|
|
|
|
ok "ISO bereits vorhanden: $UBUNTU_ISO"
|
|
|
|
|
fi
|
|
|
|
|
|
2026-03-07 21:37:00 +01:00
|
|
|
# Prüfen ob es eine echte ISO ist
|
|
|
|
|
if ! file "$UBUNTU_ISO" | grep -q "ISO 9660"; then
|
|
|
|
|
rm -f "$UBUNTU_ISO"
|
|
|
|
|
err "Download fehlgeschlagen (keine gültige ISO). Bitte erneut starten."
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# ── Autoinstall-Dateien vorbereiten ──────────────────────────────────────
|
|
|
|
|
echo -e "\n=== Autoinstall-Dateien vorbereiten ==="
|
|
|
|
|
TMPDIR=$(mktemp -d)
|
2026-03-09 20:06:03 +01:00
|
|
|
|
|
|
|
|
# NoCloud-Verzeichnis (Fallback für cloud-init)
|
2026-03-07 21:37:00 +01:00
|
|
|
mkdir -p "$TMPDIR/autoinstall"
|
|
|
|
|
cp "$SCRIPT_DIR/user-data" "$TMPDIR/autoinstall/"
|
|
|
|
|
cp "$SCRIPT_DIR/meta-data" "$TMPDIR/autoinstall/"
|
2026-03-09 20:06:03 +01:00
|
|
|
|
|
|
|
|
# autoinstall.yaml im ISO-Root (direkter Subiquity-Weg, Ubuntu 24.04+)
|
|
|
|
|
# Subiquity sucht im Root des Installationsmediums nach autoinstall.yaml
|
|
|
|
|
grep -v '^#cloud-config' "$SCRIPT_DIR/user-data" | \
|
|
|
|
|
sed 's/^autoinstall://' | sed 's/^ //' > "$TMPDIR/autoinstall.yaml"
|
|
|
|
|
ok "user-data und autoinstall.yaml bereit"
|
2026-03-07 21:37:00 +01:00
|
|
|
|
2026-03-08 19:29:59 +01:00
|
|
|
# ── WireGuard-Config einbetten ────────────────────────────────────────────
|
|
|
|
|
echo -e "\n=== WireGuard-Config ==="
|
|
|
|
|
WG_CONF=""
|
|
|
|
|
# Suche nach passender Config: wireguard/m16.conf, wireguard/m13.conf, etc.
|
|
|
|
|
for candidate in "$SCRIPT_DIR/wireguard/${HOSTNAME}.conf" "$SCRIPT_DIR/wireguard/m${MODEL}.conf"; do
|
|
|
|
|
if [[ -f "$candidate" ]]; then
|
|
|
|
|
WG_CONF="$candidate"
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [[ -n "$WG_CONF" ]]; then
|
|
|
|
|
cp "$WG_CONF" "$TMPDIR/autoinstall/wg0.conf"
|
|
|
|
|
ok "WireGuard-Config eingebettet: $(basename "$WG_CONF")"
|
|
|
|
|
else
|
|
|
|
|
warn "Keine WireGuard-Config gefunden in wireguard/ — übersprungen"
|
|
|
|
|
warn "Erwartet: wireguard/${HOSTNAME}.conf oder wireguard/m${MODEL}.conf"
|
|
|
|
|
fi
|
|
|
|
|
|
2026-03-07 21:37:00 +01:00
|
|
|
# ── GRUB-Eintrag vorbereiten ────────────────────────────────────────────
|
|
|
|
|
echo -e "\n=== GRUB-Eintrag vorbereiten ==="
|
|
|
|
|
|
|
|
|
|
# Originale grub.cfg extrahieren
|
|
|
|
|
xorriso -osirrox on -indev "$UBUNTU_ISO" \
|
|
|
|
|
-extract /boot/grub/grub.cfg "$TMPDIR/grub.cfg" 2>/dev/null
|
|
|
|
|
chmod u+w "$TMPDIR/grub.cfg"
|
|
|
|
|
|
|
|
|
|
# Autoinstall-Eintrag voranstellen
|
|
|
|
|
TMPGRUB=$(mktemp)
|
|
|
|
|
cat > "$TMPGRUB" <<'GRUBEOF'
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
set default=0
|
|
|
|
|
set timeout=10
|
|
|
|
|
|
|
|
|
|
menuentry "Ubuntu MacBook AutoInstall" {
|
|
|
|
|
set gfxpayload=keep
|
2026-03-09 20:06:03 +01:00
|
|
|
linux /casper/vmlinuz quiet autoinstall subiquity.autoinstallpath=/cdrom/autoinstall.yaml cloud-config-url=/dev/null ds=nocloud\;s=/cdrom/autoinstall/ ---
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
initrd /casper/initrd
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-07 21:37:00 +01:00
|
|
|
GRUBEOF
|
|
|
|
|
cat "$TMPGRUB" "$TMPDIR/grub.cfg" > "$TMPDIR/grub-new.cfg"
|
|
|
|
|
rm "$TMPGRUB"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
ok "GRUB konfiguriert (autoinstall als Standard)"
|
|
|
|
|
|
2026-03-07 21:37:00 +01:00
|
|
|
# ── ISO modifizieren (Boot-Records bleiben erhalten) ─────────────────────
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
echo -e "\n=== ISO bauen ==="
|
2026-03-07 21:37:00 +01:00
|
|
|
cp "$UBUNTU_ISO" "$OUTPUT_ISO"
|
|
|
|
|
|
|
|
|
|
xorriso -indev "$OUTPUT_ISO" \
|
|
|
|
|
-outdev "$OUTPUT_ISO" \
|
|
|
|
|
-map "$TMPDIR/autoinstall" /autoinstall \
|
2026-03-09 20:06:03 +01:00
|
|
|
-map "$TMPDIR/autoinstall.yaml" /autoinstall.yaml \
|
2026-03-07 21:37:00 +01:00
|
|
|
-map "$TMPDIR/grub-new.cfg" /boot/grub/grub.cfg \
|
|
|
|
|
-boot_image any replay \
|
|
|
|
|
-commit
|
|
|
|
|
|
|
|
|
|
rm -rf "$TMPDIR"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
|
|
|
|
|
ok "ISO erstellt: $OUTPUT_ISO"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Größe: $(du -sh "$OUTPUT_ISO" | cut -f1)"
|
2026-03-08 19:29:59 +01:00
|
|
|
echo "Modell: MBP $MODEL\" | Hostname: $HOSTNAME"
|
|
|
|
|
[[ -n "$WG_CONF" ]] && echo "WireGuard: $(basename "$WG_CONF")" || echo "WireGuard: nicht eingebettet"
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:27:48 +01:00
|
|
|
echo ""
|
2026-03-08 19:29:59 +01:00
|
|
|
warn "Nächster Schritt: ISO auf USB-Stick schreiben"
|
2026-03-07 21:37:00 +01:00
|
|
|
if [[ "$OS" == "Darwin" ]]; then
|
2026-03-08 19:29:59 +01:00
|
|
|
echo " diskutil unmountDisk /dev/diskX"
|
|
|
|
|
echo " sudo dd if=$OUTPUT_ISO of=/dev/rdiskX bs=4m"
|
2026-03-07 21:37:00 +01:00
|
|
|
else
|
2026-03-08 19:29:59 +01:00
|
|
|
echo " sudo dd if=$OUTPUT_ISO of=/dev/sdX bs=4M status=progress"
|
2026-03-07 21:37:00 +01:00
|
|
|
fi
|