dd Leistung unter Mac OS X vs. Linux


18

Ich habe versucht, eine ISO-Datei des Windows-Installationsprogramms auf eine Festplatte zu kopieren, um das Brennen einer Festplatte zu vermeiden. Ich habe zuerst die Wiederherstellungsfunktion von Disk Utility ausprobiert, die ISO hat mir jedoch aus irgendeinem Grund nicht gefallen. Dann habe ich versucht mit dd:

dd if=/path/to/image.iso of=/dev/disk3

Mir wurde klar, dass die Datei mit einer Geschwindigkeit von etwa 160 KB / s kopiert wurde. Ich habe meine Linux-Installation neu gestartet und den Befehl erneut ausgeführt, fast wörtlich:

dd if=/path/to/image.iso of=/dev/sdc

Diesmal wurde der Befehl mit einer Durchschnittsgeschwindigkeit von 57 MB / s in weniger als einer Minute ausgeführt. In beiden Fällen waren die Quelle und das Ziel die gleichen physischen Festplatten. Was ist los?

Ich verwende OSX 10.7.3 und Linux 2.6.38-13.


1
Hmm, ich würde erwarten, dass Linux ohne bsParameter genauso langsam läuft. Haben Sie einen Alias ​​für das ddSetup unter Linux (geben Sie ihn aliasan einer Eingabeaufforderung ein)?
Paul

Antworten:


28

Für OS X verwenden /dev/rdisk3.

Aus irgendeinem Grund rdiskist schneller als disk. Ich glaube, es hat mit Puffern zu tun.

Auch im Allgemeinen hilft die Verwendung der bsFlagge mit ddder Geschwindigkeit.

dd if=/path/to/image.iso of=/dev/sdc bs=1M

Die Bytesize ist 1M, was die Übertragung beschleunigt. Unter OS X müssen Sie 1m(Kleinbuchstaben) anstelle von verwenden 1M.


Vielen Dank ! Ich hatte vergessen hinzuzufügen bs=1mund es war verdammt langsam!
LoremIpsum

4
Der Kommentar zum Kleinbuchstaben m unter OS X war ein Lebensretter. Vielen Dank!
Jonathan Komar

0

BSD-Raw-Disks

BSDs haben im Allgemeinen 2 Plattengerätetypen: Bufferend und Unbuffered (Raw). Von der hdutil(1)Manpage:

DEVICE SPECIAL FILES
     Since any /dev entry can be treated as a raw disk image, it is worth
     noting which devices can be accessed when and how.  /dev/rdisk nodes
     are character-special devices, but are "raw" in the BSD sense and
     force block-aligned I/O. They are closer to the physical disk than
     the buffer cache. /dev/disk nodes, on the other hand, are buffered
     block-special devices and are used primarily by the kernel's
     filesystem code.

     It is not possible to read from a /dev/disk node while a filesystem
     is mounted from it, ...

Aufgrund des zweiten Absatzes muss die Festplatte nicht gemountet sein, um ddim "Raw-Modus" verwendet werden zu können.

dd blocksize

Aus der dd(1)Manpage:

     Where sizes are specified, a decimal, octal, or hexadecimal number of bytes
     is expected.  If the number ends with a ``b'', ``k'', ``m'', ``g'', or ``w'',
     the number is multiplied by 512, 1024 (1K), 1048576 (1M), 1073741824 (1G) or
     the number of bytes in an integer, respectively.  Two or more numbers may be
     separated by an ``x'' to indicate a product.

Die Standardblockgröße ist 512 Bytes ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.