Wie überspringen Sie die MBR- und Partitionstabelle, während Sie eine Partition dd ausführen

5247
linuxnewbie

Ich muss eine SATA-Partition auf eine externe USB-Partition kopieren. Beide Partitionen sind in der Größe gleich, aber die Gesamtgröße der Festplatten ist unterschiedlich. Ich möchte nur die Daten kopieren und sich nicht um den Boot-Sektor kümmern. Daher möchte ich die SATA-Partitionsinformationen nicht kopieren auf eine USB-Festplatte. Ist also im Befehl dd das Überspringen von 1 Block (Überspringen = 1) ausreichend ?. Vielen Dank

3

3 Antworten auf die Frage

3
akira

Die MBR ist die ersten 512 Bytes des Geräts. Wenn Sie 'man dd' überprüfen, werden Sie feststellen, dass Sie mit 'überspringen = BLÖCKE' einige Bytes am Anfang der Eingabe überspringen können:

% dd if=IN_DEVICE ibs=512 skip=1 of=OUT_DEVICE 

Aber im Allgemeinen denke ich nicht, dass das eine gute Idee ist, wenn Sie "nur die Daten wollen" ... weil Sie nur einen Teil des Dateisystems kopieren usw. Warum kopieren Sie die Daten nicht vom Dateisystem in das Dateisystem?

weil er keine Boot-Informationen oder Partitionsdaten auf seiner USB-Festplatte haben möchte. John T vor 14 Jahren 0
Vielen Dank. Eigentlich versuche ich, gleichzeitig auf mehrere Laufwerke zu kopieren, also kann ich solche nicht kopieren. Dies ist für die standardmäßige 512-Blockgröße. Angenommen, wenn ich bs = 8M erwähnte, werden die ersten 8MBits richtig übersprungen. Wie überspringen Sie die ersten 512 Byte immer noch die Blockgröße von 8M oder einen anderen Wert. linuxnewbie vor 14 Jahren 0
@john: Beim Kopieren vom Dateisystem in das Dateisystem werden keine Boot- oder Partitionsinformationen übertragen. Es ist offensichtlich, warum er das nicht will. Ich habe gerade gesagt, dass ich nicht denke, dass es eine gute Idee ist, das gesamte Kopieren über dd durchzuführen und den 'Teil' eines Dateisystems (die ersten x Bytes einer ntfs / ext3 / -partition) an einen anderen Ort und dann an das Ende des Dateisystems zu übertragen Das Dateisystem stimmt nicht mit dem Ende der Partition überein. akira vor 14 Jahren 0
@linuxnewbie: na ja, du kannst dd auf 'obs = 8M' setzen, was die 'Ausgabepuffergröße' angibt. für das überspringen nur die ersten 512 bytes und dann die "ibs" wieder erhöhen: ich glaube nicht, dass das mit dd möglich ist. Aber natürlich könnte man ein nettes .c-Programm schreiben, das das tut :) akira vor 14 Jahren 0
0
John T

Ja. Wenn Sie nicht damit herumgespielt haben, ist der Standardwert 1 Block (512 Byte).

0
Neal

Ich bin vielleicht ein Idiot hier, aber kann man nicht einfach dd auf der Partition statt auf der Festplatte verwenden, also if=/dev/sda1 of=/dev/sdb1eher als verwenden if=/dev/sda of=/dev/sdb skip a bit.

Und muss man es ddtrotzdem benutzen ? rsyncWenn Sie nur die Daten kopieren möchten, verwenden Sie den Kopierbefehl 'cp', einen Browser oder eine andere Art, Daten zu kopieren, anstatt die rohen Datenträgerdaten.

gut, werde es ausprobieren. Vielen Dank. Sie können jedoch keine andere Option verwenden ("cp", "rsync" usw.), da die Dateien sehr groß sind (~ 80 GB) und mehrere Laufwerke gleichzeitig kopiert werden sollen. linuxnewbie vor 14 Jahren 0
Aber dauert es nicht länger? Es muss jedes Byte von einer Partition zur nächsten kopieren, wohingegen andere Programme nur die Daten kopieren ... Neal vor 14 Jahren 0
Lassen Sie mich wissen, dass jedes Programm (Linux / Win) große Daten (60 - 80 GB) gleichzeitig auf mehrere Laufwerke kopieren kann (paralleles Kopieren von einer Quelle zu mehreren Zielen, von lokalen Festplatten nicht über das Netzwerk - durch Multicast). linuxnewbie vor 14 Jahren 0
Nicht das ich wüsste, vielleicht sollten Sie das als neue Frage stellen. Neal vor 14 Jahren 0