CÓMO CLONAR UN ORDENADOR DE FORMA AUTOMÁTICA USANDO UN DVD. INFORME TÉCNICO.

Página creada Francisco Casasana
 
SEGUIR LEYENDO
CÓMO CLONAR UN ORDENADOR DE FORMA
  AUTOMÁTICA USANDO UN DVD. INFORME TÉCNICO.

  Basado en la experiencia al clonar los portátiles de préstamo de Biblioteca

En resumen, estos son los pasos a dar:
1. Instalar, preparar y configurar perfectamente un ordenador. Probarlo hasta la náusea. Este es qui­
   zá el paso más importante, y sin duda el más largo y más tedioso.
2. Tener un medio de almacenamiento como zona de trabajo. Este medio de almacenamiento debe
   ser distinto de donde esté el sistema del ordenador prototipo, como una partición vacía de su dis­
   co duro, un disco duro externo, etc.
3. En ese medio de almacenamiento, volcar en un fichero el MBR del disco duro del prototipo.
4. En dicho medio, volcar en un fichero la tabla de particiones.
5. En el mismo medio, poner los archivos con las imágenes de las particiones del disco duro del
   prototipo. Estas imágenes se pueden hacer con el programa partimage que se incluye en el CD de
   rescate y recuperación System Rescue CD o abreviadamente sysresccd.
6. Personalizar sysresccd: se vuelca al medio de almacenamiento de los puntos anteriores, se le aña­
   den a la raíz los ficheros con el MBR, la tabla de particiones y las imágenes de ellas con los da­
   tos, y se crea un shell script llamado autorun que se encargue de formatear y restaurar los datos.
7. Se recrea el CD o DVD (en caso de que no quepa en un CD) con el sysresccd personalizado y
   con los archivos antes mencionados, y se tuesta.
8. Se prueba en otro ordenador, porque lo más probable es que nos hayamos equivocado en alguna
   cosa y nos carguemos el prototipo. Tras la prueba, se vuelve a los pasos anteriores hasta la total
   satisfacción. Es normal que haya que repetir el proceso unas cuantas veces, porque errare
   humanum est.

A continuación se detalla cada punto tomando siempre como ejemplo mi trabajo con los portátiles
de préstamo de Biblioteca.

                  1 Instalación y configuración del sistema prototipo
Como ya queda dicho, este es quizá el paso más importante; empero, aquí no voy a tratarlo ya que
depende de lo que se quiera instalar. No creo que haya ningún inconveniente en que el sistema sea
cualquier GNU/Linux o cualquier Windows o incluso ambos en particiones separadas, siempre que
las imágenes de las particiones quepan en un DVD. Sí debe quedar muy claro que hay que configu­
rar el sistema y probarlo perfectamente, ya que cualquier cambio, por mínimo que sea, hará que
haya que perder dos horas rehaciendo casi todo el proceso posterior.
En mi caso, instalé una distribución de GNU/Linux en la primera partición primaria del único disco
duro y una partición de intercambio (swap) en la segunda partición primaria. Como gestor de arran­
que, instalé GRUB en el MBR (master boot record, el primer sector del disco).

                                                  1
2 Elección del área de trabajo
Se necesita una zona de disco duro con bastante sitio para trabajar, es decir para poner la imagen de
la partición (o las imágenes si tenemos, por ejemplo, MS Windows y GNU/Linux), la imagen ISO
del DVD, etc. En mi caso, creé en el mismo disco duro una tercera partición primaria, formateada
con ext3. Otra buena opción si nuestro disco no tiene sitio es un disco duro portátil USB, o un disco
montado por red mediante NFS o SMB.

                            3 Creación de una copia del MBR
Aunque partimage puede copiar el MBR, lo más fácil y seguro es usar el viejo método con dd.
Aunque este y el siguiente punto se pueden hacer desde la instalación de GNU/Linux que ya tene­
mos, podemos ya arrancar el ordenador con el CD de System Rescue CD (o sysresccd de ahora en
adelante).
     mount /dev/hda3 /mnt/custom

     cd /mnt/custom

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

Esto copia en el fichero backup­hda.mbr un bloque de tamaño quinientos doce bytes del disco
/dev/hda. O sea, el primer sector, que es el ocupado por el MBR.

                 4 Creación de una copia de la tabla de particiones
Aquí empleamos uno de los fdisk existentes, y que viene incluido en sysresccd: sfdisk. Estamos en el
mismo directorio de antes.
     sfdisk ­­dump /dev/hda > tp­hda

Esto vuelca en el fichero tp­hda la tabla de particiones del disco /dev/hda en un formato tal que el
propio sfdisk podrá leer posteriormente para establecer la misma tabla de particiones en otro disco
igual.

                   5 Creación de la imagen de la partición a clonar
La partición a clonar, que en nuestro ejemplo es /dev/hda1, no debe estar montada, así que este paso
hay que hacerlo desde sysresccd. Llamamos al programa partimage, que tiene una interfaz semi­
gráfica, alfanumérica.
En la primera pantalla seleccionamos la partición a clonar (Partition to save/restore). El sistema
Linux (Gentoo) de sysresccd nos la presenta como ide/host0/bus0/target0/lun0/part1, que
corresponde a /dev/hda1.
Como archivo imagen a crear (Image file to create/use) escribimos /mnt/custom/ppb (el nombre ppb
es arbitrario, por supuesto, aquí hace referencia a Portátil de Préstamo de Biblioteca). El programa
partimage le añadirá como extensión .000, ya que si no cupiera entero lo dividiría y lo nombraría
dándole números consecutivos.
Acción a realizar (Action to be done): marcaremos evidentemente la primera, guardar partición en

                                                 2
un nuevo archivo de imagen (Save partition into a new image file).
Pulsamos F5 para pasar a la segunda pantalla, titulada save partition to image file (guardar partición
en archivo de imagen).
El nivel de compresión (compression level) tiene que ser uno que permita meter en un CD o DVD la
imagen más el propio software de sysresccd. En mi caso la partición tenía ocupada unos 5 GB, con
lo que tenía que usar compresión. Escogí Gzip, ya que con ella la imagen ocupaba 2 GB, que cabe
en un DVD, y no es tan lenta como Bzip2.
En opciones (Options) escogí la comprobación de la partición (Check partition before saving), lento
pero seguro, e introducir descripción (Enter description).
En el modo de división de la imagen (Image split mode) escogí la división automática cuando no
queda espacio (Automatic split (when no space left)), y, por último, en qué hacer en caso de termi­
nación con éxito (If finished successfully) escogí esperar (Wait), para seguir trabajando. De nuevo se
pulsa ahora F5 para la tercera pantalla, donde simplemente se escribe una descripción y se pulsa
OK.
Ahora se deja que el programa haga su trabajo, lo cual tardará bastante, pero sólo hay que hacer esto
una vez (a menos que haya que modificar el sistema instalado, por eso es tan importante verificarlo
exhaustivamente). Al final tendremos el archivo con la imagen en /mnt/custom/ppb.000.

                              6 Personalización de sysresccd
Seguimos con el sistema arrancado desde sysresccd y con la partición de trabajo montada, se re­
cuerda que en nuestro caso era /dev/hda3 y está montada en /mnt/custom. Este nombre no es arbitra­
rio, tiene que llamarse así el punto de montaje.
Lo primero es extraer el contenido del CD de sysresccd, que evidentemente tenemos montado.
      sysresccd­custom extract

Si no hay error, que no debe, todos los ficheros del CD se habrán copiado al directorio llamado
/mnt/custom/customcd/files. Ahora podríamos modificar los ficheros que quisiéramos para persona­
lizar nuestra copia de sysresccd, pero para lo que nos interesa no merece la pena.
Lo siguiente es crear la imagen cloop. Ésta es una imagen de CD con los ficheros comprimidos que
hace que se pueda arrancar del CD y trabajar con él en modo vivo. Es la técnica que se emplea en
este tipo de distribuciones, como Linex, Guadalinex, Knoppix, Guadalinex_uca, etc. En definitiva,
la orden que hay que dar es:
      sysresccd­custom cloop 270 20000

donde 270 es el número de megabytes que usará el sistema de ficheros, y 20 000 el número máximo
de ficheros admitidos en él. Estos números son suficientes para nuestro propósito: la imagen de la
partición, de unos 2 GB, irá fuera de este sistema de ficheros cloop.
Ahora es cuando añadimos los ficheros creados en los primeros pasos: la copia del MBR, la de la
tabla de particiones y la imagen de la partición del sistema. Para que estén fuera del ya creado cloop
y en el directorio raíz del DVD hay que copiarlos o moverlos a /mnt/custom/customcd/isoroot, así:
      mv backup­hda.mbr tp­hda ppb.000 /mnt/custom/customcd/isoroot

El paso más importante viene ahora: crear un script o guion que se ejecute automáticamente en el

                                                  3
arranque y se encargue de la automatización del proceso de restauración. Este guion debe llamarse
obligatoriamente autorun, y lo pondremos en el mismo sitio de antes. Una vez creado con nuestro
editor favorito, le daremos permiso de ejecución, por ejemplo así:
     chmod 755 /mnt/custom/customcd/isoroot/autorun

El contenido del fichero se presenta en el apéndice de este documento.
Aunque para lo que sirve el DVD que vamos a hacer no hará mucha falta ya que supuestamente no
tendremos que escribir nada, tampoco cuesta hacer que se cargue automáticamente una distribución
de teclado, así evitaremos la pregunta correspondiente en el arranque del DVD. Así pues, para car­
gar la del español:
     sysresccd­custom setkmap es

                           7 Creación de la imagen y del DVD
El último paso antes de rearrancar es crear por fin la imagen ISO del CD o DVD:
     sysresccd­custom isogen RESPPB

El parámetro (obligatorio) RESPPB es el nombre del volumen, que por supuesto es arbitrario y debe
ser descriptivo; en este caso significa REStauración de un Portátil de Préstamo de Biblioteca.
Este paso, como se comprende, tarda lo suyo.
Al acabar, sólo nos resta quemar un DVD grabable con la imagen. Al principio, mejor un regrabable
por si acaso. Pero a menos que tuviéramos dos unidades, una lectora y otra grabadora, tenemos que
sacar primero el CD de sysresccd, pero no podemos porque está montado, así que hay que rearran­
car. Antes, por conveniencia y seguridad, conviene desmontar el disco de trabajo y sincronizar el
disco con la memoria del búfer caché.
     cd ; umount /mnt/custom ; sync

Ya es momento de rearrancar, lo que podemos hacer con la orden reboot o simplemente pulsando
Ctrl­Alt­Del.
El tueste de la imagen ISO se puede hacer ya desde el sistema operativo original, sea GNU/Linux
con el k3b por ejemplo, o Windows con el famoso Nero u otro programa similar. También desde
sysresccd, pero al arrancar ahora habría que darle la opción de copiar todo el CD a memoria (opción
Cache CD del menú de sysresccd), lo que nos permitirá desmontar y quitar el CD (orden eject) para
dejar libre la grabadora.
Por no dejar este documento a medias, se pone a continuación cómo se daría la orden para crear el
DVD desde la línea de órdenes. Por supuesto, antes hay que volver a montar el disco de trabajo, que
es donde tenemos la imagen. En el ejemplo se supone que /dev/hdc es el dispositivo de la
grabadora.
     mount /dev/hda3 /mnt/custom

     growisofs ­­dvd­compat ­Z /dev/hdc=/mnt/custom/customcd/isofile/sysresccd­new.iso

                                                 4
8 La prueba final
No hay mucho que decir aquí. Quitar el DVD del ordenador origen y probarlo en el destino.
Si todo funciona bien, éste quedará como el original. Por supuesto es importante que todos los orde­
nadores sean iguales. Es posible de todas formas que haya que hacer algún retoque final, posible­
mente relacionado con la configuración de red, ya que, como se sabe, cada interfaz de red tiene un
número MAC o hardware único. Por ejemplo, en SUSE Linux la configuración de la interfaz de red
Ethernet se guarda en un fichero que puede llamarse
      /etc/sysconfig/nework/ifcfg­eth­id­XX:XX:XX:XX:XX:XX

siendo XX... la dirección MAC de la tarjeta. Al clonarse, evidentemente se clona también este fiche­
ro, con lo que el ordenador destino no tiene el fichero con el nombre correcto con su MAC, sino con
la del prototipo. Esto puede arreglarse eliminando la tarjeta y volviéndola a crear, o simplemente
renombrando el fichero. Otra cosa que puede tener que cambiarse es el nombre del ordenador, si no
se obtiene por DHCP.

                            Apéndice: el shell­script “autorun”

#!/bin/bash
# autorun v1.0 (octubre­2005)
# Este shell­script se ejecutará automáticamente al arrancar desde
# este DVD. Restaurará el sistema a su estado original.
# (c)2005 Gerardo Aburruzaga García. Oficina del Software Libre de la
# Universidad de Cádiz. Área de Informática de la Dirección General de
# Tecnologías de la Información y Comunicaciones
# Diseñado para los portátiles de préstamo de Biblioteca.
# Distribuido bajo los términos de la Licencia General Pblica GNU
# (GPL) versión 2 ó posterior.

# Configuración:
DIR_BASE=/mnt/cdrom
MBR=$DIR_BASE/backup­hda.mbr
TABLA_PARTICIONES=$DIR_BASE/pt­hda
IMAGEN=$DIR_BASE/ppb.000
HD=/dev/hda
DVD=/dev/hdc
PART_LNX=${HD}1
PART_SWP=${HD}2

# 0) Preparación. Intentamos acelerar el acceso a disco y DVD
#

                                                5
hdparm ­c1 ­d1 $HD $DVD

# 1) Restauración del MBR. Se puede hacer mejor con dd que con partimage.
# Previamente se hizo:    dd if=/dev/hda of=backup­hda.mbr count=1 bs=512
if [ ­f $MBR ]; then
  dd if=$MBR of=$HD
else
  echo "ERROR: no existe el fichero con el MBR $MBR"
  echo "No se hace nada más, no se restaura nada."
  exit 1
fi

# 2) Restauración de la tabla de particiones
# Previamente se hizo: sfdisk ­­dump /dev/hda > pt­hda
if [ ­f $TABLA_PARTICIONES ]; then
  sfdisk ­­force $HD < $TABLA_PARTICIONES
else
  echo ­n "ERROR: no existe el fichero con la tabla de particiones"
  echo "$TABLA_PARTICIONES"
  echo "No se va a restaurar el sistema, lo siento."
  exit 2
fi
sync

# 3) Activación de swap
mkswap $PART_SWP
sync

# 4) Restauración de la partición de GNU/Linux
# Al acabar, rearranca el ordenador.
# Previamente se creó la imagen con partimage (interactivamente).
if [ ­f $IMAGEN ]; then
  partimage ­­batch ­­finish=2 restore $PART_LNX $IMAGEN
else
  echo "No existe el archivo de imagen $IMAGEN"
  echo "No se puede restaurar GNU/Linux."
  exit 3
fi
# Aquí no se debe llegar ya.
exit 0

                                         6
Referencias
La más importante de las referencias en que se basa este documento es el manual de sysresccd, in­
cluido en el propio CD. El sitio de este magnífico sistema de rescate es http://www.sysresccd.org .
La página de partimage es http://www.partimage.org .
En la revista LinuX FREE Magazine N.º 8 (año 2, 4.º trimestre), pp. 75 y ss., viene un artículo de
Antonio Sánchez León titulado Copiar particiones o discos duros enteros que me ha sido de mucha
ayuda.

©2005 Gerardo Aburruzaga García 
Oficina del Software Libre de la Universidad de Cádiz: http://softwarelibre.uca.es
Área de Informática de la Dirección General de Tecnologías de la Información y Comunicaciones
Servicio de Equipamiento y Operación
Este documento puede distribuirse bajo los términos de la GNU Free Documentation License. Por descontado, ni el au­
tor ni la Universidad de Cádiz se hacen responsables de que por seguir las indicaciones de este documento, alguien pier­
da datos o estropee su ordenador. Además, este documento puede no estar libre de fallos; si descubren alguno, por favor
comuníquenselo al autor.

                                                           7
También puede leer