
Estaba intentando copiar una ISO del instalador de Windows en un disco duro para evitar quemar el disco. Primero probé la función de restauración de la Utilidad de Discos, sin embargo, por alguna razón no me gustó la ISO. Luego intenté usar dd:
dd if=/path/to/image.iso of=/dev/disk3
Me di cuenta de que estaba copiando el archivo a paso de tortuga, aproximadamente 160 KB/seg. Reinicié mi instalación de Linux y ejecuté el comando nuevamente, casi palabra por palabra:
dd if=/path/to/image.iso of=/dev/sdc
Esta vez el comando se ejecutó en menos de un minuto, con una velocidad promedio de 57 MB/seg. En ambos casos, el origen y el destino eran los mismos discos duros físicos. ¿Qué está sucediendo?
Estoy ejecutando OSX 10.7.3 y Linux 2.6.38-13.
Respuesta1
Para OS X, utilice /dev/rdisk3
.
Por alguna razón rdisk
es más rápido que disk
. Creo que tiene que ver con los amortiguadores.
Además, en general, usar la bs
bandera dd
ayuda con la velocidad.
dd if=/path/to/image.iso of=/dev/sdc bs=1M
El tamaño de bytes es 1M, lo que se transfiere más rápido. En OS X tienes que usar 1m
(minúsculas) en lugar de 1M
.
Respuesta2
discos BSD sin formato
Los BSD en general tienen 2 tipos de dispositivos de disco: con búfer y sin búfer (sin formato). Desde la hdutil(1)
página de manual:
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, ...
Debido al segundo párrafo, el disco debedesmontadopara poder usarlo dd
en "modo crudo".
dd tamaño de bloque
Desde dd(1)
la página de manual:
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.
El tamaño de bloque predeterminado es 512 bytes...