Dd: Unterschied zwischen den Versionen
K Textersetzung - „»“ durch „''“ |
K Textersetzung - „line>“ durch „line copy>“ |
||
Zeile 23: | Zeile 23: | ||
; Backup | ; Backup | ||
Diese Eigenschaft erlaubt es, Dateien beliebiger Dateisysteme zu sichern, selbst wenn Linux diese nicht lesen kann | Diese Eigenschaft erlaubt es, Dateien beliebiger Dateisysteme zu sichern, selbst wenn Linux diese nicht lesen kann | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo dd if=QUELLE of=ZIEL [OPTIONEN] | sudo dd if=QUELLE of=ZIEL [OPTIONEN] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 31: | Zeile 31: | ||
* Werden keine weiteren Optionen angegeben, so werden alle Daten aus QUELLE gelesen | * Werden keine weiteren Optionen angegeben, so werden alle Daten aus QUELLE gelesen | ||
* Handelt es sich bei QUELLE um eine Partition, wird deren gesamter Inhalt kopiert | * Handelt es sich bei QUELLE um eine Partition, wird deren gesamter Inhalt kopiert | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo dd if=/dev/sda of=/dev/sdc | sudo dd if=/dev/sda of=/dev/sdc | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 47: | Zeile 47: | ||
* Um bspw. den Masterbootsektor (Mbr) der ersten Festplatte in eine Datei zu schreiben, könnte man folgenden Aufruf verwenden | * Um bspw. den Masterbootsektor (Mbr) der ersten Festplatte in eine Datei zu schreiben, könnte man folgenden Aufruf verwenden | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo dd if=/dev/sda of=/tmp/mbr.save bs=512 count=1 | sudo dd if=/dev/sda of=/tmp/mbr.save bs=512 count=1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 53: | Zeile 53: | ||
Um jetzt den Superblock (1 k groß) der ersten Partition zu sichern, müssen sowohl Mbr als auch der 512 Bytes lange Bootsektor (also zwei Blöcke) übersprungen werden | Um jetzt den Superblock (1 k groß) der ersten Partition zu sichern, müssen sowohl Mbr als auch der 512 Bytes lange Bootsektor (also zwei Blöcke) übersprungen werden | ||
* Hierzu verwendet man die Option skip=ANZAHL | * Hierzu verwendet man die Option skip=ANZAHL | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo dd if=/dev/sda of=/dev/superblock.save bs=512 count=2 skip=2 | sudo dd if=/dev/sda of=/dev/superblock.save bs=512 count=2 skip=2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Wenn dd seine Arbeit verrichtet hat, gibt es eine Statistik aus | Wenn dd seine Arbeit verrichtet hat, gibt es eine Statistik aus | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
3385223+0 records in | 3385223+0 records in | ||
3385223+0 records out | 3385223+0 records out | ||
Zeile 65: | Zeile 65: | ||
Mit Hilfe des Signals SIGUSR1(10) kann dd auch während der Arbeit eine Statistik ausgeben | Mit Hilfe des Signals SIGUSR1(10) kann dd auch während der Arbeit eine Statistik ausgeben | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
# kill -10 $pid | # kill -10 $pid | ||
# dd if=/dev/zero of=/dev/null count=10MB & pid=$! | # dd if=/dev/zero of=/dev/null count=10MB & pid=$! | ||
Zeile 74: | Zeile 74: | ||
== Aufruf == | == Aufruf == | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
dd [Option] if=Inputfile of=Outputfile | dd [Option] if=Inputfile of=Outputfile | ||
</syntaxhighlight> | </syntaxhighlight> |
Aktuelle Version vom 11. Mai 2025, 13:43 Uhr
dd - Datei blockweise lesen und schreiben
Beschreibung
dd (disk dump) - Bit-genaue Kopie einer Datei
- Dateien jeder Art
- Datenträger
- Partition
- Bit-Genau
Bit-für-Bit bzw. Byte-für-Byte
- ausgelesen
- geschrieben
unabhängig von Inhalt oder Belegung
- Flexiebles Werkzeug
Diskdump ist ein flexiebles Werkzeug
- ab einem bestimmten Startpunkt eine bestimmte Menge roher Daten liest
- diese 1:1 in eine Zieldatei oder auf ein Zielgerät schreibt
- Konvertierung
dd kann gelesen auch Daten konvertieren
- Backup
Diese Eigenschaft erlaubt es, Dateien beliebiger Dateisysteme zu sichern, selbst wenn Linux diese nicht lesen kann
sudo dd if=QUELLE of=ZIEL [OPTIONEN]
- QUELLE und ZIEL
QUELLE und ZIEL können hierbei sowohl ein Device als auch eine Datei sein
- Werden keine weiteren Optionen angegeben, so werden alle Daten aus QUELLE gelesen
- Handelt es sich bei QUELLE um eine Partition, wird deren gesamter Inhalt kopiert
sudo dd if=/dev/sda of=/dev/sdc
- Beispiel
Im Beispiel wird die gesamte erste IDE-Festplatte (/dev/sda) des Systems auf die dritte (/dev/sdc) kopiert
- Es sollte jedem bewusst sein, dass der alte Inhalt der dritten Festplatte damit überschrieben wird
- Auch sollte diese über die gleiche Kapazität wie die erste Platte verfügen (sonst muss man sich die Anzahl der kopierten Bytes merken)
- Um die Daten später zurückzuspielen, vertauscht man die Angaben von QUELLE und ZIEL
Ist das Ziel einer Kopieraktion eine Datei, könnte bei Kernel-Versionen <2.4 die Beschränkung der Dateigröße von 2 GB unser Vorhaben zunichte machen, in einem solchen Fall muss die QUELLE auf mehrere Zieldateien aufgeteilt werden
- Hierzu benötigt dd mehrere Optionen
- Mit bs=BYTES muss die Anzahl Bytes, die in einem Schritt zu lesen oder schreiben sind, angegeben werden
- Wieviele Schritte getätigt werden sollen, legt die Option count=ANZAHL fest
- Um bspw. den Masterbootsektor (Mbr) der ersten Festplatte in eine Datei zu schreiben, könnte man folgenden Aufruf verwenden
sudo dd if=/dev/sda of=/tmp/mbr.save bs=512 count=1
Um jetzt den Superblock (1 k groß) der ersten Partition zu sichern, müssen sowohl Mbr als auch der 512 Bytes lange Bootsektor (also zwei Blöcke) übersprungen werden
- Hierzu verwendet man die Option skip=ANZAHL
sudo dd if=/dev/sda of=/dev/superblock.save bs=512 count=2 skip=2
Wenn dd seine Arbeit verrichtet hat, gibt es eine Statistik aus
3385223+0 records in
3385223+0 records out
1733234176 bytes (1.7 GB) copied, 6.42173 seconds, 270 MB/s
Mit Hilfe des Signals SIGUSR1(10) kann dd auch während der Arbeit eine Statistik ausgeben
# kill -10 $pid
# dd if=/dev/zero of=/dev/null count=10MB & pid=$!
Installation
dd ist Teil des Pakets Coreutils
Aufruf
dd [Option] if=Inputfile of=Outputfile
Optionen
bs=bytes | Erzwingen von ibs=bytes und obs=bytes. |
cbs=bytes | Konvertieren von bytes Bytes auf einmal. |
conv=schlüsselwörter | Konvertieren der Datei gemäß der kommagetrennten Liste von Schlüsselwörtern. |
count=blöcke | Nur blöcke Eingabeblöcke kopieren. |
ibs=bytes | Lesen von bytes Bytes auf einmal. |
if=datei | Lesen aus datei statt von der Standardeingabe. |
obs=bytes | Schreiben von bytes Bytes zur Zeit. |
of=datei | Schreiben in datei statt in die Standardausgabe. |
seek=blöcke | Überspringen von blöcke Blöcken der Größe von obs beim Beginn der Ausgabe. |
skip=blöcke | Überspringen von blöcke Blöcken der Größe von ibs beim Beginn der Eingabe. |
bytes können folgende multiplikativen Endungen tragen: xM M, c 1, w 2, b 512, kD 1000, k 1024. MD 1.000.000, M 1.048.576, GD 1.000.000, G 1.073.741.824, und so weiter für T, P, E, Z, Y.
Schlüsselwörter
ascii | von EBCDIC in ASCII. |
ebcdic | von ASCII in EBCDIC. |
ibm | von ASCII in alternatives EBCDIC. |
block | Auffüllen von mit Zeilenumbrüchen terminierten Datensätzen durch Leerzeichen bis zur cbs-Größe. |
unblock | Ersetzen von nachlaufenden Leerzeichen in Datensätzen von cbs-Größe mit Zeilenumbrüchen. |
lcase | Ändern von Großbuchstaben in Kleinbuchstaben. |
notrunc | Kein Abschneiden der Ausgabedatei. |
ucase | Ändern von Kleinbuchstaben in Großbuchstaben. |
swab | Jedes Paar von Eingabebytes vertauschen. |
noerror | Nach Lesefehlern fortfahren. |
sync | Jeden Eingabeblock mit NULLen zur ibs-Größe auffüllen; wenn mit block oder unblock benutzt, stattdessen mit Leerzeichen. |
Argumente
Umgebung
Rückgabewert
Anhang
Siehe auch
Dokumentation
- Man-Page
- Info-Page
Links
Projekt
Weblinks