miércoles, 9 de enero de 2008

Clonado Ubuntu vía SSH

El problema era clonar el Ubuntu 7.10 que tenía funcionando en una máquina Virtual PC hacia el disco de 650 GB de mi nuevo servidor Linux. No fue buena idea, al parecer el disco virtual de tamaño dinámico no se llevaba bien con la estructura del disco de 650 GB, parece que había un problema de emulación SCSI vs. IDE/PATA.

En la práctica esto significó que aunque el disco se clonó, el Linux copiado en el server tuvo muchos problemas del tipo "segmentation faults" que hicieron al sistema clonado inoperante. Peor todavía, al tratar de instalar el gOS que venía con la motherboard, manteniendo el disco clonado en otra partición, comenzaron a aparecer problemas de hardware, congelamiento, errores I/O etc. La única forma de solucionarlo fué haciendo una partición que ocupa todos los 650 GB del disco duro, total, eso más tarde se puede modificar.

En todo caso el procedimientoes de clonar por ssh es el mismo que se usa para hacer backup remoto de servidores, así es que lo describiré porque puede servir para otras cosas.

En el laptop IPCLENOVO tengo Windows XP y varios Linux en máquina virtual, entre ellos el Ubuntu 7.10. Para arrancar el server usé un live CD con trinity-rescue-kit.3.3-build-306.iso, una vez arrancado hice ifconfig para ver la IP de ese equipo (192.168.1.103), luego arranqué el Ubuntu 7.10 desde Virtual PC y con ifconfig también anoté la IP (192.168.1.109) luego hice ping para ver sis se conectaban sin problemas cosa que ocurrió.

Luego volvi a arrancar Trinity en el server, pero esta vez con la opción SSH server habilitada. En el Ubntu 7.10 de Virtual PC instalé el meta-paquete ssh. Luego me fuí a Windows en el laptop y usando Putty abrí sesiones ssh para 192.168.1.103 (server con Trinity) y a 192.168.1.109 (para Ubuntu 7.10 VPC)). Ingresadas estas sesiones y autentificado, seguí el procedimiento indicado en este link, para hacer la transferencia. Fundamentalmente consiste en:

nc -l -p 9000 | dd of=/dev/hda en el sistema con Trinity

Luego en la sesión de Ubuntu Virtual PC

sudo bash
dd if=/dev/sda | nc 192.168.1.103 9000

Aparentemente no ocurre nada, exepto que los prompts desaparecen de ambas sesiones, pero la actividad de los discos duros muestra que se está haciendo la transferencia de los 16 GB desde el Ubuntu Virtual PC hacia el server con Trinity, después de casi una hora, esta transferencia se completa. Los conceptos clave en este caso son: la transferencia por cables de la red local usando ssh (ambos equipos van conectados por cable al router), el esquema amo-esclavo de conexión y el comando dd para clonar un disco.