domingo, 30 de septiembre de 2012

Clonar discos duros o particiones con dd en Linux

Voy a explicar como clonar un disco duro en otro o una particion de un disco duro en otra partición de otro disco duro en Linux con el comando dd.
¿Para qué nos sirve esto? Cuando una partición de un disco A se nos ha quedado pequeña y queremos pasar todos los datos de esa partición a otra particion de otro disco duro B con mas espacio.
Lo primero que necesitamos es arrancar con cualquier distribucion Live CD de Linux (Ubuntu, Knoppix,...etc  cualquiera sirve porque todas tiene en comando dd).
Supongamos que tenemos una particion 1 en un disco duro A con los datos que queremos copiar a la otra particion del disco duro B.
Y también tenemos otro disco duro B nuevo (sin particiones)
Lo primero que tenemos que hacer es crear una partición en el disco duro B con (MUY IMPORTANTE) al menos el mismo espacio o más que la particion 1 del disco duro A.
Ahora necesitamos distinguir claramente cuales son las particiones del disco duro A y las del B.
Algunas ditribuciones (como el Mini Linux de HBCD y otras muchas) al arrancar nos meten en el fichero /etc/fstab una entrada por cada particion de cada disco duro que ha encontrado; haciendo cat /etc/fstab veremos esta informacion. Por ejemplo podria se algo asi:
/dev/sda1      /mnt/sda1   .......
/dev/sda2      /mnt/sda2  ........
/dev/sdb1      /mnt/sda1   ......
La primera linea indica que ha encontrado la primera particion del disco 1 en /dev/sda y se puede montar para ver sus datos en el directorio /mnt/sda1. Para montar esta particion y poder ver los datos podemos ejecutar mount /dev/sda1 y entrando en /mnt/sda1 veremos los datos de esta partición. Igual con las demás.

Supongamos que queremos pasar los datos de la particion del disco sda1 a la del disco sdb1. Pues para esto ejecutamos:
dd if=/dev/sda1 of=/dev/sdb1 bs=1M
Si la particion sda1 era una particion de arranque y queremos quitar el disco duro A y dejar solo el B, tenemos que copiar tambien el MBR(Master Boot Record) en la particion sdb1.
Esto se hace con el comando:
dd if=/dev/sda1 of=/dev/sdb1 bs=1M count=1 bs=512
Con esto ya podriamos arrancar solo con el disco duro B que contiene exactamente lo que contenía A pero tiene mas espacio.
El comando tambien sirve para otras cosas como :
-Copiar un disco duro entero (con todas sus particiones) en otro:
dd if=/dev/sda of=/dev/sdb bs=1M
-Crear una imagen de una particion de un disco duro en un fichero:
dd if=/dev/sda1 of=particion_sda1.bin
-Crear la imagen comprimida:
dd if=/dev/sda1 | gzip > of=particion_sda1.bin.gz
-Crear una imagen de un CD o DVD con problemas de lectura debido a que esté rayado:
dd if=/dev/cdrom of=/tmp/dvd_recuperado.iso conv=noerror,sync
-Eliminar el MBR sin alterar la tabla de particiones. Esto sirve para eliminar del disco el GRUB sin tocas las particiones:
dd if=/dev/zero of=/dev/sda bs=446 count=1

 

 

No hay comentarios:

Publicar un comentario