- Shell 100%
| linux2linux.sh | ||
| README.md | ||
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/tmpentpackt - 📊 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/Sdkund.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.
/etcwird beim Restore NICHT automatisch überschrieben – es wird nach/tmp/etc_restoredentpackt, damit selektiv gemergt werden kann.- Bei Cross-Distro-Migrationen wird
/etcgrundsä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.