Sistema de clonación para Windows 7
Windows 7 es especial, en realidad está bueno, tiene varias cosas que son buenas ideas (tal vez robadas de un par de distros de linux) que lo hacen bastante estable y preparado para desastres.
Una de ellas es la creación de una partición pequeña, de sólo 100 mb exclusivamente para bootear. (wink wink linux) para qué sirve esto? Muy simple, es mucho más seguro tener los archivos mas importantes del SO en una partición oculta y aparte, para resguardarla de fallos de disco o de ataques de virus.
Esto es muy lindo y muy bueno pero me trajo un pequeño problema a la hora de usar mi sistema de clonado, ya que habia que tomar 2 imágenes (1 para la partición de booteo y otra para la de datos), así que tuve que implementar un par de cosas más.
Primero que nada hay que bootear la pc “master” con un livecd o alguna distro personalizada desde la red. Yo lo tengo con red porq es mas facil de personalizar y tenerla lista con un solo click, pero el livecd sirve para sacarnos de apuro.
- Creación de archivo con tabla de particiones y archivo mbr
Una vez que booteamos un linux, necesitamos crear un archivo que contenga la informacion de la tabla de particiones, para que cuando le tiremos las imágenes a la pc “esclava”, las particiones se creen exactamente igual que la master.
Para esto usamos sfdisk:
# sfdisk -d /dev/sda > disco.sf
siendo sda el disco que vamos a clonar
Luego tenemos que hacer una pequeña imagen al mbr:
# dd if=/dev/sda of=mbr.bin count=1 bs=512
- Tomado de imagenes de booteo y de disco
una vez que tenemos estos 2 pequeños pero importantisimos archivos, vamos a tomar la imagen propiamente dicha, para esto usamos partimage, el funcionamiento es bastante simple, solamente hay que lanzar el programa y seguir los pasos, pero bueno, ya que los sysadmin somos muy vagos, te tiro la linea completa para que no tengas que hacer nada:
partimage -z1 -o -d -M save /dev/sda1 sector_booteo --server=192.168.1.253 --port=4025
Paso a explicar rapidamente cada opcion:
-z1: es el nivel de compresion de gzip, 1 es el default, que sea rapido y que cree un archivo pequeño
-o: esto hace que sobreescriba el archivo en el servidor si es que ya existe, sin confirmacion (ojo)
-d: que no pida una descripción para el archivo
-M: que no cree un backup del mbr, (porq ya lo tenemos)
save: bueno esto es obviamente para que cree un archivo con la imagen
/dev/sda1: es la particion que le vamos a tomar la imagen, en este caso es la de booteo que pesa aproximadamente 100 mb
sector_booteo: este es el nombre del archivo que se va a crear
–server y port: son los datos del servidor que vamos a usar para guardar las imagenes, en el caso de que no especifiquemos estos datos, la imagen se guardará en el mismo disco, pero esto es un problema ya que si booteamos con un livecd, el “disco” que tenemos será de como mucho 1 gb, o depende la ram que tengamos disponible en el sistema, y la imagen no va a entrar en ningun lado.
Bueno y en el servidor simplemente tenemos que crear un directorio en el que se guardarán las imágenes, darle permisos de escritura para todos y lanzar partimaged:
# partimaged
Luego lanzamos la linea desde el cliente y la imagen se copiará en el server. Una vez que la tenemos (sólo tardará unos segundos ya que como dije varias veces, pesa unos 100 mb) vamos a tomar la imagen per se del disco, que es donde contiene todos los archivos de programa y documentos, etc.
La linea es igual, solamente cambiamos la particion y el nombre del archivo:
partimage -z1 -o -d -M save /dev/sda2 imagen_disco --server=192.168.1.253 --port=4025
Esto tardará un rato más dependiendo de la velocidad de la red y el espacio ocupado en el disco, pero para que tengan una idea en una red común tarda aproximadamente 20 minutos en copiarse una imagen de unos 10 GB.
- Clonación de pc virgen
Bueno una vez que ya tenemos las 2 imagenes y queremos clonar una pc sin nada, tenemos que hacer lo siguiente:
Booteamos tambien con un livecd o un linux en red y primero creamos las tablas de particiones y le tiramos el mbr:
# dd if=mbr.bin of=/dev/sda
# sfdisk /dev/sda < disco.sf
Ahi ya tenemos la base del disco creada, ahora solo le tiramos las 2 imagenes de la siguiente manera:
Desde el server tiramos la imagen:
# gunzip -c sector_booteo | udp-sender
En el caso anterior, udp-sender por defecto manda el archivo en multicast, en el caso de que sea una sola pc la que va a ser clonada es conveniente hacerlo en point to point
# gunzip -c sector_booteo | udp-sender --pointopoint
Otra opción es hacerlo en broadcast, usar sólo en caso de que las anteriores no funcionen, ya que satura la red al máximo.
# gunzip -c sector_booteo| udp-sender --broadcast
Y desde el cliente recibimos la imagen de la siguiente manera:
# udp-receiver --nokbd | partimage -b restore /dev/sda1 stdin
Una vez terminado hacemos lo mismo con la segunda parte:
Server:
# gunzip -c imagen_disco | udp-sender
Cliente:
# udp-receiver --nokbd | partimage -b restore /dev/sda2 stdin
Reiniciamos y listo! :)
In: linux · Tagged with: 7, clonacion, clonar, partimage, seven, udp-receiber, udp-sender, windows7

on April 15, 2010 at 21:18
Permalink
Muy buena información. Para todo tipo de usuarios hay sistemas y quien quiera usar Windows 7 aquí puede conocer algo de este sistema operativo: http://bit.ly/clyPMc