dd

(Last Updated On: 17. März 2016)

dd dient zum bit-genauen Kopieren von Festplatten, Partitionen oder Dateien. „Bit-genaues“ Kopieren bedeutet, dass der Datenträger Bit-für-Bit bzw. Byte-für-Byte ausgelesen und beschrieben wird, unabhängig von dessen Inhalt und Belegung. dd funktioniert grundsätzlich mit allen Dateisystemen auf die Ubuntu / Linux zugreifen kann (z.B. ext2/3, reiserfs, vfat, ntfs etc.). Es funktioniert auch mit CD/DVD-Dateisystemen, allerdings nur für Daten-CDs/DVDs.

Verwendung: dd [OPERAND…]
oder: dd OPTION
Kopieren einer Datei, Konvertierung und Formatierung gemäß der Operanden.

bs=BYTES BYTES Bytes auf einmal lesen und schreiben (siehe ibs=,obs=)
cbs=BYTES BYTES Bytes auf einmal konvertieren
conv=CONV Datei gemäß kommagetrennter Schlüsselwörter‐Liste konvertieren
count=N nur N Eingabeblöcke kopieren
ibs=BYTES Lesen von BYTES Bytes auf einmal (Voreinstellung: 512)
if=DATEI aus DATEI statt von der Standardeingabe lesen
iflag=FLAGS anhand der kommagetrennten Symbolliste lesen
obs=BYTES BYTES Bytes auf einmal schreiben (Voreinstellung: 512)
of=DATEI in DATEI statt in die Standardausgabe schreiben
oflag=FLAGS anhand der kommagetrennten Symbolliste schreiben
seek=N N obs‐große Blöcke am Anfang der Ausgabe überspringen
skip=N N ibs‐große Blöcke am Anfang der Eingabe überspringen
status=WELCHE WELCHE Info nicht auf dem Standardfehlerkanal ausgegeben
werden soll. „noxfer“ unterdrückt die übertragungsstatistik
und „none“ alle Ausgaben

N und BYTES können folgende multiplikative Endungen tragen:
c=1, w=2, b=512, kB=1000, K=1024, MB=1000×1000, M=1024×1024, xM=M
GB=1000×1000×1000, G=1024×1024×1024, und so weiter für T, P, E, Z, Y.

Jedes CONV‐Symbol kann sein:

ascii von EBCDIC in ASCII
ebcdic von ASCII in EBCDIC
ibm von ASCII in alternatives EBCDIC
block mit Zeilenumbrüchen terminierte Datensätzen durch
Leerzeichen bis zur cbs‐Größe auffüllen
unblock nachlaufende Leerzeichen in Datensätzen von
cbs‐Größe mit Zeilenumbrüchen ersetzen
lcase Großbuchstaben in Kleinbuchstaben ändern
ucase Kleinbuchstaben in Großbuchstaben ändern
swab Jedes Paar von Eingabebytes vertauschen
sync jeden Eingabeblock mit NULLen zur ibs‐Größe auffüllen; wenn mit
„block“ oder „unblock“ benutzt, stattdessen mit Leerzeichen
excl scheitert, wenn das auszugebende Byte bereits existiert
nocreat Die Ausgabedatei wird nicht erzeugt
notrunc Die Ausgabedatei wird nicht abgeschnitten
noerror nach Lesefehlern fortfahren
fdatasync vor Beendigung Ausgabedatendatei physisch schreiben
fsync genauso, zusätzlich auch die Metadaten

Jedes Symbol FLAG kann sein:

append Anfügemodus (nur für Ausgabe sinnvoll; conv=notrunc empfohlen)
direct direkte Ein‐/Ausgabe für Daten benutzen
directory abbrechen, wenn kein Verzeichnis
dsync synchronisierte Ein‐/Ausgabe für Daten benutzen
sync genauso, aber auch für Metadaten
fullblock volle Eingabeblöcke ansammeln (nur iflag)
nonblock nicht‐blockierende Ein‐/Ausgabe benutzen
noatime die Zugriffszeit nicht erneuern
nocache zwischengespeicherte Daten verwerfen
noctty das kontrollierende Terminal nicht von Datei zuweisen
nofollow symbolischen Verknüpfungen nicht folgen
count_bytes behandelt „count=N“ als einen Byte-Zähler (nur iflag)
skip_bytes behandelt „skip=N“ als einen Byte-Zähler (nur iflag)
seek_bytes behandelt „seek=N“ als einen Byte-Zähler (nur iflag)

Schickt man einem laufenden „dd“‐Prozess ein USR1‐Signal, gibt dieser
auf der Standardfehlerausgabe Eingabe‐/Ausgabe‐Statistiken aus und fährt
mit dem Kopieren fort.

$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 Datensätze ein
18335302+0 Datensätze aus
9387674624 Bytes (9,4 GB) kopiert, 34,6279 Sekunden, 271 MB/s

Optionen sind:

–help diese Hilfe anzeigen und beenden
–version Versionsinformation anzeigen und beenden

GNU coreutils Onlinehilfe:
Melden Sie Übersetzungsfehler für dd an Full documentation at:
or available locally via: info ‚(coreutils) dd invocation‘

Siehe auch httpss://wiki.ubuntuusers.de/dd/

(12)


History

Schreibe einen Kommentar

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