opengnsys-1.0.6 (#12) - Problema al restaurar imagen: Partición mas pequeña que la imagen (#332) - Message List
Tengo un laboratorio con varios equipos, cada uno con un disco dividido en 10 particiones/unidades lógicas (incluyendo la swap y la CACHE de opengnsys).
De las 8 particiones con datos/SOs, con 7 de ellas OpenGnSys crea bien la imagen (usando el script "Crear Imagen") y la restaura correctamente (script "Restaurar Imagen").
Sin embargo, con la octava partición (/dev/sda8), funciona la creación de la imagen (con "Crear Imagen") pero FALLA la restauración con "Restaurar Imagen".
La partición está formateada en NTFS, teniendo un tamaño de "105 GB" con "97 GB" de datos (no cabiendo en la particion CACHE, la cual tiene "82 GB").
El script "Crear Imagen" crea bien el fichero "/opt/opengnsys/images/PCTipoEwprogramas.img" (de "58 GB"). Cuando intento restaurarlo con "Restaurar Imagen" me genera los siguientes errores, no restaurandose:
14/02/2018 12:02 *** Debug: 5-021-Ejecución de comando:RestaurarImagen() 14/02/2018 12:02 *** Debug: 5-008-Ejecución del script:/opt/opengnsys/interfaceAdm/RestaurarImagen 14/02/2018 12:02 *** Debug: 5-009-Parámetro del script: #2-1 14/02/2018 12:02 *** Debug: 5-009-Parámetro del script: #3-8 14/02/2018 12:02 *** Debug: 5-009-Parámetro del script: #4-PCTipoEwprogramas 14/02/2018 12:02 *** Debug: 5-009-Parámetro del script: #5-xxx.xxx.xxx.xxx 14/02/2018 12:02 *** Debug: 5-009-Parámetro del script: #6-UNICAST [1] INICIO scripts: /opt/opengnsys/scripts/deployImage xxx.xxx.xxx.xxx PCTipoEwprogramas 1 8 UNICAST Desmonta un sistema de archivos. 1 8 [1] REPO=REPO IMG-FILE=PCTipoEwprogramas.img SIZE=59588312 (KB) METADATA=PARTCLONE:LZOP:NTFS:104900000 [2] updateCache REPO "/PCTipoEwprogramas.img" UNICAST REPO xxx.xxx.xxx.xxx UNICAST Comprobar si es necesario actualizar el fichero imagen Comprobar que el tamaño de la caché es mayor que el fichero a descargar. Comprobar el espacio libre de la caché y actuar según engine.cfg: ACTIONCACHEFULL=NONE Aviso: El espacio de la caché local o remota no es suficiente: /PCTipoEwprogramas.img = 59588312 > FREE SPACE CACHE = 32562794 OpenGnSys error: 2018-02-14 12:02:41 updateCache: El espacio de la caché local o remota no es suficiente "CACHE FULL, NO SPACE FREE" [ ] tiempo parcial del subproceso updateCache 0m 1s [50] No existe partición caché en el cliente ; El espacio de la caché local o remota no es suficiente [50] Analizar proceso a realizar según engine.cfg: RESTOREPROTOCOLNOTCACHE=UNICAST [55] Restaura una imagen de sistema operativo.: restoreImage REPO PCTipoEwprogramas 1 8 [1] INICIO scripts: /opt/opengnsys/scripts/restoreImage REPO PCTipoEwprogramas 1 8 [40] ogRestoreImage REPO PCTipoEwprogramas 1 8 UNICAST OpenGnSys error: 2018-02-14 12:02:43 ogRestoreImage<-ogExecAndLog<-restoreImage: Error al restaurar: Partición mas pequeña que la imagen " 102399999 < 104900000" [100] Duracion de la operacion 0m 2s [ ] OpenGnSys error: 2018-02-14 12:02:43 deployImage: No se puede crear o restaurar una image de sistema "REPO PCTipoEwprogramas" [END Interface] Comando terminado con este código: 5 14/02/2018 12:02 *** Error: 010-Error al ejecutar la llamada a la interface de administración. Módulo interfaceAdmin() 14/02/2018 12:02 *** Error: 005-Error al crear o restaurar una imagen. Módulo interfaceAdmin() 14/02/2018 12:02 *** Error: 086-Error al ejecutar el comando:RestaurarImagen. Módulo RestaurarImagen() 14/02/2018 12:02 *** Info: 019-Disponibilidad de comandos activada
Se ve el error:
restoreImage: Error al restaurar: Partición mas pequeña que la imagen " 102399999 < 104900000"
que no debe ser (pues la imagen se ha creado en un equipo idéntico al equipo donde se intenta restaurar).
Efectivamente, haciendo la restauración a mano de ese fichero ".img", con el siguiente script:
#!/bin/bash IMAGEN="PCTipoEwprogramas.img" cd /opt/opengnsys/images # Reducir sistema de archivos a minimo que ocupan los datos ogExtendFs 1 8 # Desmontar Particion. Importante, debe estar tras el ogReduceFs umount /dev/sda8 LOG="/opt/opengnsys/log/partclone-restore-$(hostname -I | cut -f1 -d ' ')-$(date +%F-%H%M%S).log" # Extraer imagen lzop -dc ./${IMAGEN} | partclone.restore --ignore_crc -s - -o /dev/sda8 1> "${LOG}" 2>&1
funciona correctamente:
Partclone v0.2.38 http://partclone.org Starting to restore image (-) to device (/dev/sda8) Calculating bitmap... Please wait... done! File system: NTFS Device size: 104,9 GB Space in use: 96,8 GB Free Space: 8,1 GB Block size: 4096 Byte Used block : 23633090 Total Time: 02:08:15, Ave. Rate: 754,8MB/min, 100.00% completed! Syncing... OK! Partclone successfully restored the image (-) to the device (/dev/sda8) Cloned successfully.
¿Alguien sabría que línea de OpenGnsys puede estar provocando el fallo al usar "Restaurar Imagen"?
Gracias
Saludos
-
Message #756
Gracias por la información.
Usando esos comandos obtengo efectivamente los datos que aparecen en el mensaje de error:
restoreImage: Error al restaurar: Partición mas pequeña que la imagen " 102399999 < 104900000"
ogGetPartitionSize 1 8 102399999 ogGetImageInfo /opt/opengnsys/images/PCTipoEwprogramas.img PARTCLONE:LZOP:NTFS:104900000
Esto provoca que la funcion "ogRestoreImage()" se salga en:
IMGSIZE=$(ogGetImageSize "$1" "$2") || return $(ogRaiseError $OG_ERR_IMAGE " $1 $2"; echo $?) PARTSIZE=$(ogGetPartitionSize $3 $4) if [ $IMGSIZE -gt $PARTSIZE ]; then ogRaiseError $OG_ERR_IMGSIZEPARTITION " $PARTSIZE < $IMGSIZE" return $? fi
Lo que no entiendo es como se están haciendo los cálculos de tamaño:
- Deberían coincidir: el equipo donde restauro es idéntico al usado para crear la imagen). De hecho, si en el equipo "fuente" del que he creado la imagen (usando el script "Crear Imagen") ejecuto ogGetPartitionSize obtengo "102399999" igualmente. Como dato curioso, con el comando "df" obtengo un tamaño ligaremente distinto, de "102399996".
df -k /dev/sda8 Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda8 102399996 69112 102330884 1% /mnt/sda8
- Ese cálculo esta provocando una pequeña diferencia entre los tamaños de "IMGSIZE" y "PARTSIZE" que conlleva que "ogRestoreImage" se salga al entender que no es posible la restauración. Sin embargo, con el script manual se comprueba que sí se puede restaurar, luego tal vez esa comprobación de tamaños que hace "ogRestoreImage" sea demasiado estricta.
Una curiosidad. ¿Que fichero "Image.lib" (contiene a "ogRestoreImage") se usa, el de:
/opt/opengnsys/client/lib/engine/bin/
o el de
/opt/opengnsys/client/engine
?
Gracias. Un saludo
JavierMFeb 16, 2018, 12:56:38 PM (7 years ago) -
Message #754
Hola, Javier
Al restaurar se compara el tamaño de la imagen y la partición de destino. Las funciones que se usan para calcularlos son:
- Imagen:
ogGetImageSize [REPO|CACHE] Nombre_img
Esta función a su vez llama a ogGetImageInfo /opt/opengnsys/images/Nombre_img.img que lo que hace es leer el principio del archivo de la imagen y con un comando de partclone obtiene la información.
- Partición:
ogGetPartitionSize Disco Partición
Esta función usa el comando "partx -gbo SIZE Dispositivo" que da el tamaño en k y lo divide por 1024.
Ej: partx -gbo SIZE /dev/sda1
Podrías mirar los resultados que te dan estas funciones y ver si alguno no es correcto.
Hasta ahora
irinaFeb 16, 2018, 9:02:21 AM (7 years ago) - Imagen:
-
Message #752
Hola,
Esa partición la uso exclusivamente para Máquinas Virtuales (ficheros vmdk de gran tamaño), no hay nada temporal.
No obstante, ¿por que el fallo lo tiene "ogReduceFs"?. Esa función se usa al crear la imagen (desde "createImage"), y la creación de la imagen se hace correctamente: el ".img" se genera bien y, manualmente (con el script anterior), se Restaura en la partición sin problemas, luego la imagen está correcta.
El fallo se produce al restaurar con restoreImage, pero no sé por qué o como arreglarlo.
Un saludo
JavierMFeb 15, 2018, 7:23:38 PM (7 years ago) -
Message #748
Buenas.
El problema lo está creando la función
ogReduceFs
llamada por el scriptcreateImage
. Esta función intenta reducir el espacio del sistema de ficheros al tamaño de los datos más un 10% libre.En tu caso, un SF con 97 GB de datos necesitaría una partición con un mínimo de 107 GB.
Quizas, podrías limpiar datos temporales o de descargas en el PC modelo antes de crear la imagen.
Saludos.
ramonFeb 15, 2018, 9:09:28 AM (7 years ago) -