source: ogLive-Builder-Git/boottoolsfunctions.lib @ 8212e10

browserbuild-browserdeps-vadimfilebeat-installerimprove-versionlgromero-testsmainno-apt-moduleoglive-ipv6pull-from-cloning-enginepybuilderqndtest
Last change on this file since 8212e10 was 95f20d5, checked in by ramon <ramongomez@…>, 9 years ago

#724: Incluir cambios aplicados en ogLive 1.1.0-rc2 y eliminar paquetes duplicados.

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

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