en to es guadapeich
La idea com�n subyacente a todos los m�todos descritos a continuaci�n es establecer una conexi�n de red entre el ordenador "origen" (el que va a ser clonado) y el ordenador "destino" (el clon). Esto es simple si ambos est�n conectados a un hub, en otro caso puedes conectar las tarjetas de red mediante un cable cruzado (los cables rectos normales no se pueden utilizar). Para el PC destino, un Live-CD (como Knoppix o LNX-BBC) o una instalaci�n minimalista es necesaria de tal forma que la tarjeta de red est� operativa y ssh y/o netcat puedan ser usados. Hay tambi�n algunas distribuciones en disquete que te lo permitir�n (en mi equipo tomsrtb no levant� la tarjeta de red al inicio). Si quieres instalar una nueva distribuci�n, esa es tambi�n una alternativa f�cil. Ambos ordenadores necesitan ser configurados con direcciones IP en la misma red de forma que puedan "hablar" uno con otro, como se muestra en la ilustraci�n superior.
Con la configuraci�n b�sica descrita hay varias formas de realizar el clonado:
ssh-keygen -t rsaPara mantener las cosas simples, no entres una clave. La llave p�blica est� en el archivo /root/.ssh/id_rsa.pub. Copia este archivo al PC origen mediante
scp /root/.ssh/id_rsa SourcePC:/tmpdonde SourcePC es la direcci�n IP del PC origen. Cuando pregunte si estas seguro, teclea un completo ''yes'' (solamente "y'' algunas veces no funciona). Estas todav�a siendo preguntado por la contrase�a de root en el PC origen. Ahora agrega el PC destino como un nodo de la red confiable mediante
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keysen el PC origen. Para comprobar si todo est� correcto, repite el anterior comando de copia en el PC destino. No ser�s preguntado mas por la contrase�a.
El primer paso es siempre particionar el disco duro en el ordenador destino y entonces crear el sistema de ficheros ext2/ext3. El �ltimo es activar la variante preferida de journalling simplemente colocando la opci�n -j (journalling) en mke2fs (requiere tener soporte ext3 en el kernel). Puedes incluso convertir un sistema ext2 a ext3, mira tune2fs(8). Digamos que en el ordenador origen tenemos la configuraci�n siguiente:
Partici�n | Tama�o | Usada | %Usada | Montada en |
---|---|---|---|---|
/dev/hda3 | 2.7G | 552M | 22% | / |
/dev/hda5 | 7.8G |
1.6G | 22% | /usr |
/dev/hda7 | 6.3G | 1.7G | 28% | /usr/share |
/dev/hda8 | 3.4G | 601M | 19% | /home |
/dev/hda12 | 5.3G | 1.9G | 37% | /opt |
/dev/hda1 | 587M | 70M | 13% |
/var/backup |
Recomiendo hacer siempre alguna clase de partici�n. Si no en caso de fallo en el sistema de ficheros o corrupci�n de algunos sectores del disco duro se pueden destruir todos tus datos. Y de acuerdo a la Ley de Murphy, es seguro que suceder� si no tomas precauciones usando particiones diferentes en vez de usar una �nica. Tuve un caso recientemente con un kernel gracioso y no hab�a particionado el disco, perd� todos mis datos sobre el sistema de ficheros corrupto. Arriba se muestra que /usr se hizo demasiado grande, por eso /usr/share ha sido a�adido. Es el momento para conseguir un disco duro mayor.
En el PC destino lanza parted (recomendado) o tu particionador favorito (Qtparted es una bonita variante en modo gr�fico, que dice ser un clon de Partition Magic). Crea particiones al menos tan grandes como las del PC origen. No olvides la partici�n swap. Despu�s de salvar la tabla de particiones, instala un sistema de ficheros en todas la particiones recientemente creadas, usandomke2fs -j -L <label> /dev/xxxdonde xxx es el nombre de la partici�n y <label> una etiqueta. Normalmente uso cosas como ''/usr'' como etiquetas (las ver�s en el arranque). Puedes configurar varias cosas mediante tune2fs(8), como la revisi�n del sistema de ficheros de forma regular.
mount /dev/xxx /mntAl clonar es necesario cambiar al directorio destino
cd /mntAhora la red, teclea en el PC destino
ssh targetPC 'dump -0 -f - /' | restore -r -f -donde targetPC es la direcci�n IP del ordenador destino. Las opciones significan ''-0'' para una copia de seguridad completa, ''-f -'' le dice que use stdin/stdout como descriptor de archivo y ''-r'' indica a restore que recree el sistema de ficheros mediante volcado por la red en el PC destino. Para m�s opciones mira dump(8) y restore(8). Abajo puedes ver la salida para transferir el sistema de ficheros ra�z.
$ ssh 10.42.3.42 'dump -0 -f - /' | restore -r -f - DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005 DUMP: Dumping /dev/hda3 (/) to standard output DUMP: Label: debian DUMP: Writing 10 Kilobyte records DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 547312 blocks. DUMP: Volume 1 started with block 1 at: Tue Feb 22 15:50:14 2005 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: Volume 1 completed at: Tue Feb 22 15:51:43 2005 DUMP: Volume 1 546590 blocks (533.78MB) DUMP: Volume 1 took 0:01:29 DUMP: Volume 1 transfer rate: 6141 kB/s DUMP: 546590 blocks (533.78MB) DUMP: finished in 89 seconds, throughput 6141 kBytes/sec DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005 DUMP: Date this dump completed: Tue Feb 22 15:51:43 2005 DUMP: Average transfer rate: 6141 kB/s DUMP: DUMP IS DONERestore siempre crea un archivo restoresymtable el cual puede ser borrado una vez que estas convencido de que no se han producido errores durante la reconstrucci�n del sistema de ficheros. Finalizado el sistema de ficheros ra�z, ahora procedemos con cada partici�n, comenzando con /usr (asumiendo que tu actual directorio de trabajo es la ra�z del futuro sistema de ficheros).
mount /dev/xxx ./usr cd ./usr ssh targetPC 'dump -0 -f - /usr' | restore -r -f -El ciclo mount-cd-dump/restore se repite para todos los directorios que tengas. Con miras a /usr/share (el cual en el PC origen tiene su propia partici�n) puedes, despu�s del paso anterior, simplemente cambiar al directorio ./usr/share (f�jate en el ".") y entonces repetir
ssh targetPC 'dump -0 -f - /usr/share' | restore -r -f -Restore solo se queja si los archivos existen en el sistema de ficheros que est� siendo restaurado, as� cuando ponemos dos particiones diferentes del PC origen en el PC destino no hay problema. Clonar un PC completo tom� sobre una hora con ssh y tarjetas de red de 100MB (con cable cruzado algo m�s).
Nota: Para volcar un sistema de ficheros, no es necesario que est� montado. Puedes tambi�n pasar un nombre de partici�n, como /dev/hda6, en vez del nombre del directorio donde se monta la partici�n.
Una alternativa, en vez de usar ssh, es netcat(1) que se abrevia como nc. Netcat es la navaja suiza de los TCP/IP cliente-servidor y permite crear una tuber�a sobre la red. El ejemplo anterior es entonces modificado como sigue. Asumimos que la partici�n montada bajo /var/backup va a ser transferida mediante dump/restore desde el PC origen a el PC destino.
En el punto de llegada (PC destino) crea una sesi�n de escucha de netcat v�a -l que vuelque su salida a restore.nc -l -p 2000 -q 1 | restore -r -f -En el PC origen crea otra sesi�n de netcat que tome su entrada desde una tuber�a donde target-IP es la direcci�n IP del PC destino.
dump -0 -f - /var/backup | nc <target-ip> 2000La opci�n -q es para parar nc despu�s de recibir el final del fichero, pero yo tengo que terminarlo manualmente en mi caso. Recomiendo usar ssh de todas formas.
grub> root (hd0,xxx) ... filesystem is ... grub> setup (hd0) ... lots of output here grub> quito corre grub-install /dev/xxx donde xxx es tu disco duro. Aqu� comprueba ambos, root (hdn,xxx) y la configuraci�n a�adida a root=/dev/xxx.
En el caso com�n de que ahora tengas mejor hardware en el PC clonado nuevo, querr�s actualizar la configuraci�n de tu kernel a medida. Si estas usando un sistema que viene con montones de m�dulos preconfigurados (como RedHat, SuSe, Mandrake, Fedora ...) no te preocupes, es bastante posible que exista un m�dulo utilizable. En caso contrario, lspci -vv y compilar el kernel es algo com�n y est� descrito en muchos sitios. Si tu tarjeta gr�fica es diferente ahora, actualiza /etc/X11/XF86Config-4 (o xorg.conf en RH/Fedora) para reflejarlo, o no tendr�s salida gr�fica. Es posible usar las herramientas de gr�ficos para configurar X arrancando en el nivel 3 si tienes esas herramientas. En debian, alguna investigaci�n es necesaria, yo fui afortunado al encontrar que el controlador cambi� de r128 a radeon y eso fue lo que hice.
Este c�mo explica el procedimiento de clonado para sistemas de ficherosext2/ext3. �rdenes muy similares se pueden encontrar en muchos otros sistemas. Por ejemplo, varios Unices como FreeBSD, HP-UX, IRIX tambi�n suministran las �rdenes dump/restore; en Solaris se llama ufsdump/ufsrestore. Hay sistemas de ficheros que no ofrecen la utilidad de volcado, por ejemplo ReiserFS. En este caso recomendar�a usar rsync. Mira [1] para un informe de clonado de un sistema Linux con �xito.