|
|
(71 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| {{DISPLAYTITLE:dd}}
| | '''dd''' - [[Datei]] blockweise lesen und schreiben |
| '''dd''' ('''d'''isk '''d'''ump) - Bit-genaue Kopie einer Datei erstellen | |
|
| |
|
| == Beschreibung == | | == Beschreibung == |
| '''dd''' ('''d'''isk '''d'''ump) erstellt bit-genaue Kopien von Datenträgern, Partitionen oder Dateien.
| | '''d'''isk '''d'''ump (dd) erstellt bit-genaue Kopien von Dateien |
| | | * [[Datei]]en |
| ; Bit-genau
| | * [[Datenträger]] |
| bedeutet, dass Bit-für-Bit bzw. Byte-für-Byte ausgelesen und beschrieben wird, unabhängig von dessen Inhalt und Belegung.
| | * [[Partition]] |
| | |
| Diskdump ist ein sehr flexiebles Werkzeug, das ab einem bestimmten Startpunkt eine bestimmte Menge »roher« Daten liest und diese 1:1 in eine Zieldatei oder auf ein Zielgerät schreibt.
| |
| * Zusätzlich kann dd die gelesen Daten konvertieren. | |
| | |
| Diese Eigenschaft erlaubt es, Dateien beliebiger Dateisysteme zu sichern, selbst wenn Linux diese nicht lesen kann.
| |
| | |
| dd if=QUELLE of=ZIEL [OPTIONEN]
| |
| | |
| 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: | |
| | |
| # dd if=/dev/hda of=/dev/hdc
| |
| | |
| Im Beispiel wird die gesamte erste IDE-Festplatte (/dev/hda) des Systems auf die dritte (/dev/hdc) 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:
| |
| | |
| # dd if=/dev/hda 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.
| |
|
| |
|
| # dd if=/dev/hda of=/dev/superblock.save bs=512 count=2 skip=2
| | ; Bit-Genau |
| | Bit-für-Bit ausgelesen und schreiben |
| | * unabhängig von Inhalt oder Belegung |
|
| |
|
| Wenn dd seine Arbeit verrichtet hat, gibt es eine Statistik aus:
| | ; Flexiebles Werkzeug |
| | * liest ab einem Startpunkt eine bestimmte Menge ''roher'' Daten |
| | * diese werden 1:1 in das Ziel (Datei/Gerät) geschieben |
|
| |
|
| 3385223+0 records in
| | ; Konvertierung |
| 3385223+0 records out
| | ''dd'' kann Daten konvertieren |
| 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:
| | ; Installation |
| | '''dd''' ist Teil des [[Pakets]] [[Coreutils]] |
|
| |
|
| # dd if=/dev/zero of=/dev/null count=10MB & pid=$!
| | == Aufruf == |
| # kill -10 $pid
| | <syntaxhighlight lang="bash" highlight="1" line copy> |
| | | dd [Option] if=Inputfile of=Outputfile |
| == Installation == | | </syntaxhighlight> |
| siehe [[Coreutils#Installation]]
| |
| | |
| == Syntax ==
| |
| $ ''' dd [Option] if=Inputfile of=Outputfile'''
| |
|
| |
|
| === Optionen === | | === Optionen === |
| {| class="wikitable sortable" | | {| class="wikitable sortable options big" |
| |- | | |- |
| | | '''bs=bytes''' | | | | '''bs=bytes''' |
| | | Erzwingen von ibs=bytes und obs=bytes. | | | | Erzwingen von ibs=bytes und obs=bytes. |
| |- | | |- |
| | | '''cbs=bytes''' | | | | '''cbs=bytes''' |
| | | Konvertieren von bytes Bytes auf einmal. | | | | Konvertieren von bytes Bytes auf einmal. |
| |- | | |- |
| | | '''conv=schlüsselwörter''' | | | | '''conv=schlüsselwörter''' |
| | | Konvertieren der Datei gemäß der kommagetrennten Liste von Schlüsselwörtern. | | | | Konvertieren der Datei gemäß der kommagetrennten Liste von Schlüsselwörtern. |
| |- | | |- |
| | | '''count=blöcke''' | | | | '''count=blöcke''' |
| | | Nur blöcke Eingabeblöcke kopieren. | | | | Nur blöcke Eingabeblöcke kopieren. |
| |- | | |- |
| | | '''ibs=bytes''' | | | | '''ibs=bytes''' |
| | | Lesen von bytes Bytes auf einmal. | | | | Lesen von bytes Bytes auf einmal. |
| |- | | |- |
| | | '''if=datei''' | | | | '''if=datei''' |
| | | Lesen aus datei statt von der Standardeingabe. | | | | Lesen aus datei statt von der Standardeingabe. |
| |- | | |- |
| | | '''obs=bytes''' | | | | '''obs=bytes''' |
| | | Schreiben von bytes Bytes zur Zeit. | | | | Schreiben von bytes Bytes zur Zeit. |
| |- | | |- |
| | | '''of=datei''' | | | | '''of=datei''' |
| | | Schreiben in datei statt in die Standardausgabe. | | | | Schreiben in datei statt in die Standardausgabe. |
| |- | | |- |
| | | '''seek=blöcke''' | | | | '''seek=blöcke''' |
| | | Überspringen von blöcke Blöcken der Größe von obs beim Beginn der Ausgabe. | | | | Überspringen von blöcke Blöcken der Größe von obs beim Beginn der Ausgabe. |
| |- | | |- |
| | | '''skip=blöcke''' | | | | '''skip=blöcke''' |
| | | Überspringen von blöcke Blöcken der Größe von ibs beim Beginn der Eingabe. | | | | Ü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. | | |
| | === Enheiten === |
| | <!-- |
| | ''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 === | | === Schlüsselwörter === |
| {| class="wikitable sortable" | | {| class="wikitable sortable options big" |
| |- | | |- |
| | | '''ascii''' | | | | '''ascii''' |
| | | von EBCDIC in ASCII. | | | | von EBCDIC in ASCII. |
| |- | | |- |
| | | '''ebcdic''' | | | | '''ebcdic''' |
| | | von ASCII in EBCDIC. | | | | von ASCII in EBCDIC. |
| |- | | |- |
| | | '''ibm''' | | | | '''ibm''' |
| | | von ASCII in alternatives EBCDIC. | | | | von ASCII in alternatives EBCDIC. |
| |- | | |- |
| | | '''block''' | | | | '''block''' |
| | | Auffüllen von mit Zeilenumbrüchen terminierten Datensätzen durch Leerzeichen bis zur cbs-Größe. | | | | Auffüllen von mit Zeilenumbrüchen terminierten Datensätzen durch Leerzeichen bis zur cbs-Größe. |
| |- | | |- |
| | | '''unblock''' | | | | '''unblock''' |
| | | Ersetzen von nachlaufenden Leerzeichen in Datensätzen von cbs-Größe mit Zeilenumbrüchen. | | | | Ersetzen von nachlaufenden Leerzeichen in Datensätzen von cbs-Größe mit Zeilenumbrüchen. |
| |- | | |- |
| | | '''lcase''' | | | | '''lcase''' |
| | | Ändern von Großbuchstaben in Kleinbuchstaben. | | | | Ändern von Großbuchstaben in Kleinbuchstaben. |
| |- | | |- |
| | | '''notrunc''' | | | | '''notrunc''' |
| | | Kein Abschneiden der Ausgabedatei. | | | | Kein Abschneiden der Ausgabedatei. |
| |- | | |- |
| | | '''ucase''' | | | | '''ucase''' |
| | | Ändern von Kleinbuchstaben in Großbuchstaben. | | | | Ändern von Kleinbuchstaben in Großbuchstaben. |
| |- | | |- |
| | | '''swab''' | | | | '''swab''' |
| | | Jedes Paar von Eingabebytes vertauschen. | | | | Jedes Paar von Eingabebytes vertauschen. |
| |- | | |- |
| | | '''noerror''' | | | | '''noerror''' |
| | | Nach Lesefehlern fortfahren. | | | | Nach Lesefehlern fortfahren. |
| |- | | |- |
| | | '''sync''' | | | | '''sync''' |
| | | Jeden Eingabeblock mit NULLen zur ibs-Größe auffüllen; wenn mit block oder unblock benutzt, stattdessen mit Leerzeichen. | | | | Jeden Eingabeblock mit NULLen zur ibs-Größe auffüllen; wenn mit block oder unblock benutzt, stattdessen mit Leerzeichen. |
|
| |
|
| |- | | |- |
| |} | | |} |
|
| |
|
| === Parameter === | | === Argumente === |
| === Umgebungsvariablen === | | === Umgebung === |
| === Exit-Status === | | === Rückgabewert === |
| == Anwendung ==
| |
| ===Backup eines MBR erstellen===
| |
| dd if=/dev/hda bs=512 count=1 of=/tmp/mbr.bin
| |
|
| |
|
| === Komprimiertes Backup einer Partition ===
| | <noinclude> |
| ; Backup
| |
| dd if=/dev/sda1 | gzip > /tmp/sda1.gz
| |
| ; Restore
| |
| gunzip -c /tmp/image.gz | dd of=/dev/hda1
| |
|
| |
|
| ===Datenträger klonen===
| |
| Mit folgendem Befehl, kann man einen Datenträger (sda) auf einen anderen Datenträger klonen.
| |
| * Hierbei gibt man die Blocksize an, um eine bessere Performance zu erreichen.
| |
|
| |
|
| ACHTUNG: Die Datenträger sollten nicht im Dateisystem gemountet sein.
| | </syntaxhighlight> |
| * Am besten eine Live CD verwenden.
| |
| dd if=/dev/sda of=/dev/sdb bs=2048
| |
|
| |
|
| === Fortschritt anzeigen === | | == Anhang == |
| dd status=progress if=/dev/hda of=/dev/hdb bs=2048
| | === Siehe auch === |
| | | <div style="column-count:2"> |
| === Datenträger-Image erstellen ===
| | <categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> |
| dd if=/dev/sda1 | pv -s18G | gzip | ssh -p2227 root@mx10.foxtom.de "dd of=/media/daten/backup/mx50sda1.gz"
| | </div> |
| | | ---- |
| ===Datenträger mit zufälliger Zeichenfolge überschreiben===
| | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} |
| dd if=/dev/urandom of=/dev/sda
| |
| | |
| ===Datei erstellen===
| |
| dd if=/dev/zero of=/mnt/name bs=1M count=500
| |
| | |
| === Datenträgergeschwindigkeit messen ===
| |
| ; Betriebssystem-Cache abschalten
| |
| Um die Geschwindigkeiten eines Datenträgers zu testen, sollte der Cache des Betriebssystems abgeschaltet werden.
| |
| * Lese-Cache: iflag=sync
| |
| * Schreib-Cache: oflag=sync
| |
| | |
| ; Schreibgeschwingigkeit
| |
| $ '''dd if=/dev/zero of=/tmp/lesetest bs=1M count=1000 oflag=sync'''
| |
| | |
| ; Lesegeschwindigkeit
| |
| $ '''dd if=/tmp/lesetest of=/dev/null iflag=sync'''
| |
| | |
| === Datenträger ===
| |
| ==== Imagefile erstellen ====
| |
| # '''dd if=/dev/DEVICE of=FILE'''
| |
| | |
| ; Achtung
| |
| : Das Gerät sollte nicht gemountet sein | |
| | |
| ;Beispiel
| |
| # dd if=/dev/dvd of=dvd.img
| |
| | |
| '''Eine Diskette aus einem Imagefile erstellen '''
| |
| | |
| # '''dd if=image file of=/dev/fd0 '''
| |
| Achtung, das Diskettenlaufwerk darf nicht gemountet sein!
| |
| | |
| ; Beispiel
| |
| # dd if=/tmp/abc_diskette.img of=/dev/fd0
| |
| | |
| '''Eine CD in ein Imagefile schreiben '''
| |
| | |
| Genauso wie von Disketten lassen sich auch von CDs Images erstellen: '''dd if=cd-laufwerk of=image file '''Achtung, das CD-Laufwerk darf nicht gemountet sein!
| |
| | |
| <u>Beispiel</u>
| |
| | |
| dd if=/dev/cdrom of=/tmp/CD-image.img
| |
| | |
| '''Ein Imagefile mounten '''
| |
| | |
| mount -o loop imagefile ziel
| |
| | |
| Das Imagefile kann so wie eine Festplatte / ein Verzeichnis behandelt werden.
| |
| * Sehr praktisch, um zum Beispiel ein CD-Abbild als "virtuelles CD-Laufwerk" zu benutzen.
| |
| * Geht natuerlich auch mit anderen Imagedateien, zum Beispiel Diskettenimages oder Festplattenimages
| |
|
| |
|
| # mount -o loop /tmp/cd-image.img /mnt/virtualCD
| | === Dokumentation === |
| | ; Man-Page |
| | ; Info-Page |
|
| |
|
| === Master Boot Record ===
| | === Links === |
| Der dd-Befehl ist auch geeignet, um den Master Boot Record einer Festplatte auszulesen und in eine Datei zu schreiben.
| | ==== Projekt ==== |
| # dd if=festplatte of=dateiname bs=512 count=1
| | ==== Weblinks ==== |
| | |
| ; Beispiel
| |
| # '''dd if=/dev/hda of=/tmp /mbr.img bs=512 count=1'''
| |
| | |
| ; Zurückschreiben
| |
| Den mit dem vorigen Befehl gesicherten MBR kann man natuerlich auch wieder auf eine Festplatte zurueckschreiben.
| |
| # dd if=dateiname of=festplatte bs=512 count=1
| |
| | |
| ; Beispiel
| |
| # '''dd if=/tmp/mbr.img of=/dev/hda bs=512 count=1'''
| |
| | |
| ==== Die primäre Partitionstabelle wiederherstellen, ohne den MBR zu überschreiben ====
| |
| # dd if=mbr.img of=/dev/hda bs=1 count=64 skip=446 seek=446
| |
| | |
| === Einen komprimiertes Image von einer Festplatte oder Partition erstellen ===
| |
| Um von einer Festplattenpartition ein Backup zu machen, ist dieser Befehl sinnvoll.
| |
| * Durch die Komprimierung kann oft ca. die Häfte des Platzes gespart werden.
| |
| # dd if=partition/festplatte bs=64k |gzip -c >dateiname.img.gz
| |
| | |
| ; Beispiel (1. Partition der 1. Festplatte)
| |
| # dd if=/dev/hda1 bs=64k |gzip -c >/tmp/hda1.img.gz
| |
| | |
| ; Beispiel 2 (Verschlüsselt auf entfernten Rechner übertragen)
| |
| dd if=/dev/hda1 bs=64k |gzip -c | ssh [mailto:user@rechner user@rechner2] 'cat >/tmp/rechner1.hda1.img.gz'
| |
| | |
| '''Das komprimierte Image wieder zurückschreiben
| |
| | |
| <div >cat dateiname.gz |gzip -d | dd of=festplatte bs=64k
| |
| | |
| <u>Beispiel 1</u>
| |
| | |
| cat /tmp/hda1.img.gz |gzip -d | dd of=/dev/hda1 bs=64k
| |
| | |
| <u>Beispiel 2</u>
| |
| | |
| ssh [mailto:user@rechner2 user@rechner2] 'cat /tmp/rechner2.hda1.img.gz' |gzip -d | dd of=/dev/hda1 bs=64k
| |
| | |
| '''README'''
| |
| | |
| Dd erstellen 1:1-Kopien von Datenträgern aller Art und rettet so beispielsweise die Daten von kränkelnden Festplatten.
| |
| * Das Tool Mkisofs sammelt Daten aus dem Verzeichnisbaum und schreibt sie in ein ISO-Image.
| |
| * So lassen sich Backups auf CD/DVD sichern oder bootfähige Medien erzeugen.
| |
| | |
| Zum Brennen von Daten-CDs oder -DVDs stehen auf der Kommandozeile mehrere Anwendungen zur Verfügung.
| |
| * Bevor es jedoch ans eigentliche Brennen geht, muss ein so genanntes <span >'''Joliet'''</span>-Erweiterungen, erzeugt Images für bootbare Medien und Dateien und kann automatische Backups anlegen, wobei es einzelne Dateien ausschließt.
| |
| * Eine Alternative kommt in Form von Dd, das nicht nur ISO-Abbilder erzeugt, sondern oft auch die letzte Rettung für die Daten von sterbenden Festplatten darstellt.
| |
| | |
| <span >'''Rockridge/Joliet:'''</span> Die Rockridge-Erweiterung ergänzt das ISO-Dateisystem um Unix-typische Dateiinformationen, wie Besitzer, Gruppe, Zugriffsrechte und symbolische Links.
| |
| * So tritt beim Kopieren von Daten aus einem Unix-Dateisystem auf CD kein Informationsverlust ein.
| |
| * Zudem erlaubt Rockridge längere Dateinamen.
| |
| * Die Microsoft-Erweiterung Joliet des ISO-9660-Standards lässt ebenfalls lange Dateinamen zu.
| |
| | |
| === Convert und Copy ===
| |
| Das praktische kleine Tool Dd müsste eigentlich den Namen Cc tragen: Convert & Copy.
| |
| * Da dieser aber schon für den C-Compiler vergeben war, griffen die Entwickler einfach zum nächsten Buchstaben im Alphabet.
| |
| | |
| Dd erstellt 1:1-Kopien von Datenträgern.
| |
| * Egal ob Festplattenpartitionen, CDs oder DVDs -- Dd liest und schreibt zuverlässig blockweise.
| |
| * Da Dd diese <span >'''Blöcke'''</span> nicht verarbeitet oder interpretiert, spielt es keine Rolle, um welches Dateisystem es sich handelt.
| |
| * Sogar vor Festplatten mit Fehlern schreckt Dd nicht zurück (siehe Abschnitt "Letzte Rettung").
| |
| * Der einfache Aufruf für Dd lautet:
| |
| | |
| dd if=''Quelle'' of=''Ziel''
| |
| | |
| <span >'''Block:'''</span> Eine fortlaufende Ansammlung von Bytes auf einem Datenträger.
| |
| * Einige Geräte wie Festplatten, Disketten und CD-/DVD-Laufwerke organisieren ihre Daten in solchen Blöcken ("block devices").
| |
| * Andere Geräte arbeiten zeichenorientiert ("character devices") und lesen/schreiben einzelne Bytes.
| |
| | |
| Über ''if'' geben Sie also an, von wo Dd die Daten liest, und hinter ''of'' definieren Sie die Ausgabe.
| |
| * Als Quelle und Ziel dienen oft ein Gerät, wie eine Festplatte(npartition) oder ein CD-/DVD-Laufwerk.
| |
| * Alternativ geben Sie nach dem Gleichheitszeichen eine Datei an.
| |
| * Um etwa die Festplattenpartition ''hda1'' 1:1 nach ''/dev/hdb1'' zu kopieren, tippen Sie:
| |
| | |
| dd if=/dev/hda1 of=/dev/hdb1
| |
| | |
| Ebenso können Sie Dd dazu verwenden, schnell eine CD oder DVD auf der Kommandozeile zu kopieren.
| |
| * Ein entsprechendes ISO-Image erstellen Sie beispielsweise über:
| |
| | |
| $ dd if=/dev/hdc of=abbild.iso
| |
| 9153728+0 Datensätze ein
| |
| 9153728+0 Datensätze aus
| |
| 4686708736 bytes transferred in 1209,649659 seconds (3874435 bytes/sec)
| |
| | |
| Das Medium muss dazu nicht gemountet <span >[1]</span> sein.
| |
| * Die Laufwerksangabe ''/dev/hdc'' ersetzen Sie durch den entsprechenden Gerätenamen Ihres Laufwerks; das ISO-Image landet anschließend in der Datei ''abbild.iso'' des aktuellen Verzeichnisses.
| |
| | |
| === Optimieren mit Optionen ===
| |
| Das Programm Dd bringt einige Schalter mit.
| |
| * Ein praktischer Parameter, der die Arbeit des Programms maßgeblich beschleunigt, ist ''bs'' (englisch "block size" = Blockgröße).
| |
| * Standardmäßig arbeitet Dd mit 512 Byte großen Blöcken -- es liest jeweils 512 Bytes ein und schreibt diese in die Ausgabedatei.
| |
| * Wählen Sie größere Blöcke, arbeitet Dd dementsprechend schneller.
| |
| So sorgt der Aufruf:
| |
| # dd if=/dev/hda1 of=/dev/hdb1 bs=2k
| |
| | |
| dafür, dass Dd die Partition in 2 KByte (2048 Bytes) großen Blöcken kopiert.
| |
| | |
| Unterschreitet der letzte Block die angegebene Blockgröße, füllt dd ihn nicht auf:
| |
| $ dd if=/dev/hda1 of=/dev/hdb1 bs=6k
| |
| 16059+1 Datensätze ein
| |
| 16059+1 Datensätze aus
| |
| 98670592 bytes transferred in 13,801482 seconds (7149275 bytes/sec)
| |
| | |
| Die Ausgabe zeigt, dass Dd 16059 Blöcke der Größe 6144 Bytes und einen "übrig gebliebenen" Block von 4096 Byte kopiert hat.
| |
| | |
| Neben der Blockgröße können Sie angeben, wie viele dieser Blöcke Dd lesen soll: Um 40 MByte zu kopieren, schreiben Sie ''bs=1M count=40''.
| |
| * Dabei spezifiziert die Option ''count'' die Anzahl der Blöcke.
| |
| * Das macht beispielsweise Sinn, wenn Sie den Boot-Sektor einer Festplatte sichern wollen -- Sie kopieren in diesem Fall nur den ersten, 512 Bytes großen Block mit dem Aufruf:
| |
| | |
| # dd if=/dev/hda of=bootsektor bs=512 count=1
| |
| | |
| === Letzte Rettung ===
| |
| Das Programm Dd erweist sich auch als unverzichtbarer Helfer, wenn es um die Rettung von Daten aus zerstörten Dateisystemen geht.
| |
| * Bevor Sie sich an die Reparatur begeben, sollten Sie zunächst ein Backup vornehmen.
| |
| * Dazu erstellen Sie mit Dd eine 1:1-Kopie des zerstörten Systems und führen auf dieser die Reparaturversuche durch.
| |
| | |
| Da Dd standardmäßig zerstörte Sektoren von der Kopie ausschließt, setzen Sie die Parameter ''conv=noerror,sync'' ein:
| |
| | |
| dd bs=512 conv=noerror,sync if=/dev/hda of=/dev/hdb
| |
| | |
| Auf diese Weise teilen Sie Dd mit, dass es mit dem Lesen und Ablegen von Daten auch dann fortfahren soll, wenn es defekte Sektoren findet.
| |
| * Dabei sorgt ''noerror'' dafür, dass Dd bei Fehlern nicht abbricht, und ''sync'' füllt unlesbare Sektoren mit Nullen auf.
| |
| | |
| <noinclude>
| |
| | |
| == Anhang ==
| |
| === Siehe auch ===
| |
| ==== Sicherheit ====
| |
| ==== Dokumentation ====
| |
| ===== Man-Pages =====
| |
| ===== Info-Pages =====
| |
| ==== Links ====
| |
| ===== Projekt =====
| |
| ===== Weblinks =====
| |
|
| |
|
| | [[Kategorie:Linux/Storage/Tools]] |
| [[Kategorie:Linux/Datei/Ausgabe]] | | [[Kategorie:Linux/Datei/Ausgabe]] |
| [[Kategorie:Linux/Backup]] | | [[Kategorie:Linux/Backup]] |
Zeile 356: |
Zeile 141: |
|
| |
|
| {{DEFAULTSORT:dd}} | | {{DEFAULTSORT:dd}} |
| | {{DISPLAYTITLE:dd}} |
| | |
| </noinclude> | | </noinclude> |