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

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

Recuperar ficheros que no corresponden con el cambio de la revisión r3501.

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

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