diff options
Diffstat (limited to 'client/boot-tools/boottoolsfunctions.lib')
-rwxr-xr-x | client/boot-tools/boottoolsfunctions.lib | 641 |
1 files changed, 0 insertions, 641 deletions
diff --git a/client/boot-tools/boottoolsfunctions.lib b/client/boot-tools/boottoolsfunctions.lib deleted file mode 100755 index 972f0fe2..00000000 --- a/client/boot-tools/boottoolsfunctions.lib +++ /dev/null @@ -1,641 +0,0 @@ -#!/bin/bash -#/** -#@file boottoolsfunctions.lib -#@brief Librería o clase Boot-Tools -#@class Boot-Tools -#@brief Funciones para generar un sistema operativo cliente para opengnsys -#@version 1.1.1 -#@warning License: GNU GPLv3+ -#*/ - - -# btGetVariables: define las constantes a utilizar -# Autor: Antonio J. Doblas Viso. Universidad de Málaga. -function btogGetVar() -{ -export BTDIR=/tmp/opengnsys_installer/opengnsys/client/boot-tools -export BTTARGETDIR=/var/lib/tftpboot/ogclient/ -export BTROOTFSIMG=${BTTARGETDIR}ogclient.img -export BTROOTFSMNT=${BTTARGETDIR}ogclientmount -if [ "$OSARCH" = "i386" ]; then - # tamaño maximo limitado por schroot 2GB para 32 bits - export BTVIRTUALDISKSIZE=2000 -else - export BTVIRTUALDISKSIZE="3G" -fi -export BTROOTFSIMGLABEL=ogClient - -export LOG_FILE=/tmp/boot-tools_installation.log - -export VERSIONBOOTTOOLS="ogLive" -} - - -# btGetOsInfo: detecta la version del host, para tenerla de referencia en el boot-tools a generar. -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -#@version 1.0.5 - Fichero general de configuración, Kernel 3.7 para Ubuntu 12.10. -#@author Ramón Gómez, ETSII Univ. Sevilla -#@date 2013/02/06 -function btogGetOsInfo () -{ -OGCLIENTCFG=/tmp/ogclient.cfg -case "${1,,}" in - precise) # ogLive 1.0.4-rc2 basado en Ubuntu 12.04 LTS. - OSDISTRIB="ubuntu" - OSCODENAME="precise" - OSRELEASE="3.2.0-23-generic" - #OSRELEASE="3.11.0-26-generic" - OSARCH="i386" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - wheezy) # ogLive basado en Debian 7.3. - OSDISTRIB="debian" - OSCODENAME="wheezy" - OSRELEASE="3.2.0-4-i386" - OSARCH="i386" - OSHTTP="http://ftp.es.debian.org/debian/" - ;; - quantal) # ogLive 1.0.5-rc2 basado en Ubuntu 12.10 con Kernel descargado. - OSDISTRIB="ubuntu" - OSCODENAME="quantal" - OSRELEASE="3.7.6-030706-generic" - OSARCH="i386" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - raring) # ogLive 1.0.5-rc3 basado en Ubuntu 13.04. - OSDISTRIB="ubuntu" - OSCODENAME="raring" - OSRELEASE="3.8.0-22-generic" - OSARCH="i386" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - trusty) # ogLive 1.0.5-rc4 basado en Ubuntu 14.04. - OSDISTRIB="ubuntu" - OSCODENAME="trusty" - OSRELEASE="3.13.0-24-generic" - OSARCH="i386" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - vivid) # ogLive 1.1.0-rc2 basado en Ubuntu 15.04. - OSDISTRIB="ubuntu" - OSCODENAME="vivid" - OSRELEASE="3.19.0-49-generic" - OSARCH="i386" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - wily) # ogLive 1.1.0-rc1 basado en Ubuntu 15.10. - OSDISTRIB="ubuntu" - OSCODENAME="wily" - OSRELEASE="4.2.0-35-generic" - OSARCH="i386" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - xenial|xenial-4.4) # ogLive 1.1.0-rc4 basado en Ubuntu 16.04 y Kernel 4.4. - OSDISTRIB="ubuntu" - OSCODENAME="xenial" - OSRELEASE="4.4.0-34-generic" - OSARCH="i386" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - xenial-4.8) # ogLive 1.1.0-rc5 basado en Ubuntu 16.04 y Kernel 4.8. - OSDISTRIB="ubuntu" - OSCODENAME="xenial" - OSRELEASE="4.8.0-39-generic" - OSARCH="amd64" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - xenial-4.13) # ogLive 1.1.0-rc6 basado en Ubuntu 16.04 y Kernel 4.13. - OSDISTRIB="ubuntu" - OSCODENAME="xenial" - OSRELEASE="4.13.0-17-generic" - OSARCH="amd64" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - bionic|bionic-4.15) # ogLive 1.1.1-rc1 basado en Ubuntu 18.04 y Kernel 4.15. - OSDISTRIB="ubuntu" - OSCODENAME="bionic" - OSRELEASE="4.15.0-32-generic" - OSARCH="amd64" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - bionic-4.18) # ogLive 1.1.1-rc3 basado en Ubuntu 18.04 y Kernel 4.18. - OSDISTRIB="ubuntu" - OSCODENAME="bionic" - OSRELEASE="4.18.0-20-generic" - OSARCH="amd64" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - bionic-5.0) # ogLive 1.1.1-rc5 basado en Ubuntu 18.04 y Kernel 5.0. - OSDISTRIB="ubuntu" - OSCODENAME="bionic" - OSRELEASE="5.0.0-27-generic" - OSARCH="amd64" - OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - host) # ogLive basado en la distribución del servidor. - OSDISTRIB=$(lsb_release -is) - OSCODENAME=$(lsb_release -cs) - OSRELEASE=$(uname -r) - OSARCH=$(dpkg --print-architecture) - export OSHTTP="http://es.archive.ubuntu.com/ubuntu/" - ;; - *) # Parámetro desconocido - echo "Parámetro no válido." - exit 1 - ;; -esac -BRANCH="master" -GITURL="https://api.github.com/repos/opengnsys/OpenGnsys/commits?sha=$BRANCH&path=/client" -GITRELEASE=$(curl -s "$GITURL" | jq -r '"r" + (.[0].commit.committer.date | split("-") | join("")[:8]) + "." + (.[0].sha[:7])') -NAMEISOCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$OSRELEASE-$OSARCH-$GITRELEASE" -NAMEHOSTCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$GITRELEASE" -export OSDISTRIB OSCODENAME OSRELEASE OSARCH OSHTTP -export TYPECLIENT GITRELEASE NAMEISOCLIENT NAMEHOSTCLIENT -### El fichero de configuración debe sustituir a estos 3 ficheros (borrar las 3 líneas siguientes). -echo "$NAMEISOCLIENT" > /tmp/opengnsys_info_rootfs -echo "$NAMEHOSTCLIENT" > /tmp/opengnsys_chroot -# Generar fichero de configuración. -cat << EOT > $OGCLIENTCFG -TYPECLIENT="$1" -OSDISTRIB="$OSDISTRIB" -OSCODENAME="$OSCODENAME" -OSRELEASE="$OSRELEASE" -OSARCH="$OSARCH" -OSHTTP="$OSHTTP" -GITRELEASE="$GITRELEASE" -NAMEISOCLIENT="$NAMEISOCLIENT" -NAMEHOSTCLIENT="$NAMEHOSTCLIENT" -EOT -} - -# btogSetFsVirtual: Crea y formatea el fichero - disco duro virtual -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -# error code return 2 -function btogSetFsVirtual () -{ - -local RERROR DISKLOOP PARTLOOP #return code error - -#Dependencias. -[ -z "$BTROOTFSIMG" ] && btogGetVar - -echoAndLog "$FUNCNAME(): Creación y formateo del disco virtual $BTVIRTUALDISKSIZE MB " - -#Desmontamos el dispositivo virtual -mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT -mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT - -#echo "$FUNCNAME(): Creando el directorio donde se montará el disco virtual $BTROOTFSMNT" -mkdir -p $BTROOTFSMNT - -if [ $? -ne 0 ] -then - errorAndLog "$FUNCNAME(): Creando directorio $BTROOTFSMNT : ERROR" - return 1 -fi - -# Permisos para el usuario opengnsys. -chown -R root:opengnsys $BTTARGETDIR - -#echo "$FUNCNAME(): Creando el disco virtual con tamaño máximo de $BTVIRTUALDISKSIZE MB" -if [ "$OSARCH" = "i386" ]; then - dd if=/dev/zero of=$BTROOTFSIMG bs=1048576 count=$BTVIRTUALDISKSIZE - #dd if=/dev/zero of=$BTROOTFSIMG bs=1k count=$OGCLIENTSIZEKB # necesita 500MB -else - qemu-img create $BTROOTFSIMG $BTVIRTUALDISKSIZE -fi -if [ $? -ne 0 ] -then - errorAndLog "$FUNCNAME(): Creando el disco virtual con tamaño maxima $BTVIRTUALDISKSIZE MB : ERROR" - return 2 -fi - -# Particionamos el disco virtual con una sola particion primaria. -DISKLOOP=$(losetup -f) -#TODO: si no DISKLOOP error -losetup $DISKLOOP $BTROOTFSIMG -#echo "$FUNCNAME(): particiondo el disco virtual - $DISKLOOP - con una particion primaria" -echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP - - -#echoAndLog "$FUNCNAME(): Liberamos Desmontando $DISKLOOP despues del particionado " -sleep 10 -losetup -d $DISKLOOP -if [ $? -ne 0 ] -then - errorAndLog "$FUNCNAME(): Liberando disco virtual despues del particionado: ERROR" - return 2 -fi - - -PARTLOOP=$(losetup -f) -#echo "$FUNCNAME(): Formateando la particion principal $PARTLOOP" -losetup -o 32256 $PARTLOOP $BTROOTFSIMG && mkfs.ext4 -b 4096 -L $BTROOTFSIMGLABEL $PARTLOOP -if [ $? -ne 0 ] -then - errorAndLog "$FUNCNAME(): Formateando la particion principal del disco virtual: ERROR" - return 2 -fi -#echoAndLog "$FUNCNAME(): Desmontando $PARTLOOP despues del formateo " -sleep 10 -losetup -d $PARTLOOP -if [ $? -ne 0 ] -then - errorAndLog "$FUNCNAME(): Liberando la particion virtual despues del formateo: ERROR" - return 2 -else - echoAndLog "$FUNCNAME(): $BTROOTFSIMG $BTVIRTUALDISKSIZE MB : OK" -fi -} - - -# btogSetfsBase: Genera el sistema root base con debootstrap -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -# error code return 3 -function btogSetFsBase () -{ - -# Dependencias -[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT - -echoAndLog "$FUNCNAME: Iniciando la generación del sistema de archivos " - -#Montamos el dispositivo virtual en su punto de montaje. -mount | grep $BTROOTFSMNT || mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 -mount | grep $BTROOTFSMNT && echoAndLog "$FUNCNAME: mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 OK " || errorAndLog "$FUNCNAME: mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 : FAILURE " - -debootstrap --arch=$OSARCH --components=main,universe ${OSCODENAME} ${BTROOTFSMNT} ${OSHTTP} -#debootstrap --arch=$OSARCH ${OSCODENAME} ${BTROOTFSMNT} http://archive.ubuntu.com/ubuntu/ - - -if [ $? -ne 0 ]; then - errorAndLog "$FUNCNAME: debootstrap --arch=$OSARCH --components=main,universe $OSCODENAME $BTROOTFSMNT $OSHTTP : ha fallado!" - mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT - return 3 -else - echoAndLog "$FUNCNAME: debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe $OSCODENAME $BTROOTFSMNT $OSHTTP : ok" - mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT - return 0 -fi - sleep 5 - -##preubas revisar OSRELEASE -#debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe ${OSCODENAME} ${OGCLIENTMOUNT} ${OSHTTP} -#debootstrap --include=linux-image-${OSRELEASE} --arch=i386 --variant=minbase $OSVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/ -#debootstrap --variant=minbase --include=linux-image-${OGRELEASE} --arch=i386 $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/ -#echo debootstrap --include=linux-image-${OGRELEASE},dbus --arch=i386 --components=main,universe $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/ -} - -#btogSetFsAcces: habilita el acceso al sistema root del cliente con schroot -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -function btogSetFsAccess() -{ -echoAndLog "$FUNCNAME: Iniciando la configuración del schroot " -cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.`getDateTime` -cat << EOF > /etc/schroot/schroot.conf -[IMGogclient] -type=loopback -file=/var/lib/tftpboot/ogclient/ogclient.img -description=ogclient Ubuntu image -#priority=1 -users=root -groups=root -root-groups=root -mount-options=-o offset=32256 -root-users=root -EOF - -cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.`getDateTime` -cat << EOF > /etc/schroot/mount-defaults -# mount.defaults: static file system information for chroots. -# Note that the mount point will be prefixed by the chroot path -# (CHROOT_PATH) -# -# <file system> <mount point> <type> <options> <dump> <pass> -proc /proc proc defaults 0 0 -#procbususb /proc/bus/usb usbfs defaults 0 0 -#/dev /dev none rw,bind 0 0 -/dev/pts /dev/pts none rw,bind 0 0 -/dev/shm /dev/shm none rw,bind 0 0 -#/home /home none rw,bind 0 0 -/tmp /tmp none rw,bind 0 0 -EOF - -rm /etc/schroot/setup.d/*chrootname - -echoAndLog "$FUNCNAME: Finalizado: OK " -return 0 -} - - - -#btogFsInitr genera un initrd. -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -function btogFsInitrd () -{ -#DEPENDENCIAS -[ -z "$BTROOTFSIMG" ] && btogGetVar -[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT - -cd / -schroot -c IMGogclient -- /usr/bin/boot-tools/boottoolsInitrdGenerate.sh -echo "cp /tmp/*-${OSRELEASE} ${BTTARGETDIR}" -cp /tmp/*-${OSRELEASE} ${BTTARGETDIR} -#Creando copias de las version oginitr y ogvmlinux previas -TIMEMOD=`date +%Y%m%d-%H%M%S` -[ -f $BTTARGETDIR/oginitrd.img ] && mv $BTTARGETDIR/oginitrd.img $BTTARGETDIR/oginitrd.img.$TIMEMOD; mv $BTTARGETDIR/oginitrd.img.sum $BTTARGETDIR/oginitrd.img.sum.$TIMEMOD -[ -f $BTTARGETDIR/ogvmlinuz ] && mv $BTTARGETDIR/ogvmlinuz $BTTARGETDIR/ogvmlinuz.$TIMEMOD; mv $BTTARGETDIR/ogvmlinuz.sum $BTTARGETDIR/ogvmlinuz.sum.$TIMEMOD - -#copiando -cp /tmp/initrd.img-${OSRELEASE} ${BTTARGETDIR}/oginitrd.img -cp /tmp/vmlinuz-${OSRELEASE} ${BTTARGETDIR}/ogvmlinuz -#generamos md5 del kernel y del initrd. -DATASUM=`md5sum "${BTTARGETDIR}/oginitrd.img" | cut -f1 -d" "` -echo $DATASUM > ${BTTARGETDIR}/oginitrd.img.sum -DATASUM=`md5sum "${BTTARGETDIR}/ogvmlinuz" | cut -f1 -d" "` -echo $DATASUM > ${BTTARGETDIR}/ogvmlinuz.sum -#Damos permisos -cd - -chmod -R 755 $BTTARGETDIR -} - -#btogFsSqfs convierte el sistema root en sqfs -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -function btogFsSqfs () -{ -#Dependencias. -[ -z "$BTROOTFSIMG" ] && btogGetVar -[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT - -echoAndLog "$FUNCNAME: Iniciando la creación del sistema de archivos en sqfs " -# si ya existe un sqfs lo renombramos -[ -f $BTTARGETDIR/ogclient.sqfs ] && mv $BTTARGETDIR/ogclient.sqfs $BTTARGETDIR/ogclient.sqfs.`date +%Y%m%d-%H%M%S` -mount | grep $BTROOTFSMNT || mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 -mksquashfs $BTROOTFSMNT $BTTARGETDIR/ogclient.sqfs -mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT -chmod 744 $BTTARGETDIR/ogclient.sqfs -DATASUM=`md5sum "${BTTARGETDIR}/ogclient.sqfs" | cut -f1 -d" "` -echo $DATASUM > ${BTTARGETDIR}/ogclient.sqfs.sum -} - - - - - -# btogIsoGenerator genera la iso del cliente -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -function btogIsoGenerator { -#Dependencias. -#[ -z "$BTROOTFSIMG" ] && btogGetVar -btogGetVar -#Preparamos los gestores de arranque -mkdir -p /tmp/iso/isolinux -cp -av /usr/lib/syslinux/* /tmp/iso/isolinux/ -if [ -d /usr/share/gpxe ]; then - cp -av /usr/share/gpxe/* /tmp/iso/isolinux - PXE=gpxe -elif [ -d /usr/lib/ipxe ]; then - cp -av /usr/lib/ipxe/* /tmp/iso/isolinux - PXE=ipxe -fi - -# Si existe el fichero ISO, montarlo para extraer isolinux.bin. -if [ -f /tmp/iso/isolinux/$PXE.iso ]; then - mkdir -p /tmp/iso/isolinux/mount - mount -o loop /tmp/iso/isolinux/$PXE.iso /tmp/iso/isolinux/mount - cp -va /tmp/iso/isolinux/mount/* /tmp/iso/isolinux - umount /tmp/iso/isolinux/mount - rmdir /tmp/iso/isolinux/mount - rm -f /tmp/iso/isolinux/$PXE.iso -fi - -cat << FIN > /tmp/iso/isolinux/isolinux.cfg -DEFAULT menu.c32 -PROMPT 0 -ALLOWOPTIONS 1 - -MENU TITLE OpenGnsys ${NAMEISOCLIENT} - - -LABEL 0 -MENU LABEL ogLive vga irqpool acpi ogdebug ip:none -KERNEL /ogclient/linuxISO -APPEND initrd=/ogclient/oginitrd.img ro vga=788 irqpoll acpi=on boot=oginit og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=none - -LABEL 1 -MENU LABEL ogLive irqpoll acpi ip:none -KERNEL /ogclient/linuxISO -APPEND initrd=/ogclient/oginitrd.img ro irqpoll acpi=on boot=oginit og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=false ip=none - -LABEL 2 -MENU LABEL ogLive acpi debug ip=dhcp -KERNEL /ogclient/linuxISO -APPEND initrd=/ogclient/oginitrd.img ro acpi=on boot=oginit og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=dhcp - -LABEL 3 -MENU LABEL ogLive ip=dhcp -KERNEL /ogclient/linuxISO -APPEND initrd=/ogclient/oginitrd.img ro acpi=off boot=oginit og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=false ip=dhcp - -LABEL 4 -MENU LABEL local -localboot 0x80 -append - - -label 5 -MENU LABEL Network boot via gPXE lkrn -KERNEL $PXE.lkrn - -label 6 -MENU LABEL Network boot via gPXE usb -KERNEL $PXE.usb - -label 7 -MENU LABEL Network boot via gPXE pxe -KERNEL $PXE.pxe - -label 8 -MENU LABEL Network boot via gPXE iso -KERNEL $PXE.iso - -label 9 -MENU LABEL pxe -KERNEL /clonezilla/live/vmlinuz1 -APPEND initrd=/clonezilla/live/initrd1.img boot=live union=aufs noswap vga=788 ip=frommedia -FIN - - - - -# preparamos el directorio boot-tools. -mkdir -p /tmp/iso/ogclient -cp ${BTTARGETDIR}/ogclient.sqfs /tmp/iso/ogclient/ -cp ${BTTARGETDIR}/ogclient.sqfs.sum /tmp/iso/ogclient/ -cp ${BTTARGETDIR}/ogvmlinuz /tmp/iso/ogclient/ -cp ${BTTARGETDIR}/ogvmlinuz.sum /tmp/iso/ogclient/ -cp ${BTTARGETDIR}/ogvmlinuz /tmp/iso/ogclient/linuxISO -cp ${BTTARGETDIR}/ogvmlinuz.sum /tmp/iso/ogclient/linuxISO.sum -cp ${BTTARGETDIR}/oginitrd.img /tmp/iso/ogclient/ -cp ${BTTARGETDIR}/oginitrd.img.sum /tmp/iso/ogclient/ -#el ogclienteToISO debe tener una copia del ogvmlinuz como linuxISO -#cp -prv /var/lib/tftpboot/ogclientToIso/* /tmp/iso/ogclient - -cd /tmp -#TIMEMOD=`date +%Y%m%d-%H%M%S` -####Generamos la iso -echo "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" -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 -##Generamos el md5 -DATASUM=`md5sum ${NAMEISOCLIENT}.iso | cut -f1 -d" "` -echo $DATASUM > ${NAMEISOCLIENT}.iso.sum - -mv /tmp/${NAMEISOCLIENT}.iso /var/lib/tftpboot/ogclient/ -mv /tmp/${NAMEISOCLIENT}.iso.sum /var/lib/tftpboot/ogclient/ - - -### vi /etc/grub.d/40_custom -## -#menuentry "og cache " { -#set root=(hd0,4) -#linux /ogvmlinuz ro vga=788 irqpoll acpi=on boot=oginit og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=none -#initrd /oginitrd.img -#} - -} - - -#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2010/05/24 -#@version 1.0 - Compatibilidad OpengGnsys X. -#@author Antonio J. Doblas Viso. Universidad de Malaga. -#@date 2011/08/03 -function btogIsoTest { -#/tmp/iso -qemu -m 256 -boot d -cdrom ogClient.iso -} - - - - -function getDateTime() -{ - echo `date +%Y%m%d-%H%M%S` -} - -# Escribe a fichero y muestra por pantalla -function echoAndLog() -{ - echo $1 - FECHAHORA=`getDateTime` - echo "$FECHAHORA;$SSH_CLIENT;$1" >> $LOG_FILE -} - -function errorAndLog() -{ - echo "ERROR: $1" - FECHAHORA=`getDateTime` - echo "$FECHAHORA;$SSH_CLIENT;ERROR: $1" >> $LOG_FILE -} - - - - - - - - - - -############### No usados en el instalador, solo en actualizaciones. -#/** -# ogClientMount [str_program] -#@brief Acceso al 2nd FS del cliente desde el Servidor Opengnsys -#@param 1 Opciona: scripts o programa a ejecutar para automatizaciones -#@return Si no hay parametros: login de acceso. -#@return con un parametro: La salida del programa ejecutado -#@exception -#@note -#@todo -#@version 0.9 - Primera versión para OpenGnSys -#@author Antonio J. Doblas Viso, Universidad de Málaga -#@date 2010/02/15 -#*/ ## -function ogClientMount () -{ - #TODO comprobar que OGFILE y OGFILEMOUNT existe. - mount | grep $OGCLIENTFILE > /dev/null || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256 - mount | grep $OGCLIENTMOUNT/proc > /dev/null || mount --bind /proc $OGCLIENTMOUNT/proc - mount | grep $OGCLIENTMOUNT/sys > /dev/null || mount --bind /sys $OGCLIENTMOUNT/sys - mount | grep $OGCLIENTMOUNT/tmp > /dev/null || mount --bind /tmp $OGCLIENTMOUNT/tmp - mount | grep $OGCLIENTMOUNT/dev > /dev/null || mount --bind /dev $OGCLIENTMOUNT/dev - mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null || mount --bind /dev/pts $OGCLIENTMOUNT/dev/pts - - - [ $# = 0 ] && $(chroot $OGCLIENTMOUNT /sbin/getty 38400 `tty`) - [ $# = 1 ] && chroot $OGCLIENTMOUNT $1 - -} - -#/** -# ogClientUnmount -#@brief Desmonta el 2nd FS del cliente desde el Servidor Opengnsys -#@param -#@return -#@exception -#@note -#@todo -#@version 0.9 - Primera versión para OpenGnSys -#@author Antonio J. Doblas Viso, Universidad de Málaga -#@date 2010/02/15 -#*/ ## - -function ogClientUnmount () -{ - cd /tmp - echo "desmontando cliente espere" - sleep 5 - mount | grep $OGCLIENTMOUNT/dev > /dev/null && umount $OGCLIENTMOUNT/dev || ogClientUnmount - mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null && umount $OGCLIENTMOUNT/dev/pts || ogClientUnmount - mount | grep $OGCLIENTMOUNT/proc > /dev/null && umount $OGCLIENTMOUNT/proc || ogClientUnmount - mount | grep $OGCLIENTMOUNT/sys > /dev/null && umount $OGCLIENTMOUNT/sys || ogClientUnmount - mount | grep $OGCLIENTMOUNT/tmp > /dev/null && umount $OGCLIENTMOUNT/tmp || ogClientUnmount - mount | grep $OGCLIENTMOUNT > /dev/null && umount $OGCLIENTMOUNT || ogClientUnmount - #-d -f -l - -} |