source: client/boot-tools/boottoolsfunctions.lib @ 973f1df

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 973f1df was 385e255, checked in by ramon <ramongomez@…>, 11 years ago

Adaptar la generación del cliente ogLive a Ubuntu 14.04.

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

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