source: server/bin/mountimage @ 70c429f

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 70c429f was f456755, checked in by irina <irinagomez@…>, 12 years ago

#565 adaptacion diferenciales al cliente 1.0.4., extension diferenciles img.diff

git-svn-id: https://opengnsys.es/svn/branches/version1.0@4059 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 2.2 KB
Line 
1#!/bin/bash
2#/**
3#        mountimage
4#@brief  Monta imagen sincronizable en el repositorio con permisos de escritura
5#@param 1 imagen
6#@param 2 extension [ img|diff ] opcional, por defecto img
7#@return  Directorio de montaje de la imagen.
8#@exception OG_ERR_FORMAT     # 1 formato incorrecto.
9#@exception OG_ERR_NOTFOUND # 2 Fichero o dispositivo no encontrado
10#@exception OG_ERR_DONTSYNC_IMAGE  #71 Imagen no sincronizable (es monolitica)
11#@exception OG_ERR_DONTMOUNT_IMAGE # 70 Error al montar una imagen sincronizada
12#@version 1.0 - Montar imagen sincronizable
13#@author  Irina Gomez
14#@date   2013-05-23
15#*/ ##
16BASEDIR=/opt/opengnsys
17REPODIR="$BASEDIR/images"
18source $BASEDIR/client/etc/lang.$LANG.conf
19
20PROG="$(basename $0)"
21# Si se solicita, mostrar ayuda.
22if [ "$*" == "help" ]; then
23    echo -e " $PROG: $MSG_HELP_ogMountImage \n" \
24            "$MSG_FORMAT: $PROG nombre_image [ img|diff ] \n" \
25            "base -> $PROG Windows7 \n" \
26            "diff -> $PROG Ubuntu12 diff"
27   exit 0
28fi
29
30[ $# -lt 1 ] && echo -e "$PROG: Error: $MSG_ERR_FORMAT \n     $MSG_FORMAT: $PROG image [ img | diff ]" && exit 1
31
32if [ "$USER" != "root" ]; then
33        echo "$PROG: Error: solo ejecutable por root" >&2
34        exit 1
35fi
36
37[ "$2" == "" -o "$2" == "img" ] && IMGEXT="img" || IMGEXT="img.diff"
38
39# Comprobamos que existe imagen
40IMGFILE="$REPODIR/$1.$IMGEXT"
41[ ! -f $IMGFILE ] && echo "$PROG: Error: $MSG_ERR_NOTFOUND $1 $IMGEXT" && exit 2
42
43
44# Comprobar que la imagen  es sincronizable
45file $IMGFILE | grep -i -e " BTRFS Filesystem " >/dev/null && IMGFS=BTRFS
46file $IMGFILE | grep -i -e " ext4 filesystem " >/dev/null && IMGFS=EXT4
47if [ "$IMGFS" != "BTRFS" -a "$IMGFS" != "EXT4" ] ; then
48        echo "$PROG: Error: $MSG_ERR_DONTSYNC_IMAGE $1 $2"
49        exit 71
50fi
51
52MOUNTDIR="$REPODIR/mount/$1"
53[ "$IMGEXT" == "img.diff" ] && MOUNTDIR="$MOUNTDIR.${IMGEXT#*\.}"
54mkdir -p "$MOUNTDIR"
55
56# Comprobamos si la imagen esta montada y si es así nos salimos.
57df |grep "$MOUNTDIR$"  2>&1  >/dev/null && echo "$MOUNTDIR" && exit 0
58
59if [ "$IMGFS" == "EXT4" ] ; then
60        mount -t ext4 "$IMGFILE" "$MOUNTDIR"
61else
62        mount -o compress=lzo  "$IMGFILE" "$MOUNTDIR"
63fi
64[ $? -eq 0 ] || ( echo "$MSG_ERR_DONTMOUNT_IMAGE  $1 $2" ; exit 70)
65echo  "$MOUNTDIR"
66
Note: See TracBrowser for help on using the repository browser.