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

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

Versión 1.0.5: Corregir algunas erratas y unificar los mensajes en el proceso de generación del cliente ogLive.

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

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