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

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 a86a15b was 11364a6, checked in by ramon <ramongomez@…>, 9 years ago

#724: Herramientas boot-tools preparadas para generar clinete ogLive basado en Ubuntu 16.04 LTS.

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

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