Sicherung und Wiederherstellung von Bildern mit dd

Was ist dd?

Der Befehl dd ist ein Dienstprogramm zum Kopieren und Konvertieren von Dateien, das in den meisten Unix-ähnlichen Betriebssystemen verwendet wird. Es kann für Aufgaben wie das Erstellen von Datensicherungen, das Klonen von Festplatten, das Erstellen von Partitions-Images und mehr verwendet werden. Bei der Verwendung von dd ist jedoch Vorsicht geboten, da eine unsachgemäße Verwendung zu Datenverlusten führen kann.

Hier ist die grundlegende Syntax des dd-Befehls:

dd if=Eingabedatei of=Ausgabedatei [Optionen]

Wobei:
- if (Eingabedatei) gibt die Eingabedatei oder Datenquelle an.
- of (Ausgabedatei) gibt die Ausgabedatei oder das Ziel für die Daten an.

Im Folgenden sind einige gängige Optionen und Parameter von dd aufgeführt:

1. bs (Blockgröße): Legt die Größe des Datenblocks fest. Zum Beispiel setzt bs=4K die Blockgröße auf 4 Kilobytes.
2. count: Gibt die Anzahl der zu kopierenden Blöcke an. Zum Beispiel kopiert count=100 100 Datenblöcke.
3. iflag und oflag: Optionen zur Steuerung von Eingabe- und Ausgabeflags. Beispielsweise kann iflag=direct verwendet werden, um Daten direkt zu lesen und den Cache des Betriebssystems zu umgehen.
4. seek und skip: Optionen zum Verschieben des Zeigers auf die Ein- oder Ausgabedatei, um den Kopiervorgang an einer bestimmten Stelle zu beginnen oder zu beenden.
5. Status: Option zur Anzeige von Informationen über den Fortschritt des Kopiervorgangs.
6. conv (Konvertierung): Ermöglicht verschiedene Datenkonvertierungen, wie z.B. das Ändern der Groß- und Kleinschreibung (conv=ucase oder conv=lcase), das Löschen von Zeichen (conv=sync) und mehr.
7. iflag und oflag: Mit diesen Optionen können Sie Flags für Eingabe- (iflag) und Ausgabedaten (oflag) konfigurieren. Direkt kann beispielsweise verwendet werden, um Daten direkt ohne Pufferung zu lesen oder zu schreiben.
8. status: Diese Option ermöglicht die Anzeige von Informationen über den Fortschritt des Kopiervorgangs.
9. Suchen und Überspringen: Ermöglichen es Ihnen, den Zeiger der Ein- oder Ausgabedatei zu verschieben, um den Kopiervorgang an einer bestimmten Stelle zu beginnen.

Im Folgenden werden Beispiele für die Verwendung von dd zum Kopieren von Dateien und Verzeichnissen auf einen entfernten Cloud-Speicher von Introserv unter Verwendung des SSH-Protokolls und des Befehls rsync gezeigt. Außerdem wird das Beispiel die Sicherung und Wiederherstellung eines Systemabbilds unter Verwendung einer dritten Festplatte demonstrieren. Wichtiger Hinweis: Mit ähnlichen Befehlen und der Angabe eines Zielservers können Sie Verzeichnisse und Dateien über SSH auf einen beliebigen Remote-Server kopieren. Außerdem werden wir aus Gründen der Datenintegrität ein "Wiederherstellungsimage" namens Finnix verwenden.

Erstellen eines Backups des Systemabbilds

1. ein Backup erstellen:

Vorbereitungen:
1. Laden Sie Finnix von https://www.finnix.org auf Ihren Computer herunter.
2. Schließen Sie das ISO-Abbild über IP-KVM an.
3. Booten Sie den Server von dem Finnix-ISO-Image.

2.mit Finnix arbeiten

Wir werden zwei Methoden untersuchen, von denen eine mit dem Cloud Storage von Introserv möglich ist .

Um einen entfernten Dateispeicher (Cloud Storage) über SSH zu mounten, empfehlen wir die Verwendung eines Tools wie SSHFS (SSH File System), mit dem Sie entfernte Verzeichnisse auf Ihrem lokalen Computer über das SSH-Protokoll verbinden können. Hier ist die Anleitung dazu:

2.1. Installieren Sie SSHFS.

Da es in Finnix bereits installiert ist, wird dieser Schritt nicht ausgeführt.

sudo apt-get install sshfs

2.2. Erstellen Sie ein lokales Verzeichnis, in das Sie den entfernten Ordner mounten möchten.

Zum Beispiel:

sudo mkdir -p /root/mnt/backup

Sicherung und Wiederherstellung von Bildern mit dd

Dieser Befehl erstellt die erforderliche Verzeichnisstruktur, einschließlich fehlender übergeordneter Verzeichnisse (Flag -p).

2.3. Mounten Sie das entfernte Verzeichnis über SSHFS:

Sicherung und Wiederherstellung von Bildern mit dd

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup/

- box*****: Der SSH-Benutzername auf dem entfernten Server.
- Box*****.introserv.cloud: Die IP-Adresse oder der Hostname des entfernten Servers.
- /backups: Der Pfad zu dem Verzeichnis auf Cloudstorage.
- ~/remote_mount: Der Pfad zum lokalen Verzeichnis, das wir oben erstellt haben und in das wir unseren Remote-Ordner von Cloudstorage einhängen wollen.

Das System fragt nach dem Passwort, das Sie in den Auftragsdetails im Abschnitt Backup finden.

2.4. Überprüfen Sie unseren Netzwerkordner.

Sicherung und Wiederherstellung von Bildern mit dd

2.5. Um ein Backup Ihres Systems zu erstellen, verwenden Sie den folgenden Befehl:

Sicherung und Wiederherstellung von Bildern mit dd

dd if=/dev/sda of=/root/mnt/backup/sda.ing bs=8M conv=sync,noerror

2 Methode ist über eine dritte Festplatte oder einen anderen externen Speicher möglich

2.1 Bestimmen Sie die Festplatte, auf der das Hauptsystem installiert ist (in diesem Fall Ubuntu)

In diesem Fall ist es die sda.

Sicherung und Wiederherstellung von Bildern mit dd

2.2 Hängen Sie auch den Ordner für das externe Laufwerk ein, damit Sie das Backup-Image dort ablegen können.

Um das erstellte Dateisystem in das Verzeichnis /mnt/ einzuhängen, führen Sie die folgenden Befehle aus:

sudo mount /dev/sdX /mnt/папка # ersetzen Sie sdX durch das spezifische Gerät oder die Partition (in diesem Fall haben wir sdb)

Sicherung und Wiederherstellung von Bildern mit dd
Sicherung und Wiederherstellung von Bildern mit dd

Um ein Backup Ihrer Festplatte zu erstellen, verwenden Sie den folgenden Befehl:

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

- if=/dev/sda - kopiert die gesamte Festplatte sda;
- of=/mnt/backup/sda.img - kopiert nach /mnt/backup/sda.img, wobei das Verzeichnis /mnt/backup der Einhängepunkt der Festplatte ist, die das Abbild enthalten wird;
- bs=8M - legt die Größe des Festplatten-Caches fest, um den Kopiervorgang zu beschleunigen (andernfalls werden die Daten in kleinen Stapeln von 512 Byte geleert);
- conv=sync,noerror - weist dd an, Bit für Bit zu kopieren und Fehler zu ignorieren.

Wiederherstellung einer Systemsicherung auf einem anderen Server oder einer anderen Festplatte

1. Anschließen des Rettungsimages

  • Schließen Sie das ISO-Abbild über IP-KVM an.
  • Starten Sie den Server mit dem Finnix-ISO-Abbild neu.

2. Arbeiten mit Finnix

Wie bei der Sicherung gibt es auch hier zwei Möglichkeiten, CloudStorage zu nutzen:

2.1. Erstellen Sie ein lokales Verzeichnis, in das Sie den Remote-Ordner mounten möchten. Zum Beispiel:

Sicherung und Wiederherstellung von Bildern mit dd

sudo mkdir -p /root/mnt/backup

2.2. Mounten Sie das entfernte Verzeichnis über SSHFS:

Sicherung und Wiederherstellung von Bildern mit dd

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup

Das System fragt nach einem Passwort, das Sie in den Auftragsdetails unter dem Abschnitt Backup finden.

Überprüfen Sie auch, ob der Ordner gemountet ist.

ls -l /root/mnt/backup/

2.3. Suchen Sie das Image mit der Signatur sda.img auf unserem angeschlossenen Netzlaufwerk.

Sicherung und Wiederherstellung von Bildern mit dd

Um Ihr System von einem Backup wiederherzustellen, verwenden Sie den folgenden Befehl:

dd if=/root/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

2.4. Danach booten wir im BIOS neu

Legen Sie die Festplatte, auf der wir das System installiert haben, als Boot-Priorität fest, starten Sie neu und versuchen Sie, das System zu starten.

Sicherung und Wiederherstellung von Bildern mit dd

Betrachten wir auch die Bereitstellung eines Systemabbilds auf einer dritten Festplatte oder einem anderen Speicher:

2.1. Перезеграужаемся в Finniх.

Mounten Sie den Netzwerkspeicher oder die Festplatte mit dem Image mit dem Befehl sudo mount /dev/external_network_disk_or_storage /mnt/folder_for_mounting.

Sicherung und Wiederherstellung von Bildern mit dd

Suchen Sie das Image, das mit sda.img signiert ist.

Sicherung und Wiederherstellung von Bildern mit dd

Um Ihr System aus einem Backup wiederherzustellen, verwenden Sie den folgenden Befehl:

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

Danach booten wir im BIOS neu und stellen die Festplatte, auf der wir das System installiert haben, als Boot-Priorität ein, booten neu und versuchen, das System zu starten.