SystemImager
Se trata de una herramienta que facilita la instalación y administración de toda una red local con máquinas Linux. Los cambios hechos en un PC concreto se actualizan en el resto de la red. Incluso podemos crear un disquete de arranque que permite la clonación de un equipo, de forma que hasta se particiona y formatea el disco duro de forma automática
Notas
- Este artículo se basa en la documentación oficial del programa (http://www.systemimager.org/doc/html/) y en las pruebas que hemos hecho; y forma parte de la documentación del CursoFormacion051106CU002
- La instalación de SystemImager requiere conocer la ClaveDeroot
- En la distribución Debian Etch (actual testing) programa getimage se llama si_getimage

Instalando systemimager-server
Este paquete lo instalaremos, en principio, en un único equipo de nuestra red que actuará como servidor de imágenes y servirá para que otros equipos se actualicen o instalen desde él. Lo ideal es utilizar como servidor un equipo aparte de los que se estén usando en el aula (un viejo PC por ejemplo).
En el momento de escribir este tema el repositorio de Guadalinex Edu 2.0 no permite la instalación de este paquete con todas sus dependencias, por lo que tendremos que editar el fichero /etc/apt/sources.list y ampliarlo con el repositorio de Debian testing (sarge). A continuación ejecutaremos
apt-get update
Ahora ya podemos instalar el paquete systemimage-server usando synaptic o con el comando
apt-get install systemimager-server
Una vez finalizada la instalación, podemos volver a dejar el fichero /etc/apt/sources.list tal como estaba en un principio y ejecutar nuevamente apt-get update.
Instalando systemimager-client en el golden-client
La documentación (y los comandos) del SystemImager se refieren al golden-client como a un equipo de nuestra red (que está perfectamente instalado y actualizado) que queremos utilizar como modelo para que los demás se sincronicen con él. Se trata de un equipo distinto al que hemos llamado servidor.
Al igual que hemos hecho en el servidor, en el golden-client tendremos que actualizar el fichero /etc/apt/sources.list y ejecutar a continuación apt-get update
En el golden-client instalaremos el paquete systemimager-client (con synaptic o con el comando apt-get install systemimager-client)
Creando una imagen del golden-client en el servidor
El golden-client es el ordenador que queremos usar como imagen para que todos los demás se sincronien con él.
- En el golden-client ejecutaremos el comando
prepareclient –server ip_del_servidor
Por ejemploprepareclient –server 192.168.0.78
Si ejecutamos simplementepreparaclientse nos mostrará una ventana de ayuda recordándonos los otros parámetros.
Durante el proceso de creación de la imagen (que se almacena en el servidor) es recomendable no ejecutar ningún programa en el golden-client salvoprepareclient - En el servidor ejecutamos el comando
getimage -golden-client ip_del_golden-client -image _nombre_que_elijamos_para_la_imagen
por ejemplogetimage -golden-client 192.168.0.13 -image equipos_nuevos_glinex2.0
Si ejecutamos simplementegetimagese nos mostará una ventana de ayuda recordándonos los otros parámetros. Dependiendo de la distribución que usemos, puede que el programa getimage se llame si_getimage
- Nota: Si en nuestra red tenemos dos (o más) tipos de equipos (por ejemplo equipos antiguos y nuevos) podemos utilizar el mismo servidor para crear las distintas imágenes, usando distinto nombre al ejecutar
getimage(por ejemplogetimage -golden-client 192.168.0.13 -image equipos_antiguos_glinex2.0). Naturalmente necesitaremos un golden-client para los equipos nuevos y otro golden-client (un equipo antiguo) para los equipos antiguos.
Una vez creada la imagen en el servidor se nos preguntará si queremos crear/actualizar los scripts de autoinstalación (clonación). Respondemos afirmativamente y seleccionamos a continuación la opción 2 (los equipos usan IP estática), o de lo contrario tendremos que instalar un servidor DHCP en nuestra red y configurarlo especialmente para el systemimager.
Se nos preguntará si queremos ejecutar addclients. En principio responderemos negativamente y sólo ejecutaremos este comando si queremos usar la imagen para clonar equipos en nuestra red
Actualizando un equipo (cliente) de la red local
Ahora queremos actualizar, usando la imagen del golden-client que hemos salvado en el servidor, otro equipo de la red local. Para ello en primer lugar tendremos que instalar el paquete systemimager-client de la misma forma que lo hicimos en el golden-client
Una vez instalado el paquete, sólo necesitamos ejecutar el comando
updateclient -server ip_del_servidor -image nombre_de_la_imagen
Por ejemplo updateclient -server 192.168.0.78 -image equipos_nuevos_glinex2.0
Es muy conveniente reiniciar el PC una vez haya sido actualizado, lo que se consigue automáticamente si ejecutamos
updateclient -server 192.268.0.78 -image equipos_nuevos_glinex2.0;reboot
Si ponemos halt en lugar de reboot, el equipo se apagará tras la actualización.
- Al actualizar un equipo de la red local desde la imagen de otro, por defecto se respeta (no se actualiza) el directorio /home y una serie de ficheros que contienen información específica de cada PC (por ejemplo /etc/hostname, /etc/network/interfaces). Estas opciones son configurables.
¿Y si falla el comando updateclient?
- El comando
updateclientnos sirve entre otras cosas para reparar nuestro sistema a partir de una imagen sana. Sin embargo si el propio paquetesystemimager-cliento cualquier otro vinculado a él está estropado u obsoleto, es muy posible que el comando falle. - Para reparar o actualizar el systemimager-client, ejecutaremos como root:
apt-get update
apt-get install updateclient - Después de actualizar el systemimager-client en el golden-client es recomendable actualizar la imagen en el servidor.
Instalando desde cero un equipo de la red (clonación con un disquete)
Queremos ahora instalar desde cero un PC de la red local, con hardware idéntico al equipo usado como golden-client, cuya imagen ha sido salvada en el servidor de imágenes.
Necesitamos configurar el servidor de imágenes para esta opción, ejecutando el comando
addclients
Tendremos que rellenar una serie de datos sobre los nombres y las IPs de los PC que vamos a generar por clonación
- domain name Nombre de dominio (domain name). Podemos usar cualquier nombre de dominio inexistente en Internet, como
aulao el que nos haya indicado nuestro proveedor de Internet. - base host name Prefijo por el que empiezan los nombres de nuestros PCs. Algo típico sería poner como prefijo
pc - número inicial y número final. Si ponemos 12 y 27 respectivamente, el servidor esperará que se instalen los equipos llamados pc12, pc13, … pc27
Necesitamos también un diskette de 1.44 MB, que insertaremos en la disquetera del servidor de imágenenes para ejecutar a continuación el comando
mkautoinstalldiskette
Tenemos ahora un disquete de arranque que nos serviría tal como está si instalamos (y configuramos adecuadamnete) en el servidor de imágenes un servidor DHCP. En general esto no es conveniente, pues lo normal es que ya estemos usando nuestro router ADSL como servidor DHCP.
Montamos el disquete (que todavía está en la disquetera)
mount /floppy y creamos (o copiamos) en él un fichero llamado local.cfg cuyo contenido sea similar al siguiente (es imprescindible asignar valor a todas las variables)
HOSTNAME=pc23 DOMAINNAME=aula DEVICE=eth0 IPADDR=192.168.0.23 NETMASK=255.255.255.0 NETWORK=192.168.0.0 BROADCAST=192.168.0.255 GATEWAY=192.168.0.1 GATEWAYDEV=eth0 IMAGESERVER=192.168.0.78
Por último desmontamos el disquete ejecutando
umount /floppy (si estamos en /floppy tendremos que salir antes de poder desmontar el disquete ejecutando, por ejemplo, cd)
Ahora ¡basta arrancar con este disquete el PC que queremos clonar! y esperar un tiempo que dependerá de lo grande que sea la imagen.
¿Qué pasa si no funciona el disquete o no tenemos disquetera?
Si el fichero local.cfg es correcto y el disquete de arranque no logra activar la tarjeta de red o acceder al disco duro se debe a que tenemos harware poco común (o demasiado reciente) y es necesario actualizar el núcleo.
Una forma de solucionar el problema es clonar el PC con PartitionImage en lugar de SystemImager. En este caso podemos crear un CD de arranque que contenga la imagen de la partición.
También podemos arrancar el sistema con el KnoppixCD y utilizar rsync para descargar los ficheros, para a continuación reconfigurar el gestor de arranque (Lilo en GuadaLinex Edu). Los pasos a seguir una vez iniciado el sistema con el KnoppixCD (que podemos usar en modo texto, escribiendo knoppix 2 en el momento del arranque) son:
- Ejecutamos
cfdisky particionamos según nuestras necesidades. No es necesario que la partición donde vamos a instalar el sistema tenga el mismo tamaño que la correspondiente delgolden-client - Formateamos la partición donde vamos a clonar el sistema (aunque es posible que Knoppix nos obligue a reiniciar el sistema antes de hacer esto). Si la partición que vamos a usar en
/dev/hda2es tipo ext3, tendremos que ejecutarmkfs -t ext3 /dev/hda2 - Montamos la partición, por ejemplo en
/mnt/hda2, ejecutandomount /dev/hda2 /mnt/hda2 - Comprobamos que la red está correctamente configurada y que tenemos acceso al servidor SystemImager.
- Ejecutamos el siguiente comando, escribiendo la IP del servidor y el nombre de la imagen que correspondan:
rsync -av –exclude=lost+found/ –numeric-ids 192.168.0.78::equipos_nuevos_glinex2.0/ /mnt/hda2/ - Una vez termine la transferencia de ficheros, ejecutamos
chroot /mnt/hda2para iniciar sesión en el sistema recien transferido. Si hemos transferido el sistema a una partición diferente a la que usamos en elgolden-client, tendremos que modificar los ficheros/etc/fstaby/etc/lilo.conf. Finalmente ejecutamos el programalilo - Ejecutamos
exitpara salir de la jaulachroot - Reiniciamos el sistema y arrancamos con el sistema transferido (tendremos que sacar el KnoppixCD del lector de CD).
Enlaces de interés
- http://www.systemimager.org/
- http://sourceforge.net/projects/systemimager/
- EjerSystemImager
- PartitionImage
Aca una guía de ubuntu en español
http://ubuntuguide.org/wiki/Ubuntu_dapper_es
Respladar archivos por la red en forma fá¡cil
Alguna vez les ha sucedido que quieren cambiar de servidor, pero hay una limitante, sacar respaldos de los archivos de usuarios, correos, y demás. Algunos diran, pero si solo es copiar de un disco a otro y ya! Eso mismo pense yo, pero al hacerlo como root era un completo problema cambiar los grupos de usuarios y permisos para cada archivo. Este metodo me parece super sencillo y poco tedioso. Supongamos que quiero copiar /var/spool/mail desde una pc a otra y preservar los permisos y privilegios de usuario en cada uno de los archivos. Haciendo un simple scp podre tener el respaldo, pero debere modificar la permisologia a mano, eso estaria bien si tuviese pocos usuarios (menos de dos ) pero que sucede si tengo 300/500/1500 etc ..etc ? Basicamente lo que tenemos que hacer es utilizar la salida de tar enviada a través de una tuberÃa por ssh.
El comando quedarÃa de esta manera :
# tar -cvf – /ruta/de/archivos/a/copiar | ssh root@la.otra.pc ‘cd /; tar xvf -’
Migrar una base de datos MySQL de un servidor a otro.
paseando por internet me encontré este comando que me ayudo a migrar las bases de datos via SSH en lÃnea sin necesidad de hacer un DUMP al disco duro y luego tener que restaurarlo en el destino, Este comando lo hace por tà directamente.
Se los comparto:
mysqldump -ux -px database | ssh yo@nuevo_server “mysql -ux -px database”
Clonar Computadoras a través de la red
Si tienen computadoras genéricas conectadas a la red, se las puede clonar de una manera muy simple. No importa si la computadora tiene windows, linux o más de un sistema operativo instalado. La idea es copiar byte a byte los discos duros
En la computadora de destino lo más recomendable es tener un live cd corriendo. knoppix que tiene todas las herramientas necesarias. En esta computadora ponemos la siguiente lÃnea:
# nc -l -p 9898 | dd of=/dev/destino bs=1M
nc, lo que hace es escuchar en el puerto 9898 (mayor que 1024). SÃ algo llega a ese puerte lo envÃa a standard output. Con dd escribimos lo que nos llega al dispositivo de destino. Generalmente /dev/hda.
En la computadora de origen escribimos byte a byte al puerto 9898 de la computadora de destino. Para esto utilizamo nc.
# dd if=/dev/origen bs=1M | nc ip.destino 9898
Listo de ahà sà esperar un buen rato hasta que se copien las máquinas. Es recomendable hacerlo con redes rápidas y utilizando switches en lugar de hubs.
Para clonar dos discos duros conectados a la misma máquina:
]# dd if=/dev/origen of=/dev/destino bs=1M
Por ejemplo
# dd if=/dev/hda of=/dev/hdb bs=1M
Como instalar ntfs-3g para escribir datos en particiones ntfs en ubuntu dapper 6.06
El programa ntfs-3g ( por ahora compatible solo con arquitecturas de 32 bits y little endian ) nos permite escribir datos en particiones ntfs de manera mas rápida segura y fácil que cualquier otro (acá mas info http://www.vivalinux.com.ar/soft/ntfs-3g.html ). Se lo puede tener instalado y funcionando a la perfección en pocos minutos y con bajos conocimientos.
Nota: Se tiene en cuenta que ya se tienen instalados los paquetes kernel-headers y build-essential.
Paso1: Instalar el módulo fuse 2.5.3:
Descargarlo desde aquà http://prdownloads.sourceforge.net/fuse/fuse-2.5.3.tar.gz?download (el fuse que hay en los repositorios de ubuntu es una versión anterior a la necesaria), lo descomprimimos, entramos en el directorio desde la consola y lo compilamos de ésta forma:
$ ./configure
$ make
$ sudo make install
Editar el /etc/modules:
$ sudo gedit /etc/modules
y agregar “fuse” (sin las comillas) al final de éste.
Paso2: Descargar el ntfs-3g desde aquà http://mlf.linux.rulez.org/mlf/ezaz/ntfs-3g-20070714-BETA.tgz descomprimirlo entrar en la carpeta y compilarlo con:
$ ./configure
$ make
$ sudo make install
Paso3: Abrir el /etc/fstab:
$ gksu gedit /etc/fstab
y montar de esta forma la particion ntfs:
/dev/hda1 /media/windows ntfs-3g silent,umask=0,locale=es_AR.utf8 0 0
Los parámetros “/dev/hda1 /media/windows” dependen de donde tienen y donde quieren montar la partición y el parámetro “es_AR.uft8″ depende de la codificación de su sistema, por ejemplo si son de españa serÃa “es_ES.utf8″.
Paso4: Finalmente reiniciar, para que se cargue el módulo fuse y se vuelva a montar la partición, o si no pueden reiniciar hacer un “modprobe fuse” y luego remontar la partición si ya lo estaba
