dd-Leistung unter Mac OS X im Vergleich zu Linux

dd-Leistung unter Mac OS X im Vergleich zu Linux

Ich habe versucht, ein ISO des Windows-Installationsprogramms auf eine Festplatte zu kopieren, um das Brennen einer CD zu vermeiden. Zuerst habe ich die Wiederherstellungsfunktion des Festplatten-Dienstprogramms ausprobiert, aber aus irgendeinem Grund hat es das ISO nicht gemocht. Dann habe ich versucht, dd zu verwenden:

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

Mir wurde klar, dass die Datei im Schneckentempo kopiert wurde, etwa 160 KB/s. Ich startete meine Linux-Installation neu und führte den Befehl fast wortwörtlich erneut aus:

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

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

Ich verwende OSX 10.7.3 und Linux 2.6.38-13.

Antwort1

Verwenden Sie für OS/dev/rdisk3 X.

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

Auch allgemein trägt die Verwendung der bsFlagge ddzur Geschwindigkeit bei.

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

Die Bytegröße beträgt 1 M, was die Übertragung beschleunigt. Unter OS X müssen Sie 1m(Kleinbuchstaben) statt verwenden 1M.

Antwort2

BSD-Raw-Festplatten

BSDs haben im Allgemeinen zwei Festplattengerätetypen: gepuffert und ungepuffert (roh). Aus 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 2. Absatzes muss die Festplatteunmontiertddum es im "Raw-Modus" verwenden zu können .

dd Blockgröße

Aus dd(1)der 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 beträgt 512 Bytes ...

verwandte Informationen