= 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 }}}