wiki:HidraComoClonar

Version 3 (modified by trac, 7 years ago) (diff)

--

Cómo clonar desde la terminal de los clientes

Se va a presentar una guía básica para clonar equipos usando los scripts de Hidra desde la consola de los distintos clientes. Por lo tanto, en el directorio de arranque exportado por el servidor EAC debe incluir al integración con Hidra.

Nota: El punto indicativo de la shell se indicará por un carácter almohadilla (#), el resto de líneas muestran mensajes de ejemplo.

Nota: Se presupone que los clientes tienen 1 único disco en el que se instalará Windows y Linux.

Preparación general

Al finalizar el proceso de arranque de cualquier cliente, entrar en el sistema y ejecutar sudo su para que todos los comandos se ejecuten como root.

Preparar el entorno de ejecución de Hidra (deberá incluirse en el arranque normal):

# source /var/EAC/hidra/scripts/hidraEnviron

Crear imágenes de sistemas operativos

En primer lugar, deben anotarse la distribución de particiones del PC modelo con los sistemas operativos ya instalados (proceso que Hidra realiza automáticamente). En el ejemplo, un disco con Windows con NTFS de 16 GB y Linux con Ext3 de 10 GB y paginación de 2 GB:

# hidraListPartitions 1
pri=NTFS:16000000 EXT3:10000000 EXTENDED:2000000
log=LINUX-SWAP:2000000

Antes de crear la imagen de Windows, deben eliminarse algunos ficheros innecesarios, como el de paginación. En el ejemplo, se almacenará la imagen en el fichero /var/EAC/hdimages/winxp/winxp.gzip-1

Nota: Se usan las funciones básicas para borrar el fichero, hasta definir el formato de funciones de tratamiento de ficheros como hidraDeleteFile.

# rm $(hidraPath $(hidraMount 1 1)/pagefile.sys)
# hidraCreateImageFromPartition 1 1 $IPservidor hdimages/winxp winxp gzip

Para la imagen de Linux, se debería realizar el borrado de directorios temporales. En el ejemplo, sólo se creará la imagen, que se grabará en el fichero /var/EAC/hdimages/ubuntu/ubuntu.gzip-2

# hidraCreateImageFromPartition 1 2 $IPservidor hdimages/ubuntu ubuntu gzip

Definir particiones en el cliente

En primer lugar hay que crear una nueva tabla de particiones vacía:

# hidraDeletePartitionTable 1

Se tienen que definir las particiones con los datos del modelo, incluyendo una partición de caché local. En el ejemplo, se incluirá una partición de caché de 10 GB:

# hidraCreatePrimaryPartitions 1 NTFS:16000000 EXT3:10000000 CACHE:10000000 EXTENDED:2000000
# hidraCreateLogicalPartitions 1 LINUX-SWAP:2000000

Formatear y montar la partición de caché local para acelerar la clonación:

# hidraFormatCache
# hidraMountCache

Guardar las imágenes en caché local

Para mejorar las sucesivas restauraciones de los sistemas operativos, deben almacenarse previamente las imágenes en la partición de caché local. En el ejemplo se guardan los 2 ficheros correspondientes a Windows y Linux, indicando el directorio y el formato del nombre de cada fichero:

# hidraUpdateCache $IPservidor hdimages/winxp winxp.gzip-1
# hidraUpdateCache $IPservidor hdimages/ubuntu ubuntu.gzip-2

Restaurar las imágenes

Si se tiene almacenada la imagen en el caché local, se debe restaurar en la partición correspondiente. Puede usarse la variable $IPservidor en vez de $IP para descargarla desde el repositorio. En el ejemplo se restauran Windows y Linux y se comprueba la consistencia de los sistemas de archivos:

# hidraRestoreImageFromPartition 1 1 $IP hdimages/winxp winxp.gzip-1
# hidraFSCheck 1 1
# hidraRestoreImageFromPartition 1 2 $IP hdimages/ubuntu ubuntu.gzip-2
# hidraFSCheck 1 2

Arrancar los sistemas operativos

Para clonar correctamente sistemas Windows hay que realizar previamente algunos cambios en el registro y activar la partición. En el ejemplo, se define la partición como activa y se cambia el nombre del PC para evitar duplicados:

# hidraSetPartitionActive 1 1
# hidraSetWindowsName 1 1

Por último, para arrancar un sistema operativo basta con indicar la partición en la que se encuentra. En los ejemplos, se indica cómo arrancar uno de las 2 imágenes clonadas:

# hidraBoot 1 1

Nota: Linux debe tener configurado su GRUB con el kernel y el initrd por defecto.

# hidraBoot 1 2