Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas

30 noviembre, 2011

Respaldo rápido de un disco duro en UNIX con dd

dd es un comando muy potente que realiza copias bit-a-bit de un archivo a otro. Gracias a que en UNIX, todos los dispositivos son un archivo, podemos aprovechar esta característica para hacer copias de seguridad.

El uso básico de dd es:

$dd if={archivo_de_entrada} of={archivo_de_salida} bs={tamaño_bloque}

El tamaño de bloque indica más o menos la cantidad de bytes que se copiaran a la vez. Un tamaño de bloques pequeño permite una mayor tolerancia a fallos en el origen, mientras que un tamaño más grande permite una mayor velocidad.

Por ejemplo, una copia de disco a disco podría ser:

$dd if=/dev/hda of=/dev/sda bs=4096

También es posible usar un archivo de imagen:


$dd if=/dev/hda of=./imagen.img bs=4096 conv=noerror

El parametro conv=noeeror indica que continúe si se presenta un error de lectura.
Especificamos un tamaño de bloque de 4k para hacerlo más tolerante a errores de lectura.

Otra forma es utilizarlo en conjunto con gzip para hacer copias de respaldo comprimidas:

$dd if=/dev/hda conv=noerror bs=4k | gzip -c > ./imagen.img.gz


O con gunzip para restaurar las imágenes de respaldo

$gunzip -z ./imagen.img.gz | dd of=/dev/hda bs=4k conv=noerror


Si se quiere monitorear el estado de copia, se le puede enviar la señal USR1 al PID del comando. 

$kill -USR1 {PID_DE_dd}

Obviamente hay muchas más opciones, que pueden ser investigadas en el manual de dd


$man dd