#!/bin/bash # create-image.sh - 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 # 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").pgz # 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." ogCheckFs $1 $2 # Crear la imagen. echo "[30] Crear imagen." ogCreateImage $1 "$2" $3 $4 || exit $? TIME=$[SECONDS-TIME1] echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s"