Der Befehl dd kopiert und konvertiert Dateien, damit sie von einem Medientyp auf einen anderen übertragen werden können. Der dd-Befehl muss verschiedene Operanden oder Aktionen ausführen.
Operand | Früher |
---|---|
if={Dateiname} | Geben Sie die Datei an, aus der Daten gelesen werden. |
of={Dateiname} | Geben Sie die Datei an, in die Daten geschrieben werden. |
bs={bytes} | Geben Sie die Gesamtblockgröße zum Lesen und Schreiben in Byte an. Bytes können auch menschenfreundlicher formatiert werden, z. B. 50M, um 50 Megabyte anzugeben, und 10G, um 10 Gigabyte anzugeben. |
count={blocks} | Geben Sie die Anzahl der Blöcke an, die von der Eingabedatei in die Ausgabedatei geschrieben werden sollen. |
status={level} | Geben Sie die Informationsebene an, die als Standardfehler gedruckt werden soll – keine um alles außer Fehlermeldungen zu unterdrücken, noxfer um die Gesamtübertragungsstatistik zu unterdrücken, Fortschritt um regelmäßig Übertragungsstatistiken anzuzeigen. |
Syntax
Die Syntax des dd-Befehls lautet:
# dd [options] [operands]
Verwenden von dd für Backups
Sie können dd verwenden, um eine vollständige Sicherung einer Speicherpartition durchzuführen. Das folgende Beispiel kopiert Daten von /dev/sda1 nach /dev/sdb2:
# dd if=/dev/sda of=/dev/sdb
Mit dd können Sie auch ein Image eines Laufwerks erstellen und damit ein zweites Laufwerk klonen:
# dd if=/dev/sda of=drive_image.iso # dd if=drive_image.iso of=/dev/sdb
dd-Befehlsbeispiele
1. So kopieren Sie eine Datei:
# dd if=old.txt of=old.txt
2. Um bestimmte Bytes einer Datei gleichzeitig zu lesen und zu schreiben:
# dd bs=1024 if=old.txt of=old.txt
3. So konvertieren Sie eine Datei in ein bestimmtes Format:
# dd bs=1024 if=old.txt of=new.txt conv=ascii (from EBCDIC to ASCII) # dd bs=1024 if=old.txt of=new.txt conv=ebcdic (from ASCII to EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=ibm (from ASCII to alternate EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=block (pad oldline-terminated records with spaces to cbs-size) # dd bs=1024 if=old.txt of=new.txt conv=unblock (replace trailing spaces in cbs-size records with oldline) # dd bs=1024 if=old.txt of=new.txt conv=lcase (change upper case to lower case) # dd bs=1024 if=old.txt of=new.txt conv=excl (fail if the output old already exists) # dd bs=1024 if=old.txt of=new.txt conv=notrunc (do not truncate the output old) # dd bs=1024 if=old.txt of=new.txt conv=ucase (change lower case to upper case) # dd bs=1024 if=old.txt of=new.txt conv=swab (swap every pair of input bytes) # dd bs=1024 if=old.txt of=new.txt conv=noerror (continue after read errors) # dd bs=1024 if=old.txt of=new.txt conv=sync (pad every input block with NULs to ibs-size) # dd bs=1024 if=old.txt of=new.txt conv=fdatasync (physically write output old data before finishing) # dd bs=1024 if=old.txt of=new.txt conv=fsync (likewise, but also write metadata)
4. Um nur eine bestimmte Anzahl von Blöcken zu kopieren:
# dd count=1024 if=old.txt of=new.txt
5. So kopieren Sie eine Datei mit Angabe eines Flags:
# dd if=old.txt of=new.txt oflag=append # dd if=old.txt iflag=directory of=new.txt oflag=directory # dd if=old.txt iflag=noatime of=new.txt oflag=append
6. So konvertieren Sie bestimmte Bytes auf einmal:
# dd cbs=1024 if=old.txt of=new.txt
7. Um eine bestimmte Anzahl von Bytes gleichzeitig zu lesen:
# dd ibs=1024 if=old.txt of=new.txt
8. Um eine bestimmte Anzahl von Bytes auf einmal zu schreiben:
# dd obs=1024 if=old.txt of=new.txt
9. Um eine bestimmte Anzahl von Blöcken am Anfang von o/p zu überspringen:
# dd seek=1024 if=old.txt of=new.txt
10. Um eine bestimmte Anzahl von Blöcken am Anfang von i/p zu überspringen:
# dd skip=1024 if=old.txt of=new.txt
11. So unterdrücken Sie die Übertragungsstatistik:
# dd status=noxfer if=old.txt of=new.txt
12. So löschen Sie die Partitionstabelle für ein Gerät:
# dd if=/dev/zero of=/dev/sda4 bs=512 count=1