Übersicht
dd steht angeblich für 'disk dump' oder 'data duplicator' und arbeitet, indem es Daten blockweise liest und schreibt. Es liest Daten aus einer Eingabedatei (if) und kopiert sie in eine Ausgabedatei (of), wobei verschiedene Konvertierungs- (conv) und Blockgrößen- (bs) Optionen angewendet werden können.
Hauptfunktionen
- Erstellung und Wiederherstellung von Disk-/Partitions-Images
- Erstellung von bootfähigen Medien
- Änderung der Dateigröße und Initialisierung des Inhalts
- Datenkonvertierung (z. B. Groß-/Kleinschreibung)
Wichtige Optionen
Der Befehl dd ermöglicht eine präzise Datenmanipulation durch verschiedene Optionen. Insbesondere die Angabe der Eingabe- (if) und Ausgabedatei (of) ist wichtig, und Sie steuern den Umfang der Operation durch die Blockgröße (bs) und die Anzahl der zu kopierenden Blöcke (count).
Eingabe-/Ausgabe-Spezifikation
Blockgröße und Anzahl
Konvertierung und Status
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`dd` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Der Befehl dd ist leistungsstark, aber eine falsche Verwendung kann zu schwerem Datenverlust führen. Die folgenden Beispiele zeigen gängige Verwendungszwecke, aber wenn Sie sie auf tatsächliche Systemfestplatten anwenden, stellen Sie unbedingt sicher, dass Sie zuerst ein Backup erstellen und mit Vorsicht vorgehen.
Erstellung einer 100MB Dummy-Datei
dd if=/dev/zero of=dummy.img bs=1M count=100
Liest 100 Blöcke von 1MB aus /dev/zero und erstellt die Datei 'dummy.img'.
Sicherung einer Festplattenpartition (Vorsicht geboten)
dd if=/dev/sda1 of=sda1_backup.img bs=4M status=progress
Sichert den gesamten Inhalt der Partition /dev/sda1 in die Datei 'sda1_backup.img'. Zeigt den Fortschritt mit 'status=progress' an. **Überprüfen Sie den Zielgerätepfad sehr sorgfältig.**
Dateiinhalte mit Nullen überschreiben (sicheres Löschen)
dd if=/dev/zero of=myfile.txt bs=1M count=1 conv=notrunc
Überschreibt den Inhalt der vorhandenen Datei 'myfile.txt' mit Nullen. 'conv=notrunc' behält die Dateigröße bei.
Erstellung eines bootfähigen USB-Laufwerks aus einem ISO-Image (sehr vorsichtig)
dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync
Kopiert die Datei 'ubuntu.iso' auf das USB-Laufwerk '/dev/sdb', um es bootfähig zu machen. **Stellen Sie sicher, dass der für 'of' angegebene Gerätepfad korrekt ist. Eine falsche Angabe kann zu Schäden an der Systemfestplatte führen.** 'conv=fsync' stellt sicher, dass alle Daten vollständig auf die Festplatte geschrieben werden.
Kopieren eines Teils einer Datei
dd if=input.txt of=output.txt bs=1 count=100 skip=50 seek=0
Liest 100 Bytes ab dem 51. Byte der Datei 'input.txt' und kopiert sie an den Anfang der Datei 'output.txt'. (Da bs=1, sind skip/seek in Bytes)
Tipps & Vorsichtsmaßnahmen
Der Befehl dd ist sehr leistungsstark und erfordert bei der Verwendung besondere Vorsicht. Insbesondere die Angabe falscher Geräte oder Dateien für die Optionen `if` und `of` kann zu Schäden an den Systemdaten führen.
Wichtige Vorsichtsmaßnahmen
- **Ziel überprüfen**: Überprüfen Sie die für `if` und `of` angegebenen Pfade mehrmals. Insbesondere Gerätedateien wie `/dev/sda` können kritisch sein.
- **Fortschritt anzeigen**: Verwenden Sie die Option `status=progress`, um den Fortschritt der Operation in Echtzeit zu verfolgen. Dies ist bei großen Operationen nützlich.
- **Blockgröße**: Die Option `bs` hat einen erheblichen Einfluss auf die Leistung. Im Allgemeinen sind 1M, 4M oder 8M effizient.
- **Risiko von Datenverlust**: `dd` kann Daten ohne Warnung überschreiben. Führen Sie daher immer zuerst ein Backup durch, wenn Sie es auf Festplatten oder Partitionen mit wichtigen Daten verwenden.
Verwendung mit dem pv-Befehl
Der Befehl `dd` selbst hat eine begrenzte Fortschrittsanzeige. Durch die gemeinsame Verwendung mit dem Befehl `pv` (Pipe Viewer) können Sie detailliertere Fortschrittsinformationen, Übertragungsgeschwindigkeiten und geschätzte Abschlusszeiten anzeigen. Wenn `pv` nicht installiert ist, müssen Sie es zuerst installieren. (z. B. `sudo apt install pv` oder `sudo yum install pv`) **Anwendungsbeispiel:** `dd if=/dev/sda | pv -pteb | dd of=/dev/sdb`