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