Usos para el comando dd

Clonar un disco

 dd if=/dev/sda of=/dev/sdb</code>
donde sda y sdb son discos de nuestro sistema
if=input file
of=output file

También podemos trasnferirlo por ssh a otro equipo con el comando

dd if=/dev/sda | ssh usuario@servidor "dd of=/dev/sdb"

Obtener una imagen de un disco

# dd if=/dev/hda of=~/hdadisk.img

Restaurar una imagen

dd if=hdadisk.img of=/dev/hdb 

Backup de una partición

dd if=/dev/hda1 of=~/partition1.img 

Pasar un iso a un pendrive

Primero ejecutamos

sudo fdisk -l

para ver donde está instalado el pendrive usb

Disco /dev/sdd: 16.8 GB, 16780361728 bytes
64 cabezas, 32 sectores/pista, 16003 cilindros, 32774144 sectores en total
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador del disco: 0x00000000

Entonces ejecutamos

sudo dd if=kali-linux-1.0.6-amd64.iso of=/dev/sdd

donde if= indica el fichero origen e of indica el destino

Montar una imagen creada con dd

Supongamos que queremos clonar un disco en un fichero imagen y posteriormente montar esa imagen.

Lo primero será ver las características del disco a clonar con el comando fdisk -l disco

fdisk -l /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Identificador del disco: 0x000b61a8

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM

Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Para montar cada partición habría que calcular el offset de cada una , para ello se multiplica el valor del sector de inicio por el número de sectores de disco. Por ejemplo para sda1 que comienza en el sector 2048 y los sectores de este disco son de 512 bytes… seria un offset de 1.048.576 bytes

 mount -o loop,offset=1048576  /donde_este_el_archivo_dd  /punto de montaje

para sda2 que comienza en el sector 1026048 y los sectores de este disco son de 512 bytes… seria un offset de 525336576 bytes

mount -o loop,offset=525336576  /donde_este_el_archivo_dd  /punto de montaje2

Para montar un archivo de imagen como solo lectura (conteniendo el volcado de un disco completo, no de una sola partición) se puede utilizar el siguiente comando.
sudo mount -t tipo -o ro,loop,offset=(512*inicio_particion) opciones archivo_imagen.dd punto_montaje