diff options
Diffstat (limited to 'client/shared/scripts/createImage')
-rwxr-xr-x | client/shared/scripts/createImage | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/client/shared/scripts/createImage b/client/shared/scripts/createImage new file mode 100755 index 00000000..8e98113a --- /dev/null +++ b/client/shared/scripts/createImage @@ -0,0 +1,62 @@ +#!/bin/bash +# createImage - Scirpt de ejemplo para crear una imagen de un sistema de archivos. +# (puede usarse como base para el programa de creación de imágenes usado por OpenGnSys Admin). + +TIME1=$SECONDS +PROG="$(basename $0)" +if [ $# -ne 4 ]; then + ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG ndisco nparticion REPO|CACHE imagen" + exit $? +fi + +# Valores por defecto +IMGPROG="partclone" +IMGCOMP="lzop" +IMGEXT="img" + +# Si el repositorio es CACHE comprobamos que exista +if [ "$3" == "CACHE" -o "$3" == "cache" ]; then + if ! $(ogFindCache >/dev/null); then + ogRaiseError $OG_ERR_NOTFOUND "CACHE" + exit $? + fi +fi + +# Obtener información de los parámetros de entrada. +PART=$(ogDiskToDev "$1" "$2") || exit $? +IMGDIR=$(ogGetParentPath "$3" "/$4") +# Si no existe, crear subdirectorio de la imagen. +if [ $? != 0 ]; then + echo "[5] Crear subdirectorio de la imagen \"$3 $(dirname "$4")." + ogMakeDir "$3" $(dirname "/$4") + IMGDIR=$(ogGetParentPath "$3" "/$4") || exit $? +fi +IMGFILE=$IMGDIR/$(basename "/$4").$IMGEXT +# Renombrar el fichero de imagen si ya existe. +if [ -f "$IMGFILE" ]; then + echo "[10] Renombrar \"$IMGFILE\" por \"$IMGFILE.ant\"." + mv "$IMGFILE" "$IMGFILE.ant" + mv "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null +fi +# Mostrar información. +echo "[15] $PROG: Origen=$PART, Destino=$IMGFILE" + +# Comprobar consistencia del sistema de archivos. +echo "[20] Comprobar sistema de archivos." +ogUnmount $1 $2 +ogCheckFs $1 $2 + +echo "[30]: Reducir sistema de archivos." +ogReduceFs $1 $2 || exit 1 + +# Crear la imagen. +echo "[40] Crear imagen." +ogCreateImage $1 "$2" $3 $4 "$IMGPROG" "$IMGCOMP" || exit $? +#ogCreateImage $1 "$2" $3 $4 || exit $? + +echo "[90] Extender sistema de archivos." +ogExtendFs $1 $2 + +TIME=$[SECONDS-TIME1] +echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s" + |