Usos para el comando dd

Clonar un disco

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

También podemos trasnferirlo por ssh a otro equipo con el comando <sxh>dd if=/dev/sda | ssh usuario@servidor “dd of=/dev/sdb”</sxh>

Obtener una imagen de un disco

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

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

<sxh>fdisk -l /dev/sda</sxh>

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 <sxh> mount -o loop,offset=1048576 /donde_este_el_archivo_dd /punto de montaje</sxh>

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

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

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. <sxh>sudo mount -t tipo -o ro,loop,offset=(512*inicio_particion) opciones archivo_imagen.dd punto_montaje </sxh>