dd


 

 

 

 

Ventajas

Auténtica clonación.

Se puede montar la imagen resultante como dispositivo loop.

dd está en todas las distribuciones.

Copia discos duros enteros con todas sus particiones de una vez.

 

Inconvenientes

Es lento.

Guarda también el espacio no ocupado por datos.


 

Ejemplo 1.

Copiar sda1 en un archivo llamado "copito.dd"

 

dd if=/dev/sda1 of=copito.dd

 

y para restaurar la copia el input file pasa a ser el archivo y el output file pasa a ser el dispositivo:

 

dd if=copito.dd of=/dev/sda1

 

 

 

Ejemplo 2.

Igual que antes pero entubando para comprimir al vuelo

 

dd if=/dev/sda | gzip > copito.dd.gz

 

dd if=/dev/sda1 | bzip2 --best > copito.dd.bz2  (leeeeentooooo)

 

 

y para restaurar, descomprimimos y entubamos la escritura en el dispositivo:

 

gunzip -c copito.dd.gz | dd of=/dev/sda1

 

bunzip2 -c copito.dd.bz2 | dd of=/dev/sda1

 

Se podría usar lzma y lzmadec del mismo modo.

Nota: si queremos saber el tiempo que tarda solo tenemos que anteponer a cualquiera de las líneas anteriores el comando "time"

 

 

TRUCO 1.

Evitando el inconveniente del guardado de espacio vacío

 

 

Creamos un archivo lleno de ceros que ocupe TODO el disco.

 

dd if=/dev/zero of=BORRA_ESTE_ARCHIVO

 

Lo borramos y gzip o bzip harán su trabajo.

 

rm BORRA_ESTE_ARCHIVO

 

y procedemos igual que en el ejemplo 2.

 

dd if=/dev/sda | gzip > copito.dd.gz

 

 

TRUCO 2.

Partir el archivo para grabar en CD o en un disco SD, flash...

 

 

dd if=/dev/sda1 | gzip -c | split -b 700m - copito.dd.gz

 

y para restaurar:

 

cat copito.dd.* | guzip -c | dd of=/dev/sda1

 

 

TRUCO 3.

Acelerar considerablemente el volcado.

Muy recomendable para memorias flash.

 

dd if=/dev/sda1 of=copito.dd bs=16M

 

Con la opción bs indicamos el tamaño de bytes que tomará para copiar cada vez.

En lugar de 512bytes, tomará 16Mb cada vez. Eso se puede aplicar a cualquiera de los ejemplos anteriores.

 

TRUCO 4.

Saber a qué velocidad va nuestra copia y cuánto le queda.

 

En otro terminal tomar el PID de dd y lanzar:

 

kill -SIGUSR1 número_PID_de_dd

 

Luego, volver a la terminal de dd.

 

También se puede recurrir a dc3dd, que es una versión parcheada de dd que incorpora barra de progreso y muchas características interesantes como el troceado (split) automático.

También está el fork del departamento de defensa de los EEUU "dcfldd".