source: client/boot-tools/boottoolsfunctions.lib @ 26a1226

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 26a1226 was ed7e34d, checked in by adv <adv@…>, 13 years ago

#460 ogLive 11.10 oneiric

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

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