dd – Umwandeln und Kopieren einer Datei

Inhaltsverzeichnis

Der dd-Befehl ist ein fundamentales Tool in jeder Linux-Umgebung, das du als Systemadministrator beherrschen musst, um Datensicherungen, Festplattenklone oder Bootmedien zu erstellen. Besonders relevant wird er in Zertifizierungen wie der LPIC-RHCSA, wo du mit Blockgeräten und Dateisystemen umgehen musst.

Grundlagen des dd-Befehls

Der dd-Befehl kopiert Daten bitgenau von einem Eingabemedium (if= engl. input file) zu einem Ausgabemedium (of= engl. output file) und erlaubt Konvertierungen auf niedriger Ebene. Du nutzt ihn typischerweise mit sudo-Rechten, da er auf Blockgeräte wie /dev/sda zugreift.

DIe Syntax lautet:

 dd if=[Eingabe] of=[Ausgabe] [Optionen]

Er ist extrem mächtig, aber gefährlich – ein falsches Ziel kann deine Daten unwiderruflich löschen, daher immer doppelt prüfen.

Wichtige Optionen im Detail

Du steuerst dd durch Parameter wie Blockgröße oder Statusanzeige, die die Effizienz und Sicherheit verbessern.

bs=[Blockgröße]: Legt die Blockgröße für Lesen und Schreiben fest, z. B. bs=4M für 4 Megabyte. Das beschleunigt Transfers erheblich, da dd sonst mit der Standardgröße von 512 Bytes arbeitet, was langsam ist. Verwende Werte wie 1M oder 4M je nach Hardware.

sudo dd if=/dev/zero of=testfile bs=1M count=100 status=progress

status=progress: Zeigt den Fortschritt in Echtzeit an, inklusive transferierter Bytes und Geschwindigkeit. Das ist essenziell für lange Operationen, damit du den Status verfolgen kannst, ohne separate Tools wie pv zu brauchen.

sudo dd if=image.iso of=/dev/sdb bs=4M status=progress

count=[Anzahl]: Begrenzt die kopierten Blöcke, z. B. count=100 für genau 100 Blöcke. So vermeidest du, ein ganzes Gerät zu überschreiben, und kopierst nur Teile einer Partition.

sudo dd if=/dev/sda of=partition.img bs=1M count=500

conv=noerror,sync: Ignoriert Lese-Fehler (noerror) und paddet mit Nullen (sync). Ideal beim Klonen defekter Festplatten, da der Prozess nicht abbricht.

sudo dd if=/dev/sda of=backup.img conv=noerror,sync bs=64K status=progress

seek=[Blöcke] und skip=[Blöcke]: Überspringt Blöcke am Anfang der Ausgabe (seek) oder Eingabe (skip). Nützlich, um z. B. nach dem MBR Daten zu schreiben, ohne den Bootloader zu überschreiben.

sudo dd if=daten.img of=/dev/sda seek=1 bs=1M

Praktische Anwendungsbeispiele

Du verwendest dd häufig für Backups, Klonen oder Datenlöschung in der täglichen Sysadmin-Arbeit.

Zuerst erstellst du ein Image einer Partition: Das kopiert /dev/sda1 vollständig in eine Datei, die du später wiederherstellen kannst.

sudo dd if=/dev/sda1 of=backup_sda1.img bs=4M status=progress

Zum Wiederherstellen kehrst du Eingabe und Ausgabe um – immer mit status=progress überwachen.

sudo dd if=backup_sda1.img of=/dev/sda1 bs=4M status=progress

Festplattenklonen erfordert identische Größen oder conv-Optionen für Fehlerbehandlung: Kopiere sda auf sdb für schnelle Migrationen.

sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress

Datenlöschung mit /dev/zero füllt das Gerät mit Nullen – sicherer als rm für Forensik.

sudo dd if=/dev/zero of=/dev/sdc bs=1M status=progress

Bootfähigen USB aus ISO machen: Ersetze /dev/sdb durch dein USB-Gerät (prüfe mit lsblk!).

sudo dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync

Häufige Fallstricke und Best Practices

Du vermeidest Fehler, indem du immer lsblk oder fdisk -l prüfst, bevor du dd startest – Gerätenamen können sich ändern. Kombiniere mit pv für noch bessere Fortschrittsanzeige: pv /dev/sda | sudo dd of=backup.img bs=1M. Teste Images mit mount oder file, und nutze sync danach, um Puffer zu leeren.

Zusammenfassung

Der dd-Befehl ist dein Go-to-Tool für low-level Datentransfers in Linux, von Backups bis Klonen, und essenziell für RHCSA-Tasks mit Blockgeräten. Du lernst durch Übung mit Optionen wie bs, status und conv, immer vorsichtig mit Gerätenamen umzugehen. Meistere ihn, und du sparst Stunden bei Migrationen oder Recovery.

Schreibe einen Kommentar

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

Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

230 Beiträge
14 Folgende