source: client/boot-tools/boottoolsfunctions.lib @ acfb07d

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 acfb07d was acfb07d, checked in by ramon <ramongomez@…>, 12 years ago

Versión 1.0.5, #562: Instalador guarda el registro de instalación en el directorio log de OpenGnSys.

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

  • Property mode set to 100755
File size: 18.0 KB
Line 
1#!/bin/bash
2#/**
3#@file    boottoolsfunctions.lib
4#@brief   Librería o clase Boot-Tools
5#@class   Boot-Tools
6#@brief   Funciones para generar un sistema operativo cliente para opengnsys
7#@version 0.9
8#@warning License: GNU GPLv3+
9#*/
10
11
12# btGetVariables: define las constantes a utilizar
13# Autor: Antonio J. Doblas Viso. Universidad de Málaga.
14function btogGetVar()
15{
16
17export BTSVNBOOTTOOLS=/tmp/opengnsys_installer/opengnsys/client/boot-tools
18export BTSVNSHARE=/tmp/opengnsys_installer/opengnsys/client/shared
19export BTSVNENGINE=/tmp/opengnsys_installer/opengnsys/client/engine
20
21export BTSVNOG2=/tmp/opengnsys_installer/opengnsys2
22
23export BTTARGETDIR=/var/lib/tftpboot/ogclient/
24export BTROOTFSIMG=${BTTARGETDIR}ogclient.img
25export BTROOTFSMNT=${BTTARGETDIR}ogclientmount
26# tamaño maximo limitado por schroot 2GB
27export BTVIRTUALDISKSIZE=2000
28export BTROOTFSIMGLABEL=ogClient
29
30export LOG_FILE=/tmp/boot-tools_installation.log
31
32export VERSIONBOOTTOOLS="ogLive"
33}
34
35
36# btGetOsInfo: detecta la version del host, para tenerla de referencia en el boot-tools a generar.
37#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
38#@author  Antonio J. Doblas Viso. Universidad de Malaga.
39#@date    2010/05/24
40#@version 1.0 - Compatibilidad OpengGnsys X.
41#@author  Antonio J. Doblas Viso. Universidad de Malaga.
42#@date    2011/08/03
43function btogGetOsInfo ()
44{
45OGCLIENTCFG=/tmp/ogclient.cfg
46case "${1,,}" in
47        lenny)
48                OSDISTRIB="debian"
49                OSCODENAME="lenny"
50                OSRELEASE="2.6.28-11-generic"
51                OSARCH="i386"
52                OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
53                ;;
54        lucid)
55                OSDISTRIB="ubuntu"
56                OSCODENAME="lucid"
57                OSRELEASE="2.6.32-21-generic-pae"
58                OSARCH="i386"
59                OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
60                ;;
61        quantal)
62                OSDISTRIB="ubuntu"
63                OSCODENAME="quantal"
64                OSRELEASE="3.7.3-030703-generic"
65                uname -a | grep x86_64 > /dev/null && OSARCH="amd64" || OSARCH="i386"
66                OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
67                ;;
68        host | *)
69                OSDISTRIB=$(lsb_release -is)
70                OSCODENAME=$(lsb_release -cs)
71                OSRELEASE=$(uname -a | awk '{print $3}')
72                uname -a | grep x86_64 > /dev/null && OSARCH="amd64" || OSARCH="i386"
73                export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
74                ;;
75esac
76SVNURL="http://opengnsys.es/svn/branches/version1.0/client"
77VERSIONSVN=$(LANG=C svn info $SVNURL | awk '/Rev:/ {print "r"$4}')
78NAMEISOCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$OSRELEASE-$VERSIONSVN"
79NAMEHOSTCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$VERSIONSVN"
80export OSDISTRIB OSCODENAME OSRELEASE OSARCH OSHTTP
81export TYPECLIENT VERSIONSVN NAMEISOCLIENT NAMEHOSTCLIENT
82### El fichero de configuración debe sustituir a estos 3 ficheros (borrar las 3 líneas siguientes).
83echo "$VERSIONSVN" > /tmp/versionsvn.txt
84echo "$NAMEISOCLIENT" > /tmp/opengnsys_info_rootfs
85echo "$NAMEHOSTCLIENT" > /tmp/opengnsys_chroot
86# Generar fichero de configuración.
87cat << EOT > $OGCLIENTCFG
88TYPECLIENT="$1"
89OSDISTRIB="$OSDISTRIB"
90OSCODENAME="$OSCODENAME"
91OSRELEASE="$OSRELEASE"
92OSARCH="$OSARCH"
93OSHTTP="$OSHTTP"
94VERSIONSVN="$VERSIONSVN"
95NAMEISOCLIENT="$NAMEISOCLIENT"
96NAMEHOSTCLIENT="$NAMEHOSTCLIENT"
97EOT
98}
99
100# btogSetFsVirtual: Crea y formatea el fichero - disco duro virtual
101#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
102#@author  Antonio J. Doblas Viso. Universidad de Malaga.
103#@date    2010/05/24
104#@version 1.0 - Compatibilidad OpengGnsys X.
105#@author  Antonio J. Doblas Viso. Universidad de Malaga.
106#@date    2011/08/03
107# error code return 2
108function btogSetFsVirtual ()
109{
110
111local RERROR  DISKLOOP PARTLOOP #return code error
112
113#Dependencias.
114[ -z "$BTROOTFSIMG" ] && btogGetVar
115
116echoAndLog "$FUNCNAME(): Creación y formateo del disco virtual $BTVIRTUALDISKSIZE MB "
117
118#Desmontamos el dispositivo virtual
119mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
120mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
121
122#echo "$FUNCNAME(): Creando el directorio donde se montará el disco virtual $BTROOTFSMNT"
123mkdir -p $BTROOTFSMNT
124
125if [ $? -ne 0 ]
126then
127        errorAndLog "$FUNCNAME(): Creando directorio $BTROOTFSMNT : ERROR"
128        return 1
129fi
130
131# Permisos para el usuario opengnsys.
132chown -R root:opengnsys $BTTARGETDIR
133
134#echo "$FUNCNAME(): Creando el disco virtual con tamaño máximo de  $BTVIRTUALDISKSIZE MB"
135dd if=/dev/zero of=$BTROOTFSIMG bs=1048576 count=$BTVIRTUALDISKSIZE
136        #qemu-img create $BTROOTFSIMG 3G       
137        #dd if=/dev/zero of=$BTROOTFSIMG bs=1k count=$OGCLIENTSIZEKB   # necesita 500MB
138
139if [ $? -ne 0 ]
140then
141        errorAndLog "$FUNCNAME(): Creando el disco virtual con tamaño maxima $BTVIRTUALDISKSIZE MB : ERROR"
142        return 2
143fi
144
145# Particionamos el disco virtual con una sola particion primaria.
146DISKLOOP=$(losetup -f)
147#TODO: si no DISKLOOP error
148losetup $DISKLOOP $BTROOTFSIMG
149#echo "$FUNCNAME(): particiondo el disco virtual - $DISKLOOP - con una particion primaria"
150echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP
151
152
153#echoAndLog "$FUNCNAME(): Liberamos Desmontando $DISKLOOP despues del particionado "
154sleep 10
155losetup -d $DISKLOOP
156if [ $? -ne 0 ]
157then
158        errorAndLog "$FUNCNAME(): Liberando disco virtual despues del particionado: ERROR"
159        return 2
160fi
161
162
163PARTLOOP=$(losetup -f)
164#echo "$FUNCNAME(): Formateando la particion principal $PARTLOOP"
165losetup -o 32256 $PARTLOOP $BTROOTFSIMG && mkfs.ext4 -b 4096 -L $BTROOTFSIMGLABEL $PARTLOOP
166if [ $? -ne 0 ]
167then
168        errorAndLog "$FUNCNAME(): Formateando la particion principal del disco virtual: ERROR"
169        return 2
170fi
171#echoAndLog "$FUNCNAME(): Desmontando $PARTLOOP despues del formateo "
172sleep 10
173losetup -d $PARTLOOP
174if [ $? -ne 0 ]
175then
176        errorAndLog "$FUNCNAME(): Liberando la particion virtual despues del formateo: ERROR"
177        return 2
178else
179        echoAndLog "$FUNCNAME(): $BTROOTFSIMG $BTVIRTUALDISKSIZE MB : OK"
180fi
181}
182
183
184# btogSetfsBase: Genera el sistema root base con debootstrap
185#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
186#@author  Antonio J. Doblas Viso. Universidad de Malaga.
187#@date    2010/05/24
188#@version 1.0 - Compatibilidad OpengGnsys X.
189#@author  Antonio J. Doblas Viso. Universidad de Malaga.
190#@date    2011/08/03
191# error code return 3
192function btogSetFsBase ()
193{
194
195# Dependencias
196[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT
197
198echoAndLog "$FUNCNAME:  Iniciando la generación del sistema de archivos "
199       
200#Montamos el dispositivo virtual en su punto de montaje.
201mount | grep $BTROOTFSMNT || mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256
202mount | grep $BTROOTFSMNT && echoAndLog "$FUNCNAME:  mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 OK   " || errorAndLog  "$FUNCNAME:  mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 : FAILURE  "
203
204debootstrap --arch=$OSARCH --components=main,universe ${OSCODENAME} ${BTROOTFSMNT} ${OSHTTP}
205#debootstrap --arch=$OSARCH ${OSCODENAME} ${BTROOTFSMNT} http://archive.ubuntu.com/ubuntu/
206
207
208if [ $? -ne 0 ]; then
209        errorAndLog "$FUNCNAME:  debootstrap --arch=$OSARCH --components=main,universe $OSCODENAME $BTROOTFSMNT $OSHTTP : ha fallado!"
210        mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
211        return 3
212else
213        echoAndLog "$FUNCNAME:  debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe $OSCODENAME $BTROOTFSMNT $OSHTTP :  ok"
214        mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
215        return 0
216fi     
217  sleep 5
218
219##preubas  revisar OSRELEASE
220#debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe ${OSCODENAME} ${OGCLIENTMOUNT} ${OSHTTP}
221#debootstrap --include=linux-image-${OSRELEASE} --arch=i386 --variant=minbase $OSVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
222#debootstrap --variant=minbase --include=linux-image-${OGRELEASE} --arch=i386 $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
223#echo debootstrap --include=linux-image-${OGRELEASE},dbus --arch=i386 --components=main,universe $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
224}
225
226#btogSetFsAcces: habilita el acceso al sistema root del cliente con  schroot
227#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
228#@author  Antonio J. Doblas Viso. Universidad de Malaga.
229#@date    2010/05/24
230#@version 1.0 - Compatibilidad OpengGnsys X.
231#@author  Antonio J. Doblas Viso. Universidad de Malaga.
232#@date    2011/08/03
233function btogSetFsAccess()
234{
235echoAndLog "$FUNCNAME: Iniciando la configuración del schroot "
236cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.`getDateTime`
237cat << EOF > /etc/schroot/schroot.conf
238[IMGogclient]
239type=loopback
240file=/var/lib/tftpboot/ogclient/ogclient.img
241description=ogclient Ubuntu image
242#priority=1
243users=root
244groups=root
245root-groups=root
246mount-options=-o offset=32256
247root-users=root
248EOF
249
250cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.`getDateTime`
251cat << EOF > /etc/schroot/mount-defaults
252# mount.defaults: static file system information for chroots.
253# Note that the mount point will be prefixed by the chroot path
254# (CHROOT_PATH)
255#
256# <file system> <mount point>   <type>  <options>       <dump>  <pass>
257proc            /proc           proc    defaults        0       0
258#procbususb      /proc/bus/usb   usbfs   defaults        0       0
259#/dev            /dev            none    rw,bind         0       0
260/dev/pts        /dev/pts        none    rw,bind         0       0
261/dev/shm        /dev/shm        none    rw,bind         0       0
262#/home          /home           none    rw,bind         0       0
263/tmp            /tmp            none    rw,bind         0       0                                                               
264EOF
265
266rm /etc/schroot/setup.d/*chrootname
267
268echoAndLog "$FUNCNAME: Finalizado: OK  "
269return 0
270}
271
272
273
274#btogFsInitr  genera un initrd.
275#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
276#@author  Antonio J. Doblas Viso. Universidad de Malaga.
277#@date    2010/05/24
278#@version 1.0 - Compatibilidad OpengGnsys X.
279#@author  Antonio J. Doblas Viso. Universidad de Malaga.
280#@date    2011/08/03
281function btogFsInitrd ()
282{
283#DEPENDENCIAS
284[ -z "$BTROOTFSIMG" ] && btogGetVar
285[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT
286
287cd /
288schroot -c IMGogclient -- /usr/bin/boot-tools/boottoolsInitrdGenerate.sh
289echo "cp /tmp/*-${OSRELEASE} ${BTTARGETDIR}"
290cp /tmp/*-${OSRELEASE} ${BTTARGETDIR}
291#Creando copias de las version oginitr y ogvmlinux previas
292TIMEMOD=`date +%Y%m%d-%H%M%S`
293[ -f $BTTARGETDIR/oginitrd.img ] && mv $BTTARGETDIR/oginitrd.img $BTTARGETDIR/oginitrd.img.$TIMEMOD;  mv $BTTARGETDIR/oginitrd.img.sum $BTTARGETDIR/oginitrd.img.sum.$TIMEMOD
294[ -f $BTTARGETDIR/ogvmlinuz ] && mv $BTTARGETDIR/ogvmlinuz $BTTARGETDIR/ogvmlinuz.$TIMEMOD; mv $BTTARGETDIR/ogvmlinuz.sum $BTTARGETDIR/ogvmlinuz.sum.$TIMEMOD
295
296#copiando
297cp /tmp/initrd.img-${OSRELEASE} ${BTTARGETDIR}/oginitrd.img
298cp /tmp/vmlinuz-${OSRELEASE} ${BTTARGETDIR}/ogvmlinuz
299#generamos md5 del kernel y del initrd.
300DATASUM=`md5sum "${BTTARGETDIR}/oginitrd.img" | cut -f1 -d" "`
301echo $DATASUM > ${BTTARGETDIR}/oginitrd.img.sum
302DATASUM=`md5sum "${BTTARGETDIR}/ogvmlinuz" | cut -f1 -d" "`
303echo $DATASUM > ${BTTARGETDIR}/ogvmlinuz.sum
304#Damos permisos
305cd -
306chmod -R 755 $BTTARGETDIR
307}
308
309#btogFsSqfs   convierte el sistema root en sqfs
310#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
311#@author  Antonio J. Doblas Viso. Universidad de Malaga.
312#@date    2010/05/24
313#@version 1.0 - Compatibilidad OpengGnsys X.
314#@author  Antonio J. Doblas Viso. Universidad de Malaga.
315#@date    2011/08/03
316function btogFsSqfs ()
317{
318#Dependencias.
319[ -z "$BTROOTFSIMG" ] && btogGetVar
320[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT
321
322echoAndLog "$FUNCNAME: Iniciando la creación del sistema de archivos en sqfs "
323# si ya existe un sqfs lo renombramos
324[ -f $BTTARGETDIR/ogclient.sqfs ] && mv $BTTARGETDIR/ogclient.sqfs $BTTARGETDIR/ogclient.sqfs.`date +%Y%m%d-%H%M%S`
325mount | grep $BTROOTFSMNT || mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256
326mksquashfs $BTROOTFSMNT $BTTARGETDIR/ogclient.sqfs
327mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
328chmod 744 $BTTARGETDIR/ogclient.sqfs
329DATASUM=`md5sum "${BTTARGETDIR}/ogclient.sqfs" | cut -f1 -d" "`
330echo $DATASUM > ${BTTARGETDIR}/ogclient.sqfs.sum
331}
332
333
334
335
336
337# btogIsoGenerator genera la iso del cliente
338#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
339#@author  Antonio J. Doblas Viso. Universidad de Malaga.
340#@date    2010/05/24
341#@version 1.0 - Compatibilidad OpengGnsys X.
342#@author  Antonio J. Doblas Viso. Universidad de Malaga.
343#@date    2011/08/03
344function btogIsoGenerator {
345#Dependencias.
346#[ -z "$BTROOTFSIMG" ] && btogGetVar
347btogGetVar
348#Preparamos los gestores de arranque
349mkdir -p /tmp/iso/isolinux
350cp -prv /usr/lib/syslinux/* /tmp/iso/isolinux/
351cp -prv /usr/share/gpxe/* /tmp/iso/isolinux/
352
353cat << FIN > /tmp/iso/isolinux/isolinux.cfg
354DEFAULT menu.c32
355PROMPT 0
356ALLOWOPTIONS 1
357
358MENU TITLE  OpenGnsys ${NAMEISOCLIENT}
359
360
361LABEL 0
362MENU LABEL ogLive vga irqpool acpi ogdebug ip:none
363KERNEL /ogclient/linuxISO
364APPEND initrd=/ogclient/oginitrd.img ro vga=788 irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=none
365
366LABEL 1
367MENU LABEL ogLive irqpoll acpi ip:none
368KERNEL /ogclient/linuxISO
369APPEND initrd=/ogclient/oginitrd.img ro  irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=false ip=none
370
371LABEL 2
372MENU LABEL ogLive acpi debug ip=dhcp
373KERNEL /ogclient/linuxISO
374APPEND initrd=/ogclient/oginitrd.img ro acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=dhcp
375
376LABEL 3
377MENU LABEL ogLive ip=dhcp
378KERNEL /ogclient/linuxISO
379APPEND initrd=/ogclient/oginitrd.img ro acpi=off boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=false ip=dhcp
380
381LABEL 4
382MENU LABEL local
383localboot 0x80
384append -
385
386label 5
387MENU LABEL Network boot via gPXE lkrn
388KERNEL gpxe.lkrn
389
390label 6
391MENU LABEL Network boot via gPXE usb
392KERNEL gpxe.usb
393
394label 7
395MENU LABEL Network boot via gPXE  pxe
396KERNEL gpxe.pxe
397
398label 8
399MENU LABEL Network boot via gPXE  iso
400KERNEL gpxe.iso
401
402label 9
403MENU LABEL gpxe
404KERNEL /clonezilla/live/vmlinuz1
405APPEND initrd=/clonezilla/live/initrd1.img boot=live union=aufs noswap vga=788 ip=frommedia
406FIN
407
408
409
410
411# preparamos el directorio boot-tools.
412mkdir -p /tmp/iso/ogclient
413cp ${BTTARGETDIR}/ogclient.sqfs /tmp/iso/ogclient/
414cp ${BTTARGETDIR}/ogclient.sqfs.sum /tmp/iso/ogclient/
415cp ${BTTARGETDIR}/ogvmlinuz /tmp/iso/ogclient/
416cp ${BTTARGETDIR}/ogvmlinuz.sum /tmp/iso/ogclient/
417cp ${BTTARGETDIR}/ogvmlinuz /tmp/iso/ogclient/linuxISO
418cp ${BTTARGETDIR}/ogvmlinuz.sum /tmp/iso/ogclient/linuxISO.sum
419cp ${BTTARGETDIR}/oginitrd.img /tmp/iso/ogclient/
420cp ${BTTARGETDIR}/oginitrd.img.sum /tmp/iso/ogclient/
421#el ogclienteToISO  debe tener una copia del ogvmlinuz como linuxISO
422#cp -prv /var/lib/tftpboot/ogclientToIso/* /tmp/iso/ogclient
423
424cd /tmp
425#TIMEMOD=`date +%Y%m%d-%H%M%S`
426####Generamos la iso
427echo "mkisofs -V ogClient -o ${NAMEISOCLIENT}.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -J -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso"
428mkisofs -V ogClient -o ${NAMEISOCLIENT}.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -J -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso
429##Generamos el md5
430DATASUM=`md5sum ${NAMEISOCLIENT}.iso | cut -f1 -d" "`
431echo $DATASUM > ${NAMEISOCLIENT}.iso.sum
432
433mv /tmp/${NAMEISOCLIENT}.iso /var/lib/tftpboot/ogclient/
434mv /tmp/${NAMEISOCLIENT}.iso.sum /var/lib/tftpboot/ogclient/
435
436
437### vi /etc/grub.d/40_custom
438##
439#menuentry "og cache " {
440#set root=(hd0,4)
441#linux /ogvmlinuz ro vga=788 irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=none
442#initrd /oginitrd.img
443#}
444
445}
446
447
448#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
449#@author  Antonio J. Doblas Viso. Universidad de Malaga.
450#@date    2010/05/24
451#@version 1.0 - Compatibilidad OpengGnsys X.
452#@author  Antonio J. Doblas Viso. Universidad de Malaga.
453#@date    2011/08/03
454function btogIsoTest {
455#/tmp/iso
456qemu -m 256 -boot d -cdrom ogClient.iso
457}
458
459
460
461
462function getDateTime()
463{
464        echo `date +%Y%m%d-%H%M%S`
465}
466
467# Escribe a fichero y muestra por pantalla
468function echoAndLog()
469{
470        echo $1
471        FECHAHORA=`getDateTime`
472        echo "$FECHAHORA;$SSH_CLIENT;$1" >> $LOG_FILE
473}
474
475function errorAndLog()
476{
477        echo "ERROR: $1"
478        FECHAHORA=`getDateTime`
479        echo "$FECHAHORA;$SSH_CLIENT;ERROR: $1" >> $LOG_FILE
480}
481
482
483
484
485
486
487
488
489
490
491############### No usados en el instalador, solo en actualizaciones.
492#/**
493#         ogClientMount [str_program]
494#@brief   Acceso al 2nd FS del cliente desde el Servidor Opengnsys
495#@param 1 Opciona: scripts o programa a ejecutar para automatizaciones
496#@return  Si no hay parametros: login de acceso.
497#@return  con un parametro: La salida del programa ejecutado
498#@exception
499#@note   
500#@todo   
501#@version 0.9 - Primera versión para OpenGnSys
502#@author  Antonio J. Doblas Viso, Universidad de Málaga
503#@date    2010/02/15
504#*/ ##
505function ogClientMount ()
506{
507        #TODO comprobar que OGFILE y OGFILEMOUNT existe.
508        mount | grep $OGCLIENTFILE > /dev/null || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
509        mount | grep $OGCLIENTMOUNT/proc > /dev/null || mount --bind /proc $OGCLIENTMOUNT/proc
510        mount | grep $OGCLIENTMOUNT/sys > /dev/null || mount --bind /sys $OGCLIENTMOUNT/sys
511        mount | grep $OGCLIENTMOUNT/tmp > /dev/null || mount --bind /tmp $OGCLIENTMOUNT/tmp
512        mount | grep $OGCLIENTMOUNT/dev > /dev/null || mount --bind /dev $OGCLIENTMOUNT/dev
513        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null || mount --bind /dev/pts $OGCLIENTMOUNT/dev/pts
514       
515       
516        [ $# = 0 ] && $(chroot $OGCLIENTMOUNT /sbin/getty 38400 `tty`)
517        [ $# = 1 ] && chroot $OGCLIENTMOUNT $1
518       
519}
520
521#/**
522#         ogClientUnmount
523#@brief   Desmonta el 2nd FS del cliente desde el Servidor Opengnsys
524#@param   
525#@return 
526#@exception
527#@note   
528#@todo   
529#@version 0.9 - Primera versión para OpenGnSys
530#@author  Antonio J. Doblas Viso, Universidad de Málaga
531#@date    2010/02/15
532#*/ ##
533
534function ogClientUnmount ()
535{
536        cd /tmp
537        echo "desmontando cliente espere"
538        sleep 5
539        mount | grep $OGCLIENTMOUNT/dev > /dev/null && umount $OGCLIENTMOUNT/dev || ogClientUnmount
540        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null && umount $OGCLIENTMOUNT/dev/pts || ogClientUnmount
541        mount | grep $OGCLIENTMOUNT/proc > /dev/null && umount $OGCLIENTMOUNT/proc || ogClientUnmount
542        mount | grep $OGCLIENTMOUNT/sys > /dev/null && umount $OGCLIENTMOUNT/sys || ogClientUnmount
543        mount | grep $OGCLIENTMOUNT/tmp > /dev/null && umount $OGCLIENTMOUNT/tmp || ogClientUnmount
544        mount | grep $OGCLIENTMOUNT > /dev/null && umount $OGCLIENTMOUNT || ogClientUnmount
545        #-d -f -l
546
547}
Note: See TracBrowser for help on using the repository browser.