Blockbasierte Linux-Systemkopie über SSH mit dd und pv

Nachfolgend wird ein bewährtes Verfahren beschrieben, um ein Linux-System mithilfe von dd über eine SSH-Verbindung auf ein anderes System zu übertragen. Dieser Ansatz eignet sich insbesondere für Systeme, bei denen die vollständige Festplattenstruktur einschließlich Partitionstabelle, Bootloader, Dateisystemen, LVM, verschlüsselten Containern oder anderen nicht trivialen Konfigurationen unverändert übernommen werden soll. Da die Übertragung auf Blockebene erfolgt, wird keine Dateisysteminterpretation benötigt. Die Methode stellt daher eine zuverlässige und originalgetreue 1:1-Kopie sicher und bietet ein hohes Maß an Reproduzierbarkeit, beispielsweise für Backup-, Migrations- oder Notfallwiederherstellungszwecke.
Beide Systeme werden dabei in einem Live-Betrieb betrieben, sodass die zu klonenden Datenträger während des Vorgangs nicht eingebunden sind und keine Dateizugriffe stattfinden, die das Ergebnis beeinflussen könnten.


1. Vorbereitung des Quellsystems

  1. Start über ein Live-Linux: Das Quellsystem wird über ein Live-Linux wie Debian Live, Ubuntu Live oder SystemRescue gebootet.
  2. Terminal starten: Ein Terminalfenster wird geöffnet.
  3. Ermittlung der Quellfestplatte:

Beispielausgabe:

In diesem Beispiel stellt /dev/sda das gesamte Quelllaufwerk dar.

  1. Installation des Werkzeugs pv, falls nicht vorhanden


2. Vorbereitung des Zielsystems

Das Zielsystem wird ebenfalls über ein Live-Linux gestartet. Um die Daten auf dem Zielsystem direkt über SSH auf das Blockdevice des Zielsystems schreiben zu können, wird ein aktiver root Account und das Paket openssh-server auf dem Zielsystem benötigt.

  1. Setzen eines Root-Passworts

  1. Installation des SSH-Servers und SSH root Login erlauben

  1. Ermittlung der IP-Adresse

Beispiel:

  1. Identifikation des Zielmediums

Beispiel:


3. Übernahme des SSH-Host-Keys auf dem Quellsystem (optional)


4. Automatische Größenbestimmung für pv

Zur exakten Anzeige von Fortschritt, Geschwindigkeit und ETA wird die Größe des Quelllaufwerks automatisch ermittelt:


5. Klonvorgang mit dd, SSH und pv

Auf dem Quellsystem ausführen (Blockdevicepfad DISK anpassen):

Dieser Befehl überträgt das Quelllaufwerk vollständig inklusive Partitionstabelle, Bootloader und allen Daten sektorweise auf das Zielmedium.

Skript mit Parameterabfrage:

  • bs=128M
    – Blockgröße für Lese- und Schreibvorgänge: 128 MiB
    – Reduziert I/O-Operationen, steigert Datendurchsatz im Vergleich zu Standardgröße (512 B)
  • status=none
    – Unterdrückt dd-eigene Ausgabe
    – Ermöglicht saubere Fortschrittsanzeige durch pv
  • status=progress
    – Zeigt laufend die Anzahl der bisher übertragenen Bytes an
    – Optional ergänzt durch blockweise Fortschrittsanzeigen
    – Nützlich, wenn pv nicht verwendet wird oder zusätzlich sichtbar sein soll
    – Wird meist auf dem Zielsystem bei dd of=... eingesetzt, während auf der Quellseite status=none die Ausgabe unterdrückt wird, damit pv die Anzeige übernimmt
  • pv -tpreb – Fortschrittsanzeige während der Übertragung:
    -t → Laufende Zeit
    -p → Fortschritt in Prozent
    -r → Aktuelle Datentransferrate
    -e → Voraussichtliche Restzeit (ETA)
    -b → Übertragene Bytes

CC_BY_NC_SAby Speefak

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top