Fecha de última modificación:

8 Mayo, 2015 - 01:54

dd

Convierte y copia un fichero. Copia un fichero (de la entrada estándar a la salida estándar, por omisión) con un tamaño de bloque seleccionable por el usuario, a la par que, opcionalmente, realiza sobre él ciertas conversiones. Generalmente utilizado para realizar imágenes de discos/particiones.

Su sintaxis es de la forma:
dd [if=] [of=] [bs=] [count=] [conv=], sync

De los cuales:

if es de donde se tomaran los datos /dev/zero (todos ceros), /dev/random (de forma aleatoria), /dev/sdb1 (una partición, para ser clonada).

of nombre de la salida del archivo.

bs el tamaño de bloque en bytes, por defecto es 512 bytes el cual es el tamaño de bloque “clásico“ para los discos duros. Si y sólo si los discos duros tienen un tamaño de bloque de 4K, puede utilizar “4096“ en lugar de “512“. Este parámetro influye en la propagación del error (en caso de que ocurra).

count la cantidad de veces que obtendremos esos bloques bs de información.

conv=noerror para continuar la operación, haciendo caso omiso de todos los errores de lectura. El comportamiento por defecto para dd es detener en cualquier error.

sync llena bloques de entrada con ceros si hubo errores de lectura, por lo que los desplazamientos de datos se mantienen en sincronía.


Nota: La utilidad dd técnicamente tiene un “tamaño de bloque de entrada“ (SII) y un “tamaño de bloque de salida“ (OBS). Cuando se establece bs, se establece de manera efectiva tanto SII y OBS. Normalmente, si el tamaño de bloque es, por ejemplo, 1M, dd leerá bytes de 1M y escribirá bytes de 1M. Pero si se produce un error de lectura, las cosas saldrán mal. Muchas personas piensan que dd “llena errores de lectura con ceros“ si utiliza las opciones noerror,sync, pero esto no es así. Según la documentación, al llenar el OBS a tamaño SII, lo que significa la adición de ceros al final del bloque. Esto significa, que efectivamente todo el 1M se convertiría en mal estado a causa de un solo 512 bytes de error de lectura en el inicio de la lectura.
Si está seguro de que su disco no contiene errores, puede continuar usando un tamaño de bloque más grande, lo que aumentará la velocidad de copiado. Por ejemplo, el cambio de 512k a 64K aumentará la velocidad de 35MB/s a 120MB/s en un Celeron de 2.7GHz. Pero tenga en cuenta, que los errores de lectura en el disco de origen van a terminar como errores de bloque en el disco de destino, es decir, 512 bytes error de lectura de origen se transformaran en bloque de salida 64k con error.


dd if=/dev/zero of=test.img bs=1M count=120 crea el archivo test.img que contiene todos ceros /dev/zero en el directorio actual con un tamaño de 120 Megabyte

# dd if=/dev/zero of=test.img bs=1M count=120
120+0 registros leídos
120+0 registros escritos
125829120 bytes (126 MB) copiados, 0,377277 s, 334 MB/s
# ls -lh test.img 
-rw------- 1 root root 120M abr 30 00:36 test.img

dd if=/dev/urandom of=test.img bs=1M count=120 crea el archivo test.img que contiene datos aleatorios /dev/urandom en el directorio actual con un tamaño de 120 Megabyte. Se ve que el tiempo es considerablemente mayor.

# dd if=/dev/urandom of=test.img bs=1M count=120
120+0 registros leídos
120+0 registros escritos
125829120 bytes (126 MB) copiados, 9,72611 s, 12,9 MB/s
# ls -lh test.img 
-rw------- 1 root root 120M abr 30 01:52 test.img

Si quisiéramos crear una archivo de 1 GB, sería:

# dd if=/dev/zero of=pp bs=1G count=1
1+0 registros leídos
1+0 registros escritos
1073741824 bytes (1,1 GB) copiados, 3,40085 s, 316 MB/s
# ls -lh pp 
-rw------- 1 root root 1,0G abr 30 02:02 pp

dd if=/dev/urandom of=/dev/sda bs=4kLlena el disco /dev/sda con datos aleartorios

dd if=/dev/urandom of=/media/ bs=4096Llena la partición /dev/sda con datos aleartorios

dd if=/dev/sdb1 of=/home/adrian/copiapendrive/pendrive.dd crea un imagen del pendrive (para montarlo sería  mount -o loop pendrive.dd /home/adrian/montapendrive)

dd if=/dev/hda of=/dev/hdd bs=512 conv=noerror,sync clonar el disco hdd sobre el disco hdb

# dd if=/dev/sda of=/dev/sdd bs=32M
dd: leyendo «/dev/sda»: Error de entrada/salida
96+1 registros leídos
96+1 registros escritos
3245854720 bytes (3,2 GB) copiados, 48,1042 s, 67,5 MB/s

Se ejecuta el mismo comando con los parámetros bs=512 conv=noerror,sync para que no se detenga y nos deje clonar el disco. Igual si l disco presenta fallas lo mejor es usar el comando ddrescue

# dd if=/dev/sda of=/dev/sdd bs=512 conv=noerror,sync
4777377+0 registros leídos
4777377+0 registros escritos
2446017024 bytes (2,4 GB) copiados, 99,7815 s, 24,5 MB/s
5674721+0 registros leídos
5674720+0 registros escritos
2905456640 bytes (2,9 GB) copiados, 123,243 s, 23,6 MB/s
dd: leyendo «/dev/sda»: Error de entrada/salida
6339568+0 registros leídos
6339568+0 registros escritos
3245858816 bytes (3,2 GB) copiados, 146,171 s, 22,2 MB/s
dd: leyendo «/dev/sda»: Error de entrada/salida
6339568+1 registros leídos
6339569+0 registros escritos
3245859328 bytes (3,2 GB) copiados, 148,805 s, 21,8 MB/s
dd: leyendo «/dev/sda»: Error de entrada/salida
6339568+2 registros leídos
6339570+0 registros escritos
3245859840 bytes (3,2 GB) copiados, 151,438 s, 21,4 MB/s
dd: leyendo «/dev/sda»: Error de entrada/salida
6339568+3 registros leídos
6339571+0 registros escritos
3245860352 bytes (3,2 GB) copiados, 154,071 s, 21,1 MB/s
dd: leyendo «/dev/sda»: Error de entrada/salida
6339568+4 registros leídos
6339572+0 registros escritos
3245860864 bytes (3,2 GB) copiados, 156,704 s, 20,7 MB/s
dd: leyendo «/dev/sda»: Error de entrada/salida
6339568+5 registros leídos
6339573+0 registros escritos
........
........

dd if=/dev/sda of=MBR-backup bs=512 count=1 realizó un backup del MBR

dd if=MBR-backup of=/dev/sda bs=512 count=1 restauro mi MBR con la copia.


Si el disco presenta fallas lo mejor es usar el comando ddrescue, igualmente también existen otros como: dd_rescue, testdisk, photorec, scalpel, magicrescue, safecopy, y foremost.

Leer más sobre: 

¿Te resulto útil?: 

4

Envíanos tús preguntas, comentarios o sugerencias

 

Solicita Asistencia

Llámenos al:+549 11 (15)32788353

Envíenos un e-mail: consultas@ ---Para enviar el SPAM--- francisconi.org

Skype Status for francisconi.hugo.adrian
 

Suscríbete

Suscríbete y recibe las últimas actualizaciones, noticias y más ...