viernes, 30 de mayo de 2008

Comando dd

Introducción:

El comando dd (duplicate disk) es un comando bastante útil para transferir datos desde un dispositivo/archivo hacia un dispositivo/archivo/etc.
En este mini-howto vamos a ver las diferentes utilidades que se le pueden dar al comando

La sintaxis básica del comando es la siguiente:

dd if=origen of=destino

donde if significa "input file", es decir, lo que querés copiar y
of significa "output file", o sea, el archivo destino (donde se van a copiar los datos); origen y destino pueden ser dispositivos (lectora de CD, diskettera, etc.), archivos, etc.


Copiando Diskettes:
primero insertamos el diskette origen y escribimos lo siguiente en una consola:
dd if=/dev/fd0 of=~/diskette.img

después insertamos el diskette destino (en blanco) y escribimos lo siguiente:
dd if=~/diskette.img of=/dev/fd0

nos queda eliminar la "imagen" que creamos y listo...
rm -f ~/diskette.img

NOTA: El ~ significa "tu directorio home", es similar a escribir $HOME


Manejo de errores durante la copia:
Es posible que durante la copia o duplicación de un diskette se encuentren errores en la superficie del mismo. Para evitar que este error nos impida copiar los datos "buenos" del disco podemos hacer lo siguiente:

dd conv=noerror if=/dev/fd0 of=~/imagen_disco_con_errores.img

NOTA: la opción noerror hace que se continúe con la copia aunque se produzcan errores de lectura


Haciendo imágenes ISO de un CD:
La forma mas fácil y efectiva de crear nuestras "imagenes" de CD es la siguiente:

dd if=/dev/cdrom of=micd.iso


El comando dd también sirve para copiar particiones o discos completos unos sobre otros. Básicamente podemos decir que mediante dd podemos "clonar" particiones o nuestro disco rígido completo. Para hacer esto hacé lo siguiente:

dd if=/hdxa of=/hdyb (copia una partición en otra)
dd if=/hdx of=/hdy (copia de un disco duro en otro)

donde: x: disco rígido origen, y: disco rígido destino, a: partición origen, b: partición destino.

NOTA: Es necesario que sepas como se definen los discos y particiones en Linux antes de mandarte con estos comandos


RECOMENDACIONES:
* Tener mucho cuidado con lo que haces porque los datos de la partición o disco destino serán destruidos por completo.
* Tienes que tener en cuenta también que la partición o disco destino debe ser igual en tamaño (o en todo caso mayor) que la partición o disco origen.
* Es conveniente que hagas una copia de seguridad de los datos importantes y tener a mano un disco de arranque de linux por si las moscas (je je! 1-grin ).

Por último:
Tener presente que el tamaño de la imagen resultante va ser exactamente el mismo que el del dispositivo original. Es decir: dd te guarda también el espacio no utilizado.
Podés redirigir la salida con una tubería (pipe) y comprimirlo con gzip, bzip o bzip2, pero aún así vas a necesitar bastante espacio libre para poder guardar las imágenes que generes.

Mas información:

man dd
San Google!

0 comentarios: