#!/bin/bash set -euo pipefail ## RunME: ## wget -c -O /root/debian12-to-13-upgrade.sh https://ftp.info-linux.de/arbeiten/Debian/debian12-to-13-upgrade.txt && chmod 755 /root/debian12-to-13-upgrade.sh && /root/debian12-to-13-upgrade.sh ### --- Konfiguration --- NEW_CODENAME="trixie" BACKUP_DIR="/root/upgrade-backup-$(date +%F-%H%M%S)" echo "=== Debian 12 → $NEW_CODENAME Upgrade starten ===" echo "Backup-Verzeichnis: $BACKUP_DIR" sleep 2 ### --- 1. Backup --- echo "[1/8] Backup von /etc anlegen..." mkdir -p "$BACKUP_DIR" tar czf "$BACKUP_DIR/etc-backup.tar.gz" /etc ### --- 2. System auf aktuellen Stand bringen --- echo "[2/8] System aktualisieren (bookworm)..." export DEBIAN_FRONTEND=noninteractive apt update apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -y full-upgrade apt --fix-broken install -y dpkg --audit || true ### --- 3. Alte Repos prüfen --- echo "[3/8] Repositories prüfen..." grep -rE "bookworm|bullseye|bionic|stretch" /etc/apt/sources.list /etc/apt/sources.list.d/ || true ### --- 4. sources.list & sources.d umstellen --- echo "[4/8] APT-Quellen auf $NEW_CODENAME umstellen..." cp /etc/apt/sources.list "$BACKUP_DIR/sources.list.bak" cp -a /etc/apt/sources.list.d "$BACKUP_DIR/sources.list.d.bak" sed -i "s/bookworm/${NEW_CODENAME}/g" /etc/apt/sources.list find /etc/apt/sources.list.d/ -type f -name "*.list" -exec sed -i "s/bookworm/${NEW_CODENAME}/g" {} \; sed -i "s/bookworm-backports/${NEW_CODENAME}-backports/g" /etc/apt/sources.list || true find /etc/apt/sources.list.d/ -type f -name "*.list" -exec sed -i "s/bookworm-backports/${NEW_CODENAME}-backports/g" {} \; ### --- 5. Upgrade durchführen --- echo "[5/8] Upgrade auf ${NEW_CODENAME} durchführen..." apt update apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -y upgrade apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -y full-upgrade ### --- 6. Kernel aktualisieren --- echo "[6/8] Kernel aktualisieren..." apt install -y linux-image-arm64 linux-headers-arm64 ### --- 7. Aufräumen --- echo "[7/8] Aufräumen..." apt autoremove --purge -y apt clean ### --- 8. Abschluss --- echo "[8/8] Upgrade abgeschlossen." echo "Backup befindet sich unter: $BACKUP_DIR" echo read -p "System jetzt neu starten? [j/N]: " confirm case "$confirm" in [jJ]|[jJ][aA]) echo "→ Neustart wird durchgeführt..." sleep 3 reboot ;; *) echo "→ Neustart abgebrochen. Bitte manuell durchführen, wenn bereit." ;; esac