#!/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"