Nach dem erfolgreichen Backup Ihrer Raspberry Pi SD-Karte ist es wichtig, auch ein Wiederherstellungsskript (Restore) zur Hand zu haben, falls Sie das System auf eine neue SD-Karte kopieren oder einen vorherigen Zustand wiederherstellen möchten. In
Nach dem erfolgreichen Backup Ihrer Raspberry Pi SD-Karte ist es wichtig, auch ein Wiederherstellungsskript (Restore) zur Hand zu haben, falls Sie das System auf eine neue SD-Karte kopieren oder einen vorherigen Zustand wiederherstellen möchten. In diesem Beitrag erstellen wir ein Restore-Skript, das ähnlich wie das Backup-Skript interaktiv und sicher arbeitet.
Funktionen des Restore-Skripts
Das Restore-Skript bietet folgende Funktionen:
- Identifikation der SD-Karten: Listet verfügbare Laufwerke zur Auswahl auf.
- Benutzerabfragen und Sicherheitschecks: Warnt vor dem Löschen aller Daten auf der ausgewählten SD-Karte.
- Restore mit Fortschrittsanzeige: Entpackt und schreibt das Image auf die Karte.
- Protokollierung: Erstellt eine Logdatei des Wiederherstellungsvorgangs.
Restore-Skript
Hier ist das vollständige Restore-Skript:
#!/bin/bash
# Funktion, um verfügbare SD-Karten aufzulisten
list_sd_cards() {
echo "Verfügbare SD-Karten:"
lsblk -d -o NAME,SIZE,MODEL | grep -E "sd|mmc"
}
# Funktion zur Bestätigung vom Benutzer
confirm() {
while true; do
read -p "$1 [j/N]: " response
case "$response" in
[jJ]) return 0 ;;
*) return 1 ;;
esac
done
}
# SD-Karten auflisten
list_sd_cards
# Benutzer nach der SD-Karte fragen
read -p "Geben Sie den Gerätenamen der Ziel-SD-Karte ein (z. B. sdb): " sd_card
device="/dev/$sd_card"
# Überprüfen, ob das Gerät existiert
if [ ! -b "$device" ]; then
echo "Fehler: $device ist kein gültiges Gerät!"
exit 1
fi
# Benutzer warnen
echo "WARNUNG: Alle Daten auf $device werden gelöscht!"
if ! confirm "Sind Sie sicher, dass Sie fortfahren möchten?"; then
echo "Wiederherstellung abgebrochen."
exit 0
fi
# Benutzer nach der Backup-Datei fragen
read -p "Geben Sie den Pfad zur Backup-Datei ein (z. B. ./backups/zero1_backup_20240101_120000.img.gz): " backup_file
# Überprüfen, ob die Backup-Datei existiert
if [ ! -f "$backup_file" ]; then
echo "Fehler: Die Datei $backup_file existiert nicht!"
exit 1
fi
# Zielkarte auswerfen, um Schreibprobleme zu vermeiden
echo "Auswerfen von $device..."
sudo umount "${device}"* 2>/dev/null
# Benutzer um Bestätigung bitten
echo "Backup-Datei: $backup_file"
echo "Zielgerät: $device"
if ! confirm "Möchten Sie die Wiederherstellung starten?"; then
echo "Wiederherstellung abgebrochen."
exit 0
fi
# Wiederherstellung starten
restore_start=$(date "+%Y%m%d_%H%M%S")
log_file="./restore_${restore_start}.log"
echo "Wiederherstellung gestartet: $restore_start"
start_time=$(date +%s)
# Backup-Datei entpacken und auf SD-Karte schreiben
gunzip -c "$backup_file" | sudo dd of="$device" bs=1M status=progress conv=sparse
# Warte, bis der dd-Prozess abgeschlossen ist
wait
# Wiederherstellung prüfen
end_time=$(date +%s)
duration=$((end_time - start_time))
echo "Wiederherstellung erfolgreich abgeschlossen in $duration Sekunden!"
# Logdatei erstellen
echo "Wiederherstellung erfolgreich abgeschlossen" > "$log_file"
echo "Backup-Datei: $backup_file" >> "$log_file"
echo "Zielgerät: $device" >> "$log_file"
echo "Startzeit: $restore_start" >> "$log_file"
echo "Dauer: $duration Sekunden" >> "$log_file"
Wichtige Schritte im Skript
- Identifikation der SD-Karten
Mitlsblk
werden verfügbare Laufwerke angezeigt, um sicherzustellen, dass die richtige Karte ausgewählt wird:lsblk -d -o NAME,SIZE,MODEL | grep -E "sd|mmc"
- Sicherheitswarnung
Eine Sicherheitsabfrage verhindert das versehentliche Löschen von Daten auf der falschen SD-Karte:echo "WARNUNG: Alle Daten auf $device werden gelöscht!" if ! confirm "Sind Sie sicher, dass Sie fortfahren möchten?"; then exit 0 fi
- Backup entpacken und schreiben
Das komprimierte Backup wird entpackt und mitdd
auf die SD-Karte geschrieben. Die Optionstatus=progress
zeigt den Fortschritt an:gunzip -c "$backup_file" | sudo dd of="$device" bs=1M status=progress conv=sparse
- Logdatei
Eine Logdatei dokumentiert den Wiederherstellungsvorgang:echo "Wiederherstellung erfolgreich abgeschlossen" > "$log_file"
SD-Karten-Wiederherstellung leicht gemacht
Regelmäßige Backups sind essenziell, aber ebenso wichtig ist die Möglichkeit, diese Backups bei Bedarf schnell und sicher wiederherzustellen. In diesem Beitrag zeigen wir Ihnen, wie Sie mit einem einfachen Bash-Skript Ihre Raspberry Pi SD-Karten zuverlässig wiederherstellen können.
Warum ein Restore-Skript?
Ein automatisiertes Restore-Skript sorgt für:
- Sicherheit: Es warnt vor potenziellen Datenverlusten.
- Effizienz: Mit Fortschrittsanzeigen und automatisierten Abläufen spart es Zeit.
- Protokollierung: Eine Logdatei dokumentiert den Vorgang, was besonders in produktiven Umgebungen hilfreich ist.
Einrichtung und Nutzung
- Skript vorbereiten
Kopieren Sie das oben angegebene Skript auf Ihren Server und machen Sie es ausführbar:chmod +x restore_script.sh
- Restore starten
Führen Sie das Skript aus:./restore_script.sh
Folgen Sie den interaktiven Anweisungen, um die Ziel-SD-Karte und die Backup-Datei auszuwählen. - Wiederherstellung überwachen
Das Skript zeigt während der Wiederherstellung den Fortschritt an. Nach Abschluss wird eine Logdatei erstellt.
Mit diesem Restore-Skript können Sie Ihre Raspberry Pi SD-Karten schnell und sicher wiederherstellen. Die interaktive Benutzerführung und die Sicherheitsabfragen machen den Prozess benutzerfreundlich und verhindern versehentliche Datenverluste. Zusammen mit dem zuvor vorgestellten Backup-Skript haben Sie ein zuverlässiges Toolkit für Ihre Raspberry Pi-Projekte.