No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-18 22:27:28 +02:00
arch2arch.sh arch2arch.sh aktualisiert 2026-07-18 22:27:28 +02:00
README.md README.md aktualisiert 2026-07-18 22:26:06 +02:00

Arch KDE Backup & Restore

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


Features

  • 🎯 Interaktives Menü wählt zwischen Backup und Restore
  • 📦 Sichert installierte Pakete (pacman nativ, AUR, Flatpak, optional Snap)
  • 🏠 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

  • Arch Linux (oder eine andere Arch-basierte Distribution)
  • KDE Plasma (auch andere Desktop Environmentss funktionieren grundsätzlich)
  • bash, tar, pacman
  • Optional: flatpak, yay (wird beim Restore automatisch installiert)

🚀 Verwendung

1. Skript herunterladen

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

2. Backup erstellen (auf dem alten System)

./arch2arch.sh

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

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

3. Wiederherstellen (auf dem neuen System)

Zuerst Arch KDE frisch installieren mit dem gleichen Benutzernamen wie auf dem alten System. Dann:

./arch2arch.sh

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

Nach Abschluss: Neu starten.


📦 Was wird gesichert?

Inhalt Beschreibung
pkglist_native.txt Liste aller pacman-Pakete aus offiziellen Repos
pkglist_aur.txt AUR- und Fremdpakete
flatpak_list.txt Installierte Flatpaks + Remotes
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
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

🔄 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 ggf. 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.
  • 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=(...) ganz 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 Desktop-Umgebungen
  • Verbesserungen bei der Fehlerbehandlung

💬 Kontext

Dieses Skript entstand ursprünglich im Rahmen eines persönlichen Hardware-Umzugs. Ein ausführlicher Erfahrungsbericht ist auf gnulinux.ch erschienen. Die hier durchgeführten Anpassungen beziehen sich auf den Umzug einer generellen Arch Linux-Umgebung.