DD es una aplicación para pasar datos desde un dispositivo a otro, o archivo ,o lo que queramos, hasta poder formatear una partición poniendo sectores a cero.
Para los windowseros existe una aplicación llamada norton ghost, que hará una operación parecida a lo que hace este programa, aunque dd es más avanzado.
La sintaxis básica del comando es la siguiente:
dd if=origen of=destino
Donde if significa "input file", es decir, lo que queréis 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 o DVD, disco duro, diskettera, etc.), archivo de copia de seguridad o imagen de disco, etc.
Antes de seguir, indicar que hay que saber lo que se esta haciendo, ya que podemos perder datos, además antes de empezar a utilizar el comando hay que saber exactamente como se llama las particiones en linux(/dev/sda1 por ejemplo).
Hay mucha formas de verlo, ente ellas las siguientes:
Con el comando fdisk:
$ sudo fdisk -l
Con algún programa gráfico de particiones con gparted(Gnome: Sistema-Administración-Edición de particiones Gparted) o qtparted.
Si no lo tenemos instalado gparted:
$ sudo apt-get install gparted
-Haciendo imágenes ISO de un CD o DVD o de una partición:
La forma mas fácil y efectiva de crear nuestras "imágenes" de CD o DVD es la siguiente:
$ sudo dd if=/dev/cdrom of=copiadvd.iso
Si el CD o DVD está rayado y queremos hacer la copia, introduciremos los sigueinte parámetros:
$ sudo dd if=/dev/cdrom of=copiadvd.iso conv=noerror,sync
De una partición de un disco a un archivo de imagen:
$ sudo dd if=/dev/sdxy of=copiadvd.iso
Si lo anterior ademas los queremos comprimir, introduceros los siguiente:
$ sudo dd if=/dev/sdxy | gzip > copiadvd.iso.gz
La "x" es la identificadora del disco duro (a, b, c, ....) y "y" sería el número de partición del disco (1,2, ....)
El origen y el destino tendrán los mismos datos, lo que es decir tendremos dos copias.
-Copiar y restaurar Master Boot Record (MBR) (Sector arranque disco duro)
Para copiar el Master Boot Record (MBR) de un disco haremos lo siguiente:
$ sudo dd if=/dev/sdx of=mbr count=1 bs=512
Para restaurar un Master Boot Record (MBR) a partir del de otro disco lo siguiente:
Para restaurar un Master Boot Record (MBR) a partir del de otro disco lo siguiente:
$ sudo dd if=mbr of=/dev/sdx
Donde:
x:disco duro
-Clonar discos duros o particiones de disco:
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 hace lo siguiente:
$ sudo dd if=/dev/sdxa of=/dev/sdyb bs=1M (copia una partición en otra)
$ sudo dd if=/dev/sdx of=/dev/sdy bs=1M (copia de un disco duro en otro)
Dónde:
x: disco duro origen
y: disco duro destino
a: partición origen
b: partición destino
bs: Forzamos que la copia se haga en bloques de 1 megabyte y que se escriba de igual manera. Esta forma de trabajar nos permite no sobrecargar el sistema en el proceso y seguir trabajando mientras se realiza la copia.
El origen y el destino tendrán los mismos datos, lo que es decir tendremos dos copias.
-Borrar cualquier partición y disco completo de cualquier dispositivo:
$ sudo dd if=/dev/zero of=/dev/sdx (Borrado de disco completo)
$ sudo dd if=/dev/zero of=/dev/sdxa (Borrado de partición de disco)
Dónde:
x: disco a borrar
a: partición a borrar
Esta operación es muy útil para borrar completamente cualquier partición, además los datos que se borrarán no se pueden recuperar, por lo tanto es un borrado a bajo nivel y muy seguro, muy útil por ejemplo para cuando los pendrives se nos infectan de virus con nuestro querido windows.
Copiando Diskettes:
Primero insertamos el diskette origen y escribimos lo siguiente en una consola:
$ sudo dd if=/dev/fd0 of=~/diskette.img
después insertamos el diskette destino (en blanco) y escribimos lo siguiente:
$ sudo dd if=~/diskette.img of=/dev/fd0
nos queda eliminar la "imagen" que creamos y listo...
$ sudo 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:
$ sudo 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 y se puede utilizar con cualquier otro tipo de operación.
RECOMENDACIONES:
-Los datos en destino serán completamente destruidos y no se pueden recuperar.
-La partición destino siempre será igual o mayor a la de origen.
-Haz una copia de seguridad de tus datos previamete por si los pelos.
-Dd también guarda el espacio libre, por la tanto la copia es exactamente igual lo que hay en el origen que en el destino.
-Si haces una copia de seguridad en una imagen de disco, es recomendable después comprimirla para que ocupe menos espacio.
Fuentes: help dd y man dd
Fuentes: help dd y man dd
Hola que pasa si hago dd, entre dos discos el de destino tiene más capacidad que el de la fuente.
ResponderEliminarentonces como hago que el disco destino tenga la capacidad fisica que tenia y no la capacidad del disco origen???.. hay alguna forma para actualizar ese detalle?
Hola!!
ResponderEliminarTen pongo un ejemplo para que lo entiendas mejor.
Tenemos dos discos duros, uno de 5 gigas origen, y otro de 10 gigas destino.
Si copiamos el origen al destino, en este ultimo quedara la particion de 5 gigas, mas un espacio libre de 5 gigas.
Que puedes hacer con estos 5 gigas libres?
Crear otra particion,o redimensionar la que acabas de crear para que tenga 10 gigas, y de esta ultima forma tendrias una particion de 10 gigas con todos los datos de el de 5 pero con el espacio libre correspondiente.
Para redimensionar una vez realizado el clon de disco, utiliza un gestor de particiones o discos como por ejemplo gparted.
Espero que te haya ayudado,saludos!!!!
Vale por la info! Tenía la misma interrogante que el de arriba.
EliminarGracias!
ya. tengo mi iso.. creada.. pero virtual box no la levanta.. que falta.. ya di el comando
ResponderEliminardd if=/dev/cciss/c0d0 of=/mnt/disco.iso
te comento que df -h o un fdisk -l me muestra
c0d0, c0d0p1 y c0d0p2,
yo quiero todo el disco duro.. o mejor aun el arreglo completo en un .iso