El comando de Linux 'dd' no puede faltar en nuestra caja de herramientas, se puede usar para hacer copias de seguridad, crear imágenes del disco duro entero o parte, siempre que el disco destino tenga la misma geometría.
Hay que tener cuidado con el orden de 'if' y 'of', en los siguientes ejemplos se quiere copiar sda a sdb. Copia del disco duro.
dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror
dd if=/dev/sda of=/path/de/imagen bs=4096 conv=notrunc,noerror
dd if=/dev/sda | gzip > /path/de/imagen.gz bs=4096 conv=notrunc,noerror
Restauración de los datos de la imagen.
dd if=/path/de/imagen of=/dev/sda bs=4096 conv=notrunc,noerror
gzip -dc /path/de/imagen.gz | dd of=/dev/sda
Para crear la imagen de un CD se usaría bs=2048 ya que los sectores de los cds tienen 2048 bytes, una vez terminada la copia se podría montar.
dd if=/dev/hdc of=/home/nexus7/micd.iso bs=2048 conv=notrunc
mount -o loop /mnt/micd
o añadirlo a fstab para que se monte al arrancar el sistema.
/home/nexus7/micd.iso /mnt/micd iso9660 rw,user,noauto 0 0
Copiar el contenido de la memoria a un archivo.
dd if=/dev/mem of=/home/nexus7/memoria.bin bs=1024
Comprimir la imagen con gzip y enviarla por ssh a otro equipo, es este ejemplo es una partición del disco.
dd if=/dev/sda2 bs=1k conv=sync,noerror | gzip -c | ssh -c blowfish nexus7@192.170.2.3 "dd of=/home/nexus7/Documentos/Copia_seguridad/particiones/imagen.gz bs=1k"
Para hacer la copia de seguridad en otro equipo sin usar compresión ni un canal seguro como es SSH, se puede usar 'netcat', un programa que viene por defecto en casi todas las distribuciones de linux. El tamaño de bs es igual a un cilindro en un disco LBA. En los siguientes ejemplos la copia se hará en origen la primera y en destino la segunda.
dd if=/dev/sda bs=16065b | netcat IP_Destino 1234
netcat -l -p 1234 | dd of=/dev/sda bs=16065b