El comando dd (Dataset Definition), es una herramienta sencilla, útil, y sorprendente, a la vez que desconocida por muchos. Esta aplicación fue creada a mediados de los 70, en principio para Unix, simplemente porque no existía. Pero al contrario que otras herramientas que desde su creación se han ido sofisticando, ésta se ha ido simplificando, hasta el punto de poder hacer lo mismo que buenos programas comerciales como Norton Ghost o libres como CloneZilla, con sólo una pequeña orden en la línea de comandos.
Ni que decir tiene que toda la información de dd la podéis consultar con el comando man dd e info dd, también dos grandes olvidados…
Al lío…
Lo primero siempre es tener claro el disco duro de origen y el de destino, algo que averiguamos fácilmente con el comando (como root) fdisk -l.
La sintaxis más básica, sería ésta [como root]:
Por lo que si quisiéramos clonar un disco duro:Código:dd if=[origen] of=[destino]
O:Código:dd if=/dev/hda of=/dev/hdb bs=1M con esto clonaríamos el disco hda en hdb. (discos IDE)
Con bs=1M, estamos diciendo que tanto la lectura como la escritura se haga en bloques de 1 megabyte (menos, sería más lento pero más seguro, y con más nos arriesgamos a perder datos por el camino).Código:dd if=/dev/sda of=/dev/sdb bs=1M para discos SATA
Hay que tener en cuenta que de esta forma grabarás el disco “tal cual”, MBR, tabla de particiones, espacio vacío, etc., por lo que sólo podrás grabar en un disco del mismo o mayor tamaño.
Vamos a ver algunos ejemplos prácticos y opciones de este comando:
Grabaríamos sólo la primera partición del disco de origen en el de destino.Código:dd if=/dev/hda1 of=/dev/hdb bs=1M
Grabaríamos el disco completo en la primera partición del disco de destino.Código:dd if=/dev/hda of=/dev/hdb1 bs=1M
Crear una imagen del disco duro, puede ser bin o iso (a partir de ahora utilizaré nuestro home como ejemplo). Como root:Código:dd if=/dev/hda of=/home/hda.bin
Crearíamos con el anterior comando una imagen del disco comprimida, (podemos utilizar gzip, bzip o bzip2.)Código:dd if=/dev/hda | gzip > /home/hda.bin.gz
Crea una imagen de un CD:
Para montar la imagen del CD:Código:dd if=/dev/cdrom of=/home/imagendeCD.iso
Copiar el Master Boot Record:Código:mount -o loop imagedeCD.iso /mnt/home
Para restaurar el MBR:Código:dd if=/dev/hda of=mbr count=1 bs=512
Copiar el Volume Boot Sector (VBS):Código:dd if=mbr of=/dev/hda
Para restaurar el VBS:Código:dd if=/dev/hda of=/home/sector_arranque_hda count=1 bs=512
Código:dd if=/home/sector_arranque_hda of=/dev/hda
Algunas curiosidades:
Recuperar un DVD rayado:
Esto no recupera todo el DVD, en este caso, sólo los sectores legibles. Sirve también para discos duros defectuosos.Código:dd if=/dev/cdrom of=/home/dvd_recuperado.iso conv=noerror,sync
La opción noerror sirve para obviar los errores de lectura en cualquier situación. Otro ejemplo sería:
Grabaríamos con ello una imagen del disco duro en nuestro home saltándonos los errores del disco (muy útil para discos que se están muriendo).Código:dd conv=noerror if=/dev/hda of=~/home/imagen_disco_con_errores.iso
Limpia nuestro MBR y la tabla de particiones:
Limpia el MBR pero no toca la tabla de particiones (muy útil para borrar el GRUB sin perder datos en las particiones):Código:dd if=/dev/zero of=/dev/hda bs=512 count=1
Crea un archivo vacío de 1 Mb, una opción muy interesante como ahora veremos:Código:dd if=/dev/zero of=/dev/hda bs=446 count=1
Crear un archivo swap de 2Gb así de fácil:Código:dd if=/dev/zero of=archivo_nuevo_vacio bs=1024 count=1024
Al borde de la paranoia… Convierte todas las letras en mayúsculas:Código:sudo dd if=/dev/zero of=/swapspace bs=4k count=2048M mkswap /swapspace swapon /swapspace
Cambia en todo el disco, la palabra Puigcorbe por Slqh, ( puedes cambiar rápidamente tu nombre a todos los archivos del disco):Código:dd if=miarchivo of=miarchivo conv=ucase
Llena el disco con caracteres aleatorios cinco veces. No va a quedar ni rastro de información en el disco.Código:dd if=/dev/sda | sed ‘s/Puigcorbe/Slqh/g’ | dd of=/dev/sda
(*) Nota final: utiliza este comando con precaución, y asegúrate siempre del orden y nombre de tus discos duros, porque lo mismo que te clona un disco te lo borra ‘en un plis’.Código:for n in {1..5}; do dd if=/dev/urandom of=/dev/hda bs=8b conv=notrunc; done
Visto en LinuxZone

Normas
Juegos
Chicas del Día


Citar
Marcadores