Bash-Skript zum einfachen Backup und Restore eines beliebigen Linux-Systems mit KDE: Sichert installierte Pakete (Flatpak), Home-Verzeichnis, App-Einstellungen und Systemkonfiguration – ideal für den Umzug auf einen neuen Rechner.
Find a file
2026-06-04 11:57:02 +02:00
linux2linux.sh linux2linux.sh aktualisiert 2026-06-04 11:32:55 +02:00
README.md README.md aktualisiert 2026-06-04 11:57:02 +02:00

Linux KDE Backup & Restore

Ein interaktives Bash-Skript zum Sichern und Wiederherstellen eines Linux-KDE-Systems konzipiert für den unkomplizierten Umzug auf einen neuen Rechner, auch distributionsübergreifend.


Features

  • 🎯 Interaktives Menü wählt zwischen Backup und Restore
  • 🐧 Multi-Distro-fähig unterstützt Arch/Manjaro, Fedora/RHEL und Debian/Ubuntu
  • 🔀 Cross-Distro-Migration z. B. von Fedora nach Debian, inkl. Hinweisen zu manuellen Nacharbeiten
  • 📦 Sichert installierte Pakete (Flatpak, optional Snap) Flatpaks bleiben bei jeder Migration erhalten
  • 🏠 Sichert das Home-Verzeichnis inkl. Anwendungseinstellungen
  • ⚙️ Sichert /etc beim Restore optional und sicher nach /tmp entpackt
  • 📊 Größenübersicht vor dem Backup mit Speicherplatz-Check am Ziel
  • 🚫 Intelligente Ausschlüsse für Caches, node_modules, venvs, SDKs etc.
  • 📧 Thunderbird-aware: sichert Einstellungen & Logins, aber keine IMAP-Maildaten (werden beim ersten Start neu geladen)
  • 🔐 Läuft als normaler User fragt nur bei Bedarf nach sudo

📋 Voraussetzungen

  • Linux mit einer der unterstützten Distributionsfamilien (siehe unten)
  • KDE Plasma (andere DEs funktionieren grundsätzlich ebenfalls)
  • bash, tar
  • Optional: flatpak, snap (werden beim Restore bei Bedarf automatisch installiert)

Unterstützte Distributionen

Familie Distributionen Paketmanager
Arch Arch Linux, Manjaro pacman / yay (AUR)
Fedora Fedora, RHEL, CentOS dnf
Debian Debian, Ubuntu, Linux Mint apt

🚀 Verwendung

1. Skript herunterladen

git clone https://code.pifferi.io/wraith/linux2linux.git
cd linux2linux
chmod +x linux2linux.sh

2. Backup erstellen (auf dem alten System)

./linux2linux.sh

→ Option 1 wählen und den Zielpfad angeben (z. B. /run/media/USER/USB-Stick).

Das Skript erkennt die Distribution automatisch, zeigt eine Übersicht der zu sichernden Datenmenge an und fragt vor dem Start nach einer Bestätigung.

3. Wiederherstellen (auf dem neuen System)

Zuerst das Linux-System samt KDE neu installieren mit dem gleichen Benutzernamen wie auf dem alten System. Dann:

./linux2linux.sh

→ Option 2 wählen und den Pfad zum Backup-Ordner angeben.

Das Skript erkennt automatisch, ob es sich um eine Migration innerhalb derselben Distributionsfamilie oder eine Cross-Distro-Migration handelt, und verhält sich entsprechend.

Nach Abschluss: Neu starten.


📦 Was wird gesichert?

Datei / Ordner Beschreibung
pkglist_native.txt Explizit installierte Pakete (pacman / dnf / apt)
pkglist_aur.txt AUR- und Fremdpakete (nur Arch/Manjaro)
yum_repos/ Repo-Konfiguration (nur Fedora)
apt_sources/ APT-Quellen (nur Debian/Ubuntu)
flatpak_list.txt Installierte Flatpaks
flatpak_remotes.txt Flatpak-Remotes (z. B. Flathub)
home_backup.tar.gz Komplettes Home-Verzeichnis (nach Ausschlussliste)
flatpak_data.tar.gz Flatpak-App-Daten aus ~/.var/app
etc_backup.tar.gz Systemkonfiguration aus /etc
source_distro_family.txt Quell-Distributionsfamilie (für Cross-Distro-Erkennung)
source_distro_name.txt Quell-Distributionsname (für die Anzeige)
BACKUP_INFO.txt Metadaten zum Backup

🚫 Was wird NICHT gesichert?

Standardmäßig ausgeschlossen (anpassbar im EXCLUDES-Array oben im Skript):

  • Caches (.cache, Browser-Caches, npm, gradle, …)
  • Papierkorb und Thumbnails
  • Nextcloud/ (synct sich neu vom Server)
  • Android/Sdk und .android/avd
  • Python venv / .venv, node_modules, __pycache__, Build-Ordner
  • Thunderbird-Maildaten (IMAP) Einstellungen und Logins bleiben erhalten
  • KDE Baloo Such-Index (baut sich automatisch neu auf)
  • Docker-Daten, Cargo-Registry, Rustup, Go-Module

🔀 Cross-Distro-Migration

Bei einer Migration zwischen verschiedenen Distributionsfamilien (z. B. Fedora → Debian) gilt:

Bereich Verhalten
Flatpaks Werden immer vollständig wiederhergestellt
Home-Verzeichnis Wird immer wiederhergestellt
Native Pakete ⚠️ Nicht automatisch übertragbar Paketliste liegt zur manuellen Prüfung bereit
/etc Wird bei Cross-Distro nicht angeboten (inkompatible Systemkonfiguration)

Das Skript gibt bei Bedarf konkrete Hinweise, z. B. für Fedora → Debian KDE:

sudo apt-get install -y kde-standard
# Dann pkglist_native.txt manuell prüfen:
apt-cache search <paketname>

🔄 Nach dem Restore

Folgende Dinge müssen ggf. manuell erledigt werden:

  • Nextcloud-Client neu einrichten (synct dann automatisch)
  • Android Studio öffnen → SDK Manager → SDK neu herunterladen
  • Python venvs neu erstellen:
    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    
  • Beim ersten Build laden sich node_modules, Gradle-Cache etc. automatisch neu

⚠️ Wichtige Hinweise

  • Nicht als root ausführen! Das Skript prüft dies aktiv und bricht ab.
  • Gleicher Benutzername auf altem und neuem System dringend empfohlen.
  • /etc wird beim Restore NICHT automatisch überschrieben es wird nach /tmp/etc_restored entpackt, damit selektiv gemergt werden kann.
  • Bei Cross-Distro-Migrationen wird /etc grundsätzlich nicht wiederhergestellt.
  • Vor dem Backup Thunderbird schließen (das Skript bietet das automatisch an).
  • Bei Nextcloud: vor dem Backup auf vollständigen Sync achten (grüner Haken im Tray).

🛠️ Anpassung

Die Ausschlussliste ist als Array EXCLUDES=(...) oben im Skript definiert und kann nach Belieben erweitert oder gekürzt werden.


📜 Lizenz

MIT License frei nutzbar, anpassbar und weiterverteilbar.


🤝 Beitragen

Pull Requests und Issues sind willkommen! Insbesondere für:

  • Erweiterungen der Ausschlussliste
  • Unterstützung weiterer Distributionen oder Desktop-Umgebungen
  • Verbesserungen bei der Fehlerbehandlung

💬 Kontext

Dieses Skript entstand im Rahmen eines persönlichen Hardware-Umzugs und war ursprünglich nur für Manjaro Linux optimiert, unterstützt mit diesem Fork in v3 aber auch alle anderen gängigen Linux-Distributionen wie Debian, Fedora, RHEL oder Ubuntu. Ein ausführlicher Erfahrungsbericht der initialen Version ist auf gnulinux.ch erschienen.