Tutorial: Clonación de discos duros

maRc

A raiz del post sobre el cierre de la web del Windows UE, me surgió la idea de hacer un minitutorial sobre clonación de discos, para aquellos que reinstaleis vuestro sistema asiduamente, podais tener vuestro ordenador como el primer día en menos de 5 minutos.

Es fácil, es rápido y para toda la familia. Además, se utiliza software libre, y en este caso gratuito también, por lo que no teneis que gastar el dinero en software caro y a veces chapucero.

Empecemos.

Material necesario:

System Recovery CD: http://www.sysreccd.org
Un disco duro a clonar.
Un lugar donde almacenar la copia, ya sea temporal o no.

Recomendable:

Una partición extra donde almacenar la copia.

Procedimiento:

1- Nos dirigimos a http://www.sysreccd.org , descargamos la última versión disponible y la grabamos en un cd/dvd.

2- Instalamos nuestro sistema operativo preferido. Si queremos tener almacenada la copia en el propio disco, debemos crear una partición extra para almacenarla.
En el caso de Windows:
http://img263.imageshack.us/img263/9104/particinextraim3.jpg
Una instalación de Windows limpia, después de comprimir, ocupa poco más de un giga y medio. Si quieres instalar algún programa a parte, haz cálculos sobre cuanto te ocupará.

3- Reiniciamos el ordenador con el System Recovery CD en el lector y...
http://img263.imageshack.us/img263/783/iniciovp4.jpg
Vaya, es un livecd de linux, pero no nos asustemos. Le damos a enter.
http://img263.imageshack.us/img263/1179/keymapjn3.jpg
Seleccionamos el teclado español, escribiendo 13 y dandole a enter. Si alguno tiene otra distribución de teclado, que elija la suya.
http://img257.imageshack.us/img257/2086/cargaov9.jpg
Ha acabado de cargar. Empieza lo bueno. Tecleamos las siguientes órdenes:

fdisk -l

Esto nos muestra los discos y las particiones que tenemos. En nuestro caso, tenemos dos primarias, /dev/hda1 /dev/hda2 (hda se refiere al disco maestro del primer ide), con su tamaño y el formato de ficheros utilizado.
Si hemos creado las particiones con el instalador de Windows, nos saldría una primaria, /dev/hda1, una extendida, /dev/hda2, y una lógica /dev/hda5. Debemos utilizar la lógica, dejando la extendida como si no existiera, así que en las próximas órdenes tendremos que cambiar /dev/hda2 por /dev/hda5.
Por supuesto, se puede tener cualquier otra combinación de particiones.

mkdir /mnt/hda2 (/mnt/hda5 si fuera lógica)

Con esto creamos un directorio donde montar la segunda
partición (la primera no hay que montarla) y poder escribir en ella.

mount /dev/hda2 /mnt/hda2

La montamos.
http://img502.imageshack.us/img502/5950/particionesxx6.jpg

partimage

Ejecutamos el programa para crear la imagen.
http://img250.imageshack.us/img250/8550/partimage0he8.jpg
Ahora ya va con un modo gráfico:
Seleccionamos la partición que queremos copiar (hda1), donde crear la imagen (en /mnt/hda2/imagen.img), le decimos que la guarde ("save partition...") y pulsamos F5.
http://img263.imageshack.us/img263/7470/partimage1rj7.jpg
Las siguientes pantallas las dejamos tal cual, a no ser que alguien quiera modificar alguna opción (como por ejemplo comprimir con bzip2 en lugar de gzip, el proceso será más lento pero ocupará menos espacio), o poner alguna descripción.
http://img263.imageshack.us/img263/1360/partimage2vn1.jpg
http://img172.imageshack.us/img172/3377/partimage3lb5.jpg
Le damos a OK.
http://img263.imageshack.us/img263/7584/partimage4ax1.jpg
Todo acaba perfectamente.
http://img263.imageshack.us/img263/3761/partimage5pp8.jpg
Vemos la imagen creada.
http://img525.imageshack.us/img525/6170/imagencreadavb8.jpg

startx

Iniciamos las ventanas.

gparted

Utilizamos un gestor de particiones.
http://img256.imageshack.us/img256/6374/gparted0nw6.jpg
Seleccionamos la partición donde hemos creado la imagen, le damos a manage flags.
http://img261.imageshack.us/img261/2010/gparted1tx0.jpg
La marcamos como Hidden. Así no podremos acceder a ella desde Windows y no nos molestará para nada.
http://img261.imageshack.us/img261/5382/gparted2nn4.jpg
Le damos a Apply.
http://img261.imageshack.us/img261/5766/gparted3gm3.jpg
Y voilà, todo hecho. Para apagar, escribimos

poweroff

http://img263.imageshack.us/img263/4268/poweroffqp1.jpg

Para restaurar una imagen, iniciamos el ordenador como antes, montamos la partición que pertoque y ejecutamos el partimage otra vez.
Seleccionamos la partición a restablecer, la imagen de donde lo va a copiar y marcamos "Restore partition from an image file". F5.
http://img263.imageshack.us/img263/6016/partimage6eb3.jpg
La siguiente pantalla la dejamos tal cual.
http://img263.imageshack.us/img263/2428/partimage7xg9.jpg
OK. Yes.
http://img263.imageshack.us/img263/8256/partimage8rl0.jpg
http://img263.imageshack.us/img263/2631/partimage9fj9.jpg
Y acaba todo perfectamente
http://img263.imageshack.us/img263/2507/partimage10lp7.jpg

Notas:

  • También se pueden crear imágenes de instalaciones "sucias" (que llevan ya tiempo utilizándose), pero si el disco está formateado con NTFS es posible que la copia no salga bien. Solo puede fallar al realizar la imagen, si esta se ha creado siempre se va a poder restaurar.
    El posible fallo se debe a que NTFS es un formato propietario, y aunque se ha investigado mucho como funciona, todavía faltan por saber algunas cosas.
  • Si no quieres guardar la imagen en el propio disco, puedes copiarla a otro disco interno, a uno externo (o un pendrive), a una carpeta compartida (con samba)...

Como restaurar el MBR:

Acabo de probarlo con una máquina virtual, así que puede que el procedimiento varíe ligeramente para cada ordenador.
En este caso, según parece no podemos tener montada ninguna partición para restaurar el MBR, así que vamos a copiar la imagen al ramdisk (un disco virtual que se crea en la ram). El problema es que la imagen puede ser (y probablemente será) mayor que la ram que tenemos en el pc, así que debemos copiar solo el principio. Montamos la partición como antes y escribimos:

cp /mnt/hda2/imagem.img.000 /root
Y acto seguido (con que transcurra un segundo basta) pulsamos Control+C para abortar la copia. Podemos comprobar que se ha copiado algo con:

ls -lh /root

que nos lista los ficheros que hay en el directorio /root

Luego vamos al partimage como antes y seleccionamos la opción del MBR. Aquí tenemos que seleccionar a ambos lados el mismo MBR. Tal vez nos de un aviso de que no se corresponden o similar, pero si te has cargado el MBR, de perdidos al río...

erdanblo

Gracias Marc, yo siempre lo había hecho con el Ghost y el HirensCD, y una vez lo hice con una LiveCD de Ubuntu y partmagic y no fue nada difícil.

TheV1ruSS

esas cosas siempre vienen bien a los novatos, les quita el dolor de cabeza y ahorran tiempo en preguntas interminables, aver si algun moderador lo pone en FAQ's.Quien lo necesita te tiene que dar las gracias por el tiempo perdido en la realizacion de este post.Saludos!

CuXiLLo

Grandisima guía, espero que la pongan con chincheta, muy currado, buen trabajo

Y

Añadir un par de comentarios y un par de mejoras al tutorial de #1:

El partimage tiene la ventaja de crear imágenes de particiones del tamaño de uso de dicha partición. Osea, si tienes una imagen de 20 gigas pero solo ocupado 7, te creará una imagen de 7 gigas, luego ahí puedes aplicar compresión y sería más pequeño, pero bueno, estamos hablando de un volcado en raw.

Pero si realmente queremos tener un clon exácto de la partición, es mejor usar dd o cat

sería así:

dd if=/dev/hda1 of=archivo.img

o también

cat /dev/hda1 > archivo.img

donde /dev/hda1 sería la partición a clonar y archivo.img el nombre del archivo de imagen con el nombre que querais llamarlo.

Para restaurar la partición sería justo al revés

dd if=archivo.img of=/dev/hda1

o también

cat archivo.img > /dev/hda1

Con esto lograreis un clon exácto de vuestra tabla de particiones, eso sí, si la partición es de 20 gigas, la imagen medirá 20 gigas. Este método es solo útil cuando, por algún motivo, necesitas un clon exácto de tu disco, sin diferencia alguna. Eso sí, es mucho más lento y no tiene verbose (barra de progreso) como el partimage, por ello, dependiendo de las necesidades es mejor partimage o usar estos dos métodos.

En cuanto a la mejora de #1, falta salvar el mbr y la información de la tabla de particiones, siempre y cuando esos discos estén desmontados, pero como usais un liveCD no hay problema ;).

Por que? bueno, imaginaos que se casca vuestro mbr... o cambiais de disco duro, sin la tabla de particiones y el mbr no podreis restaurar la imagen (sobre todo si usais compresión bzip2).

En teoría el partimage salva el mbr, pero por si acaso, siempre es mejor tener una copia de ella y restaurarla antes de restaurar la imagen.

Para hacer una copia del mbr sería así:

dd if=/dev/hda of=archivo.mbr count=1 bs=512

donde /dev/hda es vuestro primer disco duro (fijaos que no pongo número, pues hago referencia al disco duro en sí, no a la partición) y archivo.mbr es la copia de vuestro mbr de disco. Los otros dos datos se refiere que solo haga una copia de los primeros 512 bytes del disco (que es donde se guarda el mbr).

para restaurarlo simplemente

dd if=archivo.mbr of=/dev/hda (otra vez más, sin indicar número).

Para hacer una copia de la tabla de particiones:

sfdisk -f /dev/hda > archivo.tp

Igual que antes /dev/hda no tiene número y archivo.tp es el fichero donde se guarda la información de vuestra tabla de particiones.

Para restaurarla sfdisk /dev/hda < archivo.tp

fijaos que esta vez no pongo el disco y el archivo.tp al revés, sino que le doy la vuelta al > para ponerlo <, de esta manera le indico al sfdisk que la entrada de información será desde ese fichero.

Estas dos últimas acciones siempre han de hacerse antes de crear la imagen de disco y antes de restaurarla, para que los cambios tengan efecto.

Saludos.

[EDITO] Se me olvidaba, el ntfs se puede restaurar, siempre y cuando esté defragmentado el disco y no esté comprimido ;)

erdanblo

Osea, si yo yo miro el tamaño de /dev/hda1 y si yo tengo /home montado en hda1 y ocupa 20gb, /dev/hda1 debe ocupar 20gb, ¿no?

VOY A VER.

Y

El espacio total de tu partición es el tamaño de la partición.

Pero no vayas a hacer un du -sh /dev/hda1, pues no te va a dar ese tamaño. /dev/hda1 es un fichero de bloques, que lo único que hace (por explicarlo de alguna manera) es ser intermediario entre el sistema y tu disco duro.

Cuando tu haces un dd if=/dev/hda1 of=archivo.img lo único que hace es un volcado de lo que le devuelva /dev/hda1 a dd, pero no significa que /dev/hda1 mida 20 gigas, sino la partición a la que representa.

Por cierto, si vais a manipular particiones teneis que hacerlo con la unidad desmontada u os la podeis cargar. Si es la partición del sistema, usar un liveCD

A

Buena guía, siempre es útil tener una copia de una instalación limpia por lo que pueda pasar.

Shalauras

Muy buena guia Marc, pero perdona que discrepe, no es mejor hacerlo con una .gho del norton ghost y guardal en una particion d datos y cdo la cagues o cualkier historia, cn tu cd d norton ghost arrancable, señalas la *.gho y a volar :D
No se, yo lo veo algo menso lioso x el tema d los cmandos d linux... xa algunos no sabe ni q ponen :P

A

A mi me parece más sencillo con partimage.
En todo caso, hay un par de detalles importantes...

Norton Ghost

  • Precio: 70 USD
  • Plataformas: Windows® XP Home Edition/Professional
    Windows 2000 Professional SOLAMENTE (de la web oficial de symantec).
  • 160 Mb de espacio en disco duro.
  • Microsoft .NET 1.1 Framework.
  • Soporte de sistemas de ficheros:
    FAT16, FAT16X, FAT32, FAT32X
    NTFS, EXT2 y EXT3

Partimage:

  • Precio: 0, es libre y gratuito.
  • Plataformas: Todas, es un LiveCD que ni siquiera necesita sistema operativo instalado para funcionar.
  • Soporte de sistemas de ficheros:
    FAT16, FAT16X, FAT32, FAT32X
    NTFS, EXT2, EXT3, Reiser 3, HPFS
    JFS, UFS, HFS (mac os), NTFS.
maRc

#9, si es lo mismo que hace el Norton Ghost pero con otros programas.

Lo único "extraño" es como montar la partición, y en todo caso ocultar la partición, para no verla luego durante el uso normal del pc.

#5, cuando tenga tiempo actualizo con lo tuyo ;)

Usuarios habituales