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

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

#573: Proceso de instalación del Kernel 3.7.6 durante la generación del cliente basado en Ubuntu 12.10.

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

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