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
No hay comentarios.:
Publicar un comentario