summaryrefslogtreecommitdiffstats
path: root/client/boot-tools
diff options
context:
space:
mode:
Diffstat (limited to 'client/boot-tools')
-rw-r--r--client/boot-tools/INSTALL.es.txt43
-rw-r--r--client/boot-tools/boottoolsfunctions.lib518
-rwxr-xr-xclient/boot-tools/boottoolsgenerator.sh134
-rw-r--r--client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions479
-rwxr-xr-xclient/boot-tools/clientstructure/etc/profile.d/loadenviron.sh87
-rwxr-xr-xclient/boot-tools/clientstructure/root/CompileSoftware.sh30
-rwxr-xr-xclient/boot-tools/clientstructure/root/ConfFS.sh24
-rwxr-xr-xclient/boot-tools/clientstructure/root/InstallSoftware.sh62
-rwxr-xr-xclient/boot-tools/clientstructure/root/qemu.sh9
-rw-r--r--client/boot-tools/includes/etc/apt/sources.list.debian (renamed from client/boot-tools/clientstructure/etc/apt/sources.list.debian)0
-rw-r--r--client/boot-tools/includes/etc/apt/sources.list.ubuntu (renamed from client/boot-tools/clientstructure/etc/apt/sources.list.ubuntu)0
-rw-r--r--client/boot-tools/includes/etc/environment (renamed from client/boot-tools/clientstructure/etc/environment)0
-rw-r--r--client/boot-tools/includes/etc/fstab (renamed from client/boot-tools/clientstructure/etc/fstab)0
-rwxr-xr-xclient/boot-tools/includes/etc/initramfs-tools/hooks/oghooks (renamed from client/boot-tools/clientstructure/etc/initramfs-tools/hooks/oghooks)0
-rw-r--r--client/boot-tools/includes/etc/initramfs-tools/modules (renamed from client/boot-tools/clientstructure/etc/initramfs-tools/modules)0
-rw-r--r--client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions669
-rwxr-xr-xclient/boot-tools/includes/etc/initramfs-tools/scripts/oginit (renamed from client/boot-tools/clientstructure/etc/initramfs-tools/scripts/oginit)65
-rw-r--r--client/boot-tools/includes/etc/inittab (renamed from client/boot-tools/clientstructure/etc/inittab)0
-rw-r--r--client/boot-tools/includes/etc/modprobe.d/blacklist-framebuffer.conf (renamed from client/boot-tools/clientstructure/etc/modprobe.d/blacklist-framebuffer.conf)0
-rw-r--r--client/boot-tools/includes/etc/mtab (renamed from client/boot-tools/clientstructure/etc/mtab)0
-rw-r--r--client/boot-tools/includes/etc/network/interfaces (renamed from client/boot-tools/clientstructure/etc/network/interfaces)0
-rwxr-xr-xclient/boot-tools/includes/etc/profile.d/loadenviron.sh4
-rw-r--r--client/boot-tools/includes/etc/securetty.template142
-rw-r--r--client/boot-tools/includes/etc/ssh/ssh_config (renamed from client/boot-tools/clientstructure/etc/ssh/ssh_config)0
-rw-r--r--client/boot-tools/includes/etc/ssh/sshd_config (renamed from client/boot-tools/clientstructure/etc/ssh/sshd_config)0
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/box.pngbin0 -> 870 bytes
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/bullet.pngbin0 -> 296 bytes
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/entry.pngbin0 -> 350 bytes
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/lock.pngbin0 -> 1896 bytes
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/logoopengnsys.pngbin0 -> 13331 bytes
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.plymouth11
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.pngbin0 -> 13331 bytes
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.script203
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_bar.pngbin0 -> 285 bytes
-rw-r--r--client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_box.pngbin0 -> 285 bytes
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/boottoolsBootGraphics.sh19
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/boottoolsFsLocales.sh (renamed from client/boot-tools/clientstructure/root/ReconfigureLocales.sh)4
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsOpengnsys.sh124
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/boottoolsFsPostconfiguration.sh5
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/boottoolsInitrdGenerate.sh (renamed from client/boot-tools/clientstructure/root/GenerateInitrd.generic.sh)4
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh32
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh69
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareXwindows14
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/boottoolsSshClient.sh (renamed from client/boot-tools/clientstructure/root/generateSshKeysClient.sh)4
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/boottoolsSshServer.sh (renamed from client/boot-tools/clientstructure/root/importSshKeys.sh)3
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow10
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Zinitrd3
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic13
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.cloning16
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compile10
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compresor12
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.local21
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.remote9
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.monitoring12
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.networking14
-rw-r--r--client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing4
-rwxr-xr-xclient/boot-tools/includes/usr/bin/boot-tools/qemu.sh12
-rwxr-xr-xclient/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.7-1drbl_i386.debbin0 -> 5023908 bytes
-rwxr-xr-xclient/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.8_i386.debbin0 -> 5025002 bytes
-rw-r--r--client/boot-tools/includes/var/cache/apt/archivesOG/xvesa.debbin0 -> 541364 bytes
-rw-r--r--client/boot-tools/includes/var/lib/locales/supported.d/local (renamed from client/boot-tools/clientstructure/var/lib/locales/supported.d/local)0
-rw-r--r--client/boot-tools/kernelParameterOG.es.txt48
-rwxr-xr-xclient/boot-tools/ogClientGeneratorV2.sh161
-rw-r--r--client/boot-tools/ogClientManager.lib725
-rw-r--r--client/boot-tools/ogInstaller.lib958
65 files changed, 2154 insertions, 2632 deletions
diff --git a/client/boot-tools/INSTALL.es.txt b/client/boot-tools/INSTALL.es.txt
index d39e798d..7c580934 100644
--- a/client/boot-tools/INSTALL.es.txt
+++ b/client/boot-tools/INSTALL.es.txt
@@ -2,9 +2,15 @@ OpenGnSys Client boot-tools INSTALL.es.txt
============================================
+Advertencia previa:
+-----------------------------
+- No usar este instalador en un sistema OpenGnNys en producción.
+- Se puede ejecutar este script desde un sistema Ubuntu 10.04, 11.04
+- Mas información http://www.opengnsys.es/wiki/ClienteInitrdDSGenerarloV1.0.2
+
+
Requisitos iniciales
--------------------
-
- Utilizar el usuario "root" para ejecutar el proceso de generación del cliente.
- Comprobar la conexión a Internet, sobre todo si usas proxy (el hecho de que funcione apt-get no significa que tengas el proxy configurado).
@@ -12,35 +18,30 @@ Requisitos iniciales
Proceso de instalación
----------------------
-0. Si ya tenemos configurado TFTP, renombrar el directorio /var/lib/tftpboot/ogclient.
-1. Descargar del Subversion las herramientas del cliente
-2. Ejecutar el instalador:
-
+#0. Si ya tenemos configurado TFTP, renombrar el directorio /var/lib/tftpboot/ogclient.
mv /opt/opengnsys/tftpboot/ogclient /opt/opengnsys/tftpboot/ogclient-old;
-svn checkout http://www.opengnsys.es/svn/trunk/client /tmp/opengnsys_installer/opengnsys;
+
+#1. Descargar del Subversion las herramientas del cliente
+apt-get install subversion wget
+svn checkout http://www.opengnsys.es/svn/branches/version1.0/client /tmp/opengnsys_installer/opengnsys/client/;
+svn checkout http://www.opengnsys.es/svn/branches/version2/ /tmp/opengnsys_installer/opengnsys2;
find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null;
-/tmp/opengnsys_installer/opengnsys/client/boot-tools/ogClientGeneratorV2.sh;
+#2. Ejecutar el instalador:
+/tmp/opengnsys_installer/opengnsys/client/boot-tools/boottoolsgenerator.sh;
-NOTAS:
-- el proceso tardará un buen rato, dependiendo de nuestras circustancias.
-- crea un kernel, initrd, ogclient.img en /var/lib/tftpboot/ogclient
-- el ogclient.img es el Segundo sistema de archivos en formato fichero bloques emulando a disco con partición primaria.
-- el ogclient.sqfs es el Segundo sistema de archivos (partición primaria del img) en formato squashfs. Se usará con el parámetro og2nd=sqfs
-- los logs de instalación estarán en /tmp/opengnsys_installation.log
-NOTA ACLARATORIA: $OGSCRITPS(reboot,poweroff) antes de /sbin/{reboot,poweroff}
Descripción de la estrucutra de boot-tools
------------------------------------------
- INSTALL.es.txt este mismo archivo.
-- ogInstaller.lib son todas las funciones del instalador oficial de OpenGnSys.
- Algunas de ellas son utilizadas en la generación del cliente
- (crear ticket para separar las funciones necesarias).
-- ogClientManager.lib son las funicones especificas para la instalacion del cliente;
- están escritas en orden de que son llamadas por el instalador.
-- ogClientGeneratorV2.sh es el guión de ejecución del isntalador.
-
+- boottollsgenerator.sh proceso de generación del sistema operativo opengnsys.
+- boottoolsfunctions.lib libreria complementaria del boottolsgenerator.sh
+- includes/ directorio con ficheros específicos para incluir en la distribución.
+
+
+
+
diff --git a/client/boot-tools/boottoolsfunctions.lib b/client/boot-tools/boottoolsfunctions.lib
new file mode 100644
index 00000000..2f7aff65
--- /dev/null
+++ b/client/boot-tools/boottoolsfunctions.lib
@@ -0,0 +1,518 @@
+#!/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 0.9
+#@warning License: GNU GPLv3+
+#*/
+
+
+# btGetVariables: define las constantes a utilizar
+# Autor: Antonio J. Doblas Viso. Universidad de Málaga.
+function btogGetVar()
+{
+
+export BTSVNBOOTTOOLS=/tmp/opengnsys_installer/opengnsys/client/boot-tools
+export BTSVNSHARE=/tmp/opengnsys_installer/opengnsys/client/shared
+export BTSVNENGINE=/tmp/opengnsys_installer/opengnsys/client/engine
+
+export BTSVNOG2=/tmp/opengnsys_installer/opengnsys2
+
+export BTTARGETDIR=/var/lib/tftpboot/ogclient/
+export BTROOTFSIMG=${BTTARGETDIR}ogclient.img
+export BTROOTFSMNT=${BTTARGETDIR}ogclientmount
+# tamaño maximo limitado por schroot 2GB
+export BTVIRTUALDISKSIZE=2000
+export BTROOTFSIMGLABEL=ogClient
+
+export LOG_FILE=/tmp/boot-tools_installation.log
+
+NAMEISOCLIENT=`cat /tmp/opengnsys_info_rootfs`
+NAMEHOSTCLIENT=`cat /tmp/opengnsys_chroot`
+
+export NAMEISOCLIENT
+export NAMEHOSTCLIENT
+}
+
+
+# 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
+function btogGetOsInfo ()
+{
+ case $1 in
+ lenny|LENNY)
+ export OSDISTRIB=debian
+ export OSCODENAME=lenny
+ export OSRELEASE="2.6.28-11-generic"
+ export OSARCH=i386
+ export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
+ ;;
+ lucid|LUCID)
+ export OSDISTRIB=ubuntu
+ export OSCODENAME=lucid
+ export OSRELEASE="2.6.32-21-generic-pae"
+ export OSARCH=i386
+ export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
+ ;;
+ host | HOST | *)
+ export OSDISTRIB=$(lsb_release -i | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
+ export OSCODENAME=$(cat /etc/lsb-release | grep CODENAME | awk -F= '{print $NF}')
+ export OSRELEASE=$(uname -a | awk '{print $3}')
+ uname -a | grep x86_64 > /dev/null && export OSARCH=amd64 || export OSARCH=i386
+ export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
+ ;;
+ esac
+ echo $OSDISTRIB:$OSCODENAME:$OSRELEASE:$OSARCH:$OSHTTP
+}
+
+# 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 $BTROOTFSMNTT && 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"
+dd if=/dev/zero of=$BTROOTFSIMG bs=1048576 count=$BTVIRTUALDISKSIZE
+ #qemu-img create $BTROOTFSIMG 3G
+ #dd if=/dev/zero of=$BTROOTFSIMG bs=1k count=$OGCLIENTSIZEKB # necesita 500MB
+
+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 "
+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.ext3 -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 "
+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
+
+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}
+
+
+if [ $? -ne 0 ]; then
+ errorAndLog "$FUNCNAME: debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --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 luc IMGi
+#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
+
+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
+
+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 -prv /usr/lib/syslinux/* /tmp/iso/isolinux/
+cp -prv /usr/share/gpxe/* /tmp/iso/isolinux/
+
+cat << FIN > /tmp/iso/isolinux/isolinux.cfg
+DEFAULT menu.c32
+PROMPT 0
+ALLOWOPTIONS 1
+
+MENU TITLE OpenGnsys ${NAMEISOCLIENT}
+
+LABEL gpxe
+MENU LABEL gpxe
+KERNEL /clonezilla/live/vmlinuz1
+APPEND initrd=/clonezilla/live/initrd1.img boot=live union=aufs noswap vga=788 ip=frommedia
+
+LABEL 0
+MENU LABEL ogClient 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 ogClient 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 ogClient 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 ogClient 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 gpxe.lkrn
+
+label 6
+MENU LABEL Network boot via gPXE usb
+KERNEL gpxe.usb
+
+label 7
+MENU LABEL Network boot via gPXE pxe
+KERNEL gpxe.pxe
+
+label 8
+MENU LABEL Network boot via gPXE iso
+KERNEL gpxe.iso
+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
+
+}
diff --git a/client/boot-tools/boottoolsgenerator.sh b/client/boot-tools/boottoolsgenerator.sh
new file mode 100755
index 00000000..70a77355
--- /dev/null
+++ b/client/boot-tools/boottoolsgenerator.sh
@@ -0,0 +1,134 @@
+#!/bin/bash
+#@file boottoolsgenerator.sh
+#@brief Script generación del sistema opertativo cliente OpenGnSys
+#@warning
+#@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
+#*/
+
+ #mkdir -p /tmp/opengnsys_installer/opengnsys;
+ #mkdir -p /tmp/opengnsys_installer/opengnsys2;
+ #cp -prv /home/administrador/workspace/OpenGnsys/branches/version2/* /tmp/opengnsys_installer/opengnsys2/;
+ #cp -prv /home/administrador/workspace/OpenGnsys/branches/version1.0/client/ /tmp/opengnsys_installer/opengnsys/;
+#find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null;
+
+
+#Variables
+TYPECLIENT=host
+WORKDIR=/tmp/opengnsys_installer
+INSTALL_TARGET=/opt/opengnsys
+PROGRAMDIR=$(readlink -e $(dirname "$0"))
+
+# Solo ejecutable por usuario root
+if [ "$(whoami)" != 'root' ]
+then
+ echo "ERROR: this program must run under root privileges!!"
+ exit 1
+fi
+
+for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done
+for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done
+for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done
+
+
+
+#funciones especificas del cliente.
+source $PROGRAMDIR/boottoolsfunctions.lib
+
+
+echoAndLog "OpenGnSys CLIENT installation begins at $(date)"
+
+##########################################################################
+## FASE 1 - Instalación de software adicional.
+cat /etc/apt/sources.list | grep "http://free.nchc.org.tw/drbl-core" || echo "deb http://free.nchc.org.tw/drbl-core drbl stable " >> /etc/apt/sources.list
+apt-get update
+apt-get -y --force-yes install debootstrap subversion schroot squashfs-tools syslinux genisoimage gpxe qemu
+
+##### FASE 2 - Asignación de variables
+#obtenemos las variables necesarias y la información del host.
+btogGetVar && btogGetOsInfo
+
+############# FASE 3: Creación del Sistema raiz RootFS (Segundo Sistema archivos (img))
+##3.1 creación y formateo del disco virtual. generamos el dispositivo loop.
+file $BTROOTFSIMG | grep "partition 1: ID=0x83"
+if [ $? == 1 ]
+then
+ btogSetFsVirtual || exit 2
+fi
+#3.2 generamos el Sistema de archivos con debootstrap
+schroot -p -c IMGogclient -- touch /tmp/ogclientOK
+if [ -f /tmp/ogclientOK ]
+then
+ rm /tmp/ogclientOK
+else
+ btogSetFsBase || exit 3
+fi
+
+# FASE 4: Configuración el acceso al Segundo Sistema de archivos (img), para schroot
+cat /etc/schroot/schroot.conf | grep $BTROOTFSIMG || btogSetFsAccess
+
+# FASE 5: Incorporando con ficheros OG el sistema raiz rootfs
+cp -prv ${BTSVNBOOTTOOLS}/includes/usr/bin/* /tmp/
+chmod 777 /tmp/boot-tools/*.sh
+schroot -p -c IMGogclient -- /tmp/boot-tools/boottoolsFsOpengnsys.sh
+
+# FASE6: Instalacion de software
+# 6.1 instalacion de software con apt-get
+#cp /etc/apt/sources.list /tmp
+schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSoftwareInstall.sh
+
+
+# 6.2 compilación de software.
+cd /
+schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSoftwareCompile.sh
+schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSoftwareCompile.sh
+
+cd -
+
+#Fase 7. Personalizando
+
+schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsFsLocales.sh
+
+
+### 7.1 incorporamos la clave publica del servidor
+cd /
+ssh-keygen -q -f /root/.ssh/id_rsa -N ""
+cp /root/.ssh/id_rsa.pub /tmp
+schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSshServer.sh
+cd -
+### 7.2 y la del propio cliente.
+schroot -c IMGogclient -- /usr/bin/boot-tools/boottoolsSshClient.sh
+
+## 7.3 configuramos los locales.
+schroot -c IMGogclient -- /usr/bin/boot-tools/boottoolsFsLocales.sh
+
+for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done
+for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done
+for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done
+
+
+
+
+
+#Fase 7. Generando la ISO.
+#7.1 el initrd
+btogFsInitrd
+
+
+#7.2 Convertivos el sistema raiz img en formato sqfs
+btogFsSqfs
+#7.3 Generamos la iso
+btogIsoGenerator
+
+
+# Mostrar sumario de la instalación e instrucciones de post-instalación.
+installationSummary
+
+echoAndLog "OpenGnSys installation finished at $(date)"
+
+
+
diff --git a/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions b/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions
deleted file mode 100644
index 16539dd6..00000000
--- a/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions
+++ /dev/null
@@ -1,479 +0,0 @@
-#@file ogfunctions.lib
-#@brief Librería o clase para la generación del 1erFS
-#@class client
-#@brief Funciones para la generación del primers sistema (initrd)
-#@version 0.91
-#@warning License: GNU GPLv3+
-
-
-
-
-ogExportKernelParameters ()
-{
- GLOBAL="cat /proc/cmdline"
- for i in `${GLOBAL}`
- do
- echo $i | grep "=" > /dev/null && export $i
- done
-return 0
-}
-
-ogExportVarEnvironment ()
-{
- export CFGINITRD="/tmp/initrd.cfg"
- echo "puntos de accesos al servidor ogprotocol=nfs" >> $CFGINITRD
- export NFSROOTBOOT="/var/lib/tftpboot" && echo "NFSROOTBOOT=$NFSROOTBOOT" >> $CFGINITRD
- export NFSCLIENTDIR="/opt/opengnsys/client" && echo "NFSCLIENDIR=$NFSCLIENTDIR" >> $CFGINITRD
- export NFSLOGDIR="/opt/opengnsys/log/clients" && echo "NFSLOGDIR=$NFSLOGDIR" >> $CFGINITRD
- export NFSIMGDIR="/opt/opengnsys/images" && echo "NFSIMGDIR=$NFSIMGDIR" >> $CFGINITRD
- echo "puntos de accesos al servidor ogprotocol=smb" >> $CFGINITRD
- export SMBROOTBOOT="tftpboot" && echo "SMBROOTBOOT=$SMBROOTBOOT" >> $CFGINITRD
- export SMBCLIENTDIR="ogclient" && echo "SMBCLIENTDIR=$SMBCLIENTDIR" >> $CFGINITRD
- export SMBLOGDIR="oglog" && echo "SMBLOGDIR=$SMBLOGDIR" >> $CFGINITRD
- export SMBIMGDIR="ogimages" && echo "SMBIMGDIR=$SMBIMGDIR" >> $CFGINITRD
-
- echo "puntos de montaje local para los contenedores" >> $CFGINITRD
- export LOCALROOTBOOT="/opt/og2fs/tftpboot" && echo "LOCALROOTBOOT=$LOCALROOTBOOT" >> $CFGINITRD
- export LOCALCLIENTDIR="/opt/opengnsys" && echo "LOCALCLIENTDIR=$LOCALCLIENTDIR" >> $CFGINITRD
- export LOCALLOGDIR="/opt/opengnsys/log" && echo "LOCALLOGDIR=$LOCALLOGDIR" >> $CFGINITRD
- export LOCALIMGDIR="/opt/opengnsys/images" && echo "LOCALIMGDIR=$LOCALIMGDIR" >> $CFGINITRD
-
- echo "puntos de montajes para realizar la integración unionfs entre el initrd y el sistema root" >> $CFGINITRD
- #punto de montaje donde se accede al 2nd FS mediante loop
- export LOCALROOTIMG="/opt/og2fs/2ndfs" && echo "LOCALROOTIMG=$LOCALROOTIMG" >> $CFGINITRD
- #punto de montaje para unionfs
- export LOCALROOTRAM="/opt/og2fs/1stfs" && echo "LOCALROOTRAM=$LOCALROOTRAM" >> $CFGINITRD
- #punto de union entreo LOCALROOTIMG y LOCALROOTRAM
- export LOCALROOTUNION="/opt/og2fs/unionfs" && echo "LOCALROOTUNION=$LOCALROOTUNION" >> $CFGINITRD
- ##INFORMACION DE OTRAS VARIABLES OBTENDIAS EN OTRAS FUNCIONES.
- #ogGetROOTSERVER() ip del servidor pxe, valor obtenido automaticamente desde dhcpd.
- #IPV4DDR
- #IPV4BROADCAST
- #IPV4NETMASK
- #IPV4GATEWAY
- #DNS0 DNS1
- #HOSTNAME
- #ROOTSERVER #ip del servidor pxe que ha servido el kernel
- #REPOSERVER=ogrepo -> ogConectROOTSERVER() ip del servidor de images para separar serviicios.
- return 0
-}
-
-ogConfigureRamfs ()
-{
- mkdir -p $LOCALROOTBOOT
- mkdir -p $LOCALROOTIMG
- mkdir -p $LOCALROOTRAM
- mkdir -p $LOCALROOTUNION
-}
-
-ogLoadNetModule ()
-{
- #cargando netmodule
- if [ -n "$ognetmodule" ]
- then
- echo "Cargando modulo de red $netmodule"
- insmod `find /lib/modules/ -name ${netmodule}*`
- fi
-}
-
-
-ogPostConfigureFS()
-{
- # configuramos el /etc/hostname.
- echo $HOSTNAME > /etc/hostname
-
- #configuramos el /etc/hosts
- echo "127.0.0.1 localhost" > /etc/hosts
- echo "$IPV4ADDR $HOSTNAME" >> /etc/hosts
-
- #configuramos el host.conf
- echo "order hosts,bind" > /etc/host.conf
- echo "multi on" >> /etc/host.conf
-
- # configuramos el /etc/networks
- #read -e NETIP NETDEFAULT <<<$(route -n | grep eth0 | awk -F" " '{print $1}')
- NETIP=$(route -n | grep eth0 | awk -F" " '{print $1}') && NETIP=$(echo $NETIP | cut -f1 -d" ")
- echo "default 0.0.0.0" > /etc/networks
- echo "loopback 127.0.0.0" >> /etc/networks
- echo "link-local 169.254.0.0" >> /etc/networks
- echo "localnet $NETIP" >> /etc/networks
- #route
-
- #enlace si iniciamos desde ogprotocolo=local { cdrom, usb, cache } .
- # monta el raiz del dispositivo local en /opt/og2fs/tftpboot - acceso al fichero .sqfs
- # y monta el sistema root sqfs en /opt/og2fs/2ndfs
- [ "$LOCALMEDIA" == "CACHE" ] && ln -s /opt/og2fs/tftpboot /opt/opengnsys/cache
- [ "$ogprotocol" == "local" ] && ln -s /opt/og2fs/2ndfs/opt/opengnsys/* /opt/opengnsys/
-
-
-}
-
-
-
-
-ogGetROOTSERVER ()
-{
- # get nfs root from dhcp
- if [ "x${NFSROOT}" = "xauto" ]; then
- # check if server ip is part of dhcp root-path
- if [ "${ROOTPATH#*:}" = "${ROOTPATH}" ]; then
- NFSROOT=${ROOTSERVER}:${ROOTPATH}
- else
- NFSROOT=${ROOTPATH}
- fi
-
- # nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
- elif [ -n "${NFSROOT}" ]; then
- # nfs options are an optional arg
- if [ "${NFSROOT#*,}" != "${NFSROOT}" ]; then
- NFSOPTS="-o ${NFSROOT#*,}"
- fi
- NFSROOT=${NFSROOT%%,*}
- if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then
- NFSROOT=${ROOTSERVER}:${NFSROOT}
- fi
- fi
- export ROOTSERVER
- echo "ROOTSERVER=$ROOTSERVER" >> $CFGINITRD
-return 0
-}
-
-ogConectROOTSERVER ()
-{
-local OPTIONS
-#params a detectar
-if [ $ogrepo ]
-then
- # Validar si la ip es correcta
- ROOTREPO=$ogrepo
-else
- ROOTREPO=$ROOTSERVER
-fi
-
-case "$ogprotocol" in
- local)
- echo "Montar imagen del sistema root desde dispositivo local"
- for i in $(blkid /dev/s* | grep ogClient | awk -F: '{print $2}' | tr -d \"); do export $i; done
- mount -t $TYPE LABEL=$LABEL $LOCALROOTBOOT
- if [ $? != 0 ]
- then
- mount -t reiserfs LABEL=CACHE $LOCALROOTBOOT
- export LOCALMEDIA=CACHE
- fi
- ;;
- httfs)
- echo "protocolo httfs aun no soportado"
- ;;
- sshfs)
- echo "protocolo sshfs aun no soportado"
- ;;
- smb)
- echo "Preparando conexión con el Repositorio $ROOTSERVER por $ogprotocol"
- OPTIONS=" -o user=opengnsys,pass=og"
- mount.cifs //${ROOTSERVER}/${SMBCLIENTDIR} $LOCALCLIENTDIR $OPTIONS
- mount.cifs //${ROOTSERVER}/${SMBLOGDIR} $LOCALLOGDIR $OPTIONS
- mount.cifs //${ROOTSERVER}/${SMBROOTBOOT} $LOCALROOTBOOT $OPTIONS
- mount.cifs //${ROOTREPO}/${SMBIMGDIR} $LOCALIMGDIR ${OPTIONS},ro
- ;;
- nfs)
- echo "Preparando conexión con el Repositorio $ROOTSERVER por $ogprotocol"
- nfsmount -o nolock,ro $ROOTSERVER:$NFSCLIENTDIR $LOCALCLIENTDIR
- nfsmount -o nolock $ROOTSERVER:$NFSLOGDIR $LOCALLOGDIR
- nfsmount -o nolock $ROOTSERVER:$NFSROOTBOOT $LOCALROOTBOOT
- nfsmount -o nolock,ro $ROOTREPO:$NFSIMGDIR $LOCALIMGDIR
- ;;
-esac
-}
-
-ogMerge2ndFile()
-{
-if [ -f $LOCALROOTBOOT/ogclient/ogclient.sqfs ]
-then
- cat /proc/mounts > /tmp/mtab.preunion
- if [ "$og2nd" == "img" ]
- then
- #para acceder al img
- losetup /dev/loop0 $LOCALROOTBOOT/ogclient/ogclient.img -o 32256
- mount /dev/loop0 $LOCALROOTIMG
- else
- ## para acceder al squashfs
- mount $LOCALROOTBOOT/ogclient/ogclient.sqfs $LOCALROOTIMG -t squashfs -o loop
- fi
- for i in etc var lib bin sbin usr root boot; do
- unionmount $i
- done
- cat /tmp/mtab.preunion > /etc/mtab
-else
- echo "Fichero imagen del cliente no encontrado"
- return 1
-fi
-}
-
-
-unionmount()
-{
- tmpdir=/$1 #dir
- FUSE_OPT="-o default_permissions -o allow_other -o use_ino -o nonempty -o suid"
- UNION_OPT="-o cow -o noinitgroups"
- UBIN="unionfs-fuse"
- #UPATH="/unionfs"
- #LOCALROOTIMG="/opt/og2fs/2ndfs"
- #LOCALROOTRAM="/opt/og2fs/1stfs" #/unionfs/host #punto de montaje para unionfs
- #LOCALROOTUNION=/opt/og2fs/unionfs/" #/unionfs/union #punto de union entreo LOCALROOTIMG y LOCALROOTRAM
- #mkdir -p $LOCALROOTRAM #/unionfs/host
- #mkdir -p $LOCALROOTUNION #/unionfs/union
- mkdir -p $LOCALROOTRAM$tmpdir
- #mount --bind /$tmpdir $LOCALROOTRAM$tmpdir
- U1STDIR="${LOCALROOTRAM}${tmpdir}=RW"
- U2NDDIR="${LOCALROOTIMG}${tmpdir}=RO"
- UNIONDIR=$LOCALROOTUNION$tmpdir
- mkdir -p $UNIONDIR
- $UBIN $FUSE_OPT $UNION_OPT ${U1STDIR}:${U2NDDIR} $UNIONDIR
- mount --bind $UNIONDIR $tmpdir
-}
-
-
-unionmountOLD()
-{
- FUSE_OPT="-o default_permissions -o allow_other -o use_ino -o nonempty -o suid"
- UNION_OPT="-o cow -o noinitgroups"
- UPATH="/unionfs"
- UBIN="unionfs-fuse"
- mkdir -p /unionfs/host
- mkdir -p /unionfs/union
- dir=$1
- mkdir -p /unionfs/host/$dir
- #mount --bind /$dir /unionfs/host/$dir
- mkdir -p /unionfs/union/$dir
- host="/unionfs/host/${dir}=RW"
- common="/opt/og2fs/${dir}=RO"
- $UBIN $FUSE_OPT $UNION_OPT ${host}:${common} /unionfs/union/$dir
- mount --bind /unionfs/union/$dir /$dir
-}
-
-ogconfigure_lo()
-{
-# for the portmapper we need localhost
-ifconfig lo 127.0.0.1
-#/etc/init.d/portmap start
-}
-
-ogconfigure_networking()
-{
-#echo "ogconfigure_networking: Buscando interfaz a configurar DEVICE"
-if [ -n "${BOOTIF}" ]
-then
- #echo " variable BOOTIF exportada con pxelinux.0 con valor $BOOTIF"
- IP=$IPOPTS
- temp_mac=${BOOTIF#*-}
- # convert to typical mac address format by replacing "-" with ":"
- bootif_mac=""
- IFS='-'
- for x in $temp_mac ; do
- if [ -z "$bootif_mac" ]; then
- bootif_mac="$x"
- else
- bootif_mac="$x:$bootif_mac"
- fi
- done
- unset IFS
- # look for devices with matching mac address, and set DEVICE to
- # appropriate value if match is found.
- for device in /sys/class/net/* ; do
- if [ -f "$device/address" ]; then
- current_mac=$(cat "$device/address")
- if [ "$bootif_mac" = "$current_mac" ]; then
- DEVICE=${device##*/}
- break
- fi
- fi
- done
-else
- #echo "variable BOOTIF no exportada, intentamos detectar que interfaz se ha iniciado"
- IP=$ip
- #TODO Detectar que interfaz se ha iniciado
- case ${IP} in
- none|off)
- return 0
- ;;
- ""|on|any)
- # Bring up device
- DEVICE=eth0
- ;;
- dhcp|bootp|rarp|both)
- DEVICE=eth0
- ;;
- *)
- DEVICE=`echo $IP | cut -f6 -d:`
- ;;
- esac
-fi
-if [ -z "${DEVICE}" ]; then
- echo "variable DEVICE con valor $DEVICE no encontrada, llamamos de nuevo a ogconfigure_networking"
- ogconfigure_networking
-fi
-
-[ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ] && return 0
-#if [ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ]; then
-# echo "variable DEVICE con valor $DEVICE y fichero /tmp/net-$DEVICE encontrados"
-# return 0
-#else
-# echo "variable DEVICE con valor $DEVICE encontrada, procedemos a configurala y a crear el fichero /tmp/net-$DEVICE"
-#fi
-
-# Activamos la interfaz antes de configurar.
-ip address flush $DEVICE
-ip link set dev $DEVICE up
-# Si no se detecta señal portadora volver a configurar.
-sleep 1
-CARRIER=$(cat /sys/class/net/${DEVICE}/carrier)
-if [ "$CARRIER" != "1" ]
-then
- ogconfigure_networking
-fi
-
-# support ip options see linux sources
-# Documentation/filesystems/nfsroot.txt
-# Documentation/frv/booting.txt
-for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do
- # The NIC is to be configured if this file does not exist.
- # Ip-Config tries to create this file and when it succeds
- # creating the file, ipconfig is not run again.
- if [ -e /tmp/net-"${DEVICE}".conf ]; then
- break;
- fi
- case ${IP} in
- none|off)
- return 0
- ;;
- ""|on|any)
- # Bring up device
- echo "Setting $DEVICE with option:on|any and Variable IP= $IP: ipconfig -t ${ROUNDTTT} ${DEVICE} "
- ipconfig -t ${ROUNDTTT} ${DEVICE}
- ;;
- dhcp|bootp|rarp|both)
- echo "Setting $DEVICE with option:dhcp|bootp|rarp|both and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE} "
- ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE}
- ;;
- *)
- echo "Setting $DEVICE with option * and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -d $IP "
- ipconfig -t ${ROUNDTTT} -d $IP
- # grab device entry from ip option
- NEW_DEVICE=${IP#*:*:*:*:*:*}
- if [ "${NEW_DEVICE}" != "${IP}" ]; then
- NEW_DEVICE=${NEW_DEVICE%:*}
- else
- # wrong parse, possibly only a partial string
- NEW_DEVICE=
- fi
- if [ -n "${NEW_DEVICE}" ]; then
- DEVICE="${NEW_DEVICE}"
- fi
- ;;
- esac
-done
-
-# source ipconfig output
-if [ -n "${DEVICE}" ]; then
- . /tmp/net-${DEVICE}.conf
- DEVICECFG="/tmp/net-${DEVICE}"
- export DEVICECFG
- export DEVICE
- echo "DEVICE=$DEVICE" >> $CFGINITRD
- echo "DEVICECFG=$DEVICECFG" >> $CFGINITRD
- echo "exportando variable DEVICE con valor = $DEVICE y el DEVICECFG con valor $DEVICECFG"
-else
- # source any interface as not exaclty specified
- . /tmp/net-*.conf
-fi
-}
-
- #####################################################################
-# Ask yesno question.
-#
-# Usage: yesno OPTIONS QUESTION
-#
-# Options:
-# --timeout N Timeout if no input seen in N seconds.
-# --default ANS Use ANS as the default answer on timeout or
-# if an empty answer is provided.
-#
-# Exit status is the answer. 0=yes 1=no
-
-ogYesNo()
-{
- local ans
- local ok=0
- local timeout=0
- local default
- local t
-
- while [[ "$1" ]]
- do
- case "$1" in
- --default)
- shift
- default=$1
- if [[ ! "$default" ]]; then error "Missing default value"; fi
- t=$(echo $default | tr '[:upper:]' '[:lower:]')
-
- if [[ "$t" != 'y' && "$t" != 'yes' && "$t" != 'n' && "$t" != 'no' ]]; then
- error "Illegal default answer: $default"
- fi
- default=$t
- shift
- ;;
-
- --timeout)
- shift
- timeout=$1
- if [[ ! "$timeout" ]]; then error "Missing timeout value"; fi
- #if [[ ! "$timeout" =~ ^[0-9][0-9]*$ ]]; then error "Illegal timeout value: $timeout"; fi
- shift
- ;;
-
- -*)
- error "Unrecognized option: $1"
- ;;
-
- *)
- break
- ;;
- esac
- done
-
- if [[ $timeout -ne 0 && ! "$default" ]]; then
- error "Non-zero timeout requires a default answer"
- fi
-
- if [[ ! "$*" ]]; then error "Missing question"; fi
-
- while [[ $ok -eq 0 ]]
- do
- if [[ $timeout -ne 0 ]]; then
- if ! read -t $timeout -p "$*" ans; then
- ans=$default
- else
- # Turn off timeout if answer entered.
- timeout=0
- if [[ ! "$ans" ]]; then ans=$default; fi
- fi
- else
- read -p "$*" ans
- if [[ ! "$ans" ]]; then
- ans=$default
- else
- ans=$(echo $ans | tr '[:upper:]' '[:lower:]')
- fi
- fi
-
- if [[ "$ans" == 'y' || "$ans" == 'yes' || "$ans" == 'n' || "$ans" == 'no' ]]; then
- ok=1
- fi
-
- if [[ $ok -eq 0 ]]; then warning "Valid answers are: yes y no n"; fi
- done
- [[ "$ans" = "y" || "$ans" == "yes" ]]
-}
-
-
diff --git a/client/boot-tools/clientstructure/etc/profile.d/loadenviron.sh b/client/boot-tools/clientstructure/etc/profile.d/loadenviron.sh
deleted file mode 100755
index c6e8f790..00000000
--- a/client/boot-tools/clientstructure/etc/profile.d/loadenviron.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/bash
-#/**
-#@file loadenviron.sh
-#@brief Script de carga de la API de funciones de OpenGNSys.
-#@warning License: GNU GPLv3+
-#@version 0.9
-#@author Ramon Gomez, ETSII Universidad de Sevilla
-#@date 2009-10-10
-#*/
-
- GLOBAL="cat /proc/cmdline"
- for i in `${GLOBAL}`
- do
- echo $i | grep "=" > /dev/null && export $i
- done
-
-
-# FIXME Temporal
-export LANG="${LANG:-es_ES}"
-
-#/// Directorios del projecto OpenGNSys.
-export OPENGNSYS="${OPENGNSYS:-/opt/opengnsys}"
-if [ -d $OPENGNSYS ]; then
- export OGBIN=$OPENGNSYS/bin
- export OGETC=$OPENGNSYS/etc
- export OGLIB=$OPENGNSYS/lib
- export OGAPI=$OGLIB/engine/bin
- export OGSCRIPTS=$OPENGNSYS/scripts
- export OGIMG=$OPENGNSYS/images
- export OGCAC=$OPENGNSYS/cache
- export OGLOG=$OPENGNSYS/log
-
-# export PATH=$OGBIN:$OGAPI:$OGSCRIPTS:$PATH
- # export LD_LIBRARY_PATH=$OGLIB:$LD_LIBRARY_PATH
-
- #/// Cargar fichero de idioma.
- LANGFILE=$OGETC/lang.$LANG.conf
- if [ -f $LANGFILE ]; then
- source $LANGFILE
- #for i in $(grep "^[a-zA-Z].*=" $LANGFILE | cut -f1 -d=); do
- for i in $(awk -F= '{if (NF==2) print $1}' $LANGFILE); do
- export $i
- done
- fi
- #/// Cargar API de funciones.
- echo "$MSG_LOADAPI"
- for i in $OGAPI/*.lib; do
- source $i
- done
- for i in $(typeset -F | cut -f3 -d" "); do
- export -f $i
- done
- # Carga de las API testing
- if [ "$engine" = "testing" ]
- then
- for i in $OGAPI/*.testing; do
- source $i
- done
- fi
-
- source /tmp/net-eth* 2>/dev/null
-
- # Añadir dependencia de arquitectura
- ARCH=$(ogGetArch)
- if [ -n "$ARCH" ]; then
- # export PATH=$OGBIN/$ARCH:$PATH
- # export LD_LIBRARY_PATH=$OGLIB/$ARCH:$LD_LIBRARY_PATH
- export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/opt/og2fs/2ndfs/opt/drbl/sbin
- export PATH=$OGSCRIPTS:$PATH:$OGAPI:$OGBIN:$OGBIN/$ARCH
- fi
- # Fichero de registros.
- export OGLOGFILE="$OGLOG/$(ogGetIpAddress).log"
- # FIXME Pruebas para grupos de ordenadores
- #export OGGROUP=$(ogGetGroup)
- export OGGROUP=aula3
-fi
-
-#/// Declaración de códigos de error.
-export OG_ERR_FORMAT=1 # Formato de ejecución incorrecto.
-export OG_ERR_NOTFOUND=2 # Fichero o dispositivo no encontrado.
-export OG_ERR_PARTITION=3 # Error en partición de disco.
-export OG_ERR_LOCKED=4 # Partición o fichero bloqueado.
-export OG_ERR_IMAGE=5 # Error al crear o restaurar una imagen.
-export OG_ERR_NOTOS=6 # Sin sistema operativo.
-export OG_ERR_NOTEXEC=7 # Programa o función no ejecutable.
-
-
diff --git a/client/boot-tools/clientstructure/root/CompileSoftware.sh b/client/boot-tools/clientstructure/root/CompileSoftware.sh
deleted file mode 100755
index 1a9b854a..00000000
--- a/client/boot-tools/clientstructure/root/CompileSoftware.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-################################################################
-##################### SOFTWARE #####################
-################################################################
-export LANGUAGE=C
-export LC_ALL=C
-export LANG=C
-
-#dpkg-divert --local --rename --add /sbin/initctl
-#ln -s /bin/true /sbin/initctl
-
-apt-get -y update
-# software to compile code
-apt-get -y --force-yes install build-essential libattr* attr make m4 gettext libmhash-dev gdebi-core gawk
-
-source /opt/opengnsys/lib/engine/bin/ToolsGNU.c
-
-ctorrent install
-udpcast install
-#ntfs-3g install
-ms-sys install
-
-wget -O partclone_0.2.16_i386.deb http://downloads.sourceforge.net/project/partclone/stable/0.2.16/partclone_0.2.16_i386.deb?use_mirror=ovh
-gdebi -n partclone_0.2.16_i386.deb
-
- cd /tmp
- wget http://damien.guibouret.free.fr/savepart.zip
- unzip savepart.zip -d /sbin/
-
-
diff --git a/client/boot-tools/clientstructure/root/ConfFS.sh b/client/boot-tools/clientstructure/root/ConfFS.sh
deleted file mode 100755
index 3e0f4b5c..00000000
--- a/client/boot-tools/clientstructure/root/ConfFS.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-dpkg-divert --local --rename --add /sbin/initctl
-ln -s /bin/true /sbin/initctl
-#mv /etc/fstab /etc/fstab.original 2>/dev/null
-#mv /etc/mtab /etc/mtab.original 2>/dev/null
-
-#TODO: fichero etc/hosts
-#TODO: fichero etc/resolv.conf
-echo "ogClient" > /etc/hostname
-
-#export PASSROOT=og
-#dpkg-reconfigure passwd
-#echo "root:$PASSROOT" | chpasswd
-
-
-#for i in pts/0 pts/1 pts/2 pts/3 do
-#
-#
-#done
-#TODO: introducir mas consoluas para el acceso como root.
-echo "pts/0" >> /etc/securetty
-echo "pts/1" >> /etc/securetty
-echo "pts/2" >> /etc/securetty
-echo "pts/3" >> /etc/securetty \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/root/InstallSoftware.sh b/client/boot-tools/clientstructure/root/InstallSoftware.sh
deleted file mode 100755
index da8d8d06..00000000
--- a/client/boot-tools/clientstructure/root/InstallSoftware.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-################################################################
-##################### SOFTWARE #####################
-################################################################
-export LANGUAGE=C
-export LC_ALL=C
-export LANG=C
-
-
-dpkg-divert --local --rename --add /sbin/initctl
-ln -s /bin/true /sbin/initctl
-
-apt-get clean
-apt-get -y update
-
-
-# software system
-apt-get -y --force-yes install linux-image-${OSRELEASE} linux-headers-${OSRELEASE} linux-image-$RELEASE wget dialog man-db htop fbset gdebi-core busybox-static
-
-apt-get -y --force-yes install console-data locales
-
-# sofware networking
-apt-get -y --force-yes install netpipes nfs-common sshfs smbfs smbclient davfs2 unionfs-fuse open-iscsi nmap tcpdump arping dnsutils
-
-apt-get clean
-# software services
-apt-get -y --force-yes install openssh-server bittornado trickle iptraf screen schroot grub
-
-# software disk and filesystem
-apt-get -y --force-yes install drbl-ntfsprogs ntfsprogs parted ntfs-3g dosfstools
-apt-get -y --force-yes install dmraid dmsetup lvm2 e2fsprogs jfsutils reiserfsprogs xfsprogs unionfs-fuse mhddfs squashfs-tools
-apt-get -y --force-yes install btrfs-tools hfsplus hfsprogs hfsutils nilfs-tools reiser4progs ufsutils
-
-# software cloning
-apt-get -y --force-yes install drbl-partimage fsarchiver pv kexec-tools
-apt-get -y --force-yes install mbuffer
-
-
-apt-get clean
-## software postconf
-apt-get -y --force-yes install drbl-chntpw chntpw ethtool lshw gawk
-
-# software compressor
-apt-get -y --force-yes install lzma zip unzip gzip lzop drbl-lzop pigz pbzip2 lbzip2 rzip p7zip-full unzip
-
-apt-get -y --force-yes remove busybox
-apt-get -y --force-yes install busybox-static bash-static
-apt-get clean
-#apt-get -y --force-yes xorg-dev xorg lxde roxterm
-#
-####################################################################
-###################### Reconfigurando paquetes ######################
-###################################################################
-
-
-#dpkg-reconfigure console-data
-#dpkg-reconfigure console-setup
-#dpkg-reconfigure locales
-apt-get clean
-##TODO################# Borrar algunos binarios del mkinitramfs
-
-
diff --git a/client/boot-tools/clientstructure/root/qemu.sh b/client/boot-tools/clientstructure/root/qemu.sh
deleted file mode 100755
index c5a93cd9..00000000
--- a/client/boot-tools/clientstructure/root/qemu.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#/bin/bash
-
-mount -o rw,remount /
-mount proc /proc -t proc
-export PATH=$PATH dpkg -i *.deb
-modprobe 8139too
-modprobe 8139cp
-dhclient
-/etc/init.d/ssh restart \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/etc/apt/sources.list.debian b/client/boot-tools/includes/etc/apt/sources.list.debian
index 495e48d4..495e48d4 100644
--- a/client/boot-tools/clientstructure/etc/apt/sources.list.debian
+++ b/client/boot-tools/includes/etc/apt/sources.list.debian
diff --git a/client/boot-tools/clientstructure/etc/apt/sources.list.ubuntu b/client/boot-tools/includes/etc/apt/sources.list.ubuntu
index 29348ccc..29348ccc 100644
--- a/client/boot-tools/clientstructure/etc/apt/sources.list.ubuntu
+++ b/client/boot-tools/includes/etc/apt/sources.list.ubuntu
diff --git a/client/boot-tools/clientstructure/etc/environment b/client/boot-tools/includes/etc/environment
index bb529d99..bb529d99 100644
--- a/client/boot-tools/clientstructure/etc/environment
+++ b/client/boot-tools/includes/etc/environment
diff --git a/client/boot-tools/clientstructure/etc/fstab b/client/boot-tools/includes/etc/fstab
index d7473df4..d7473df4 100644
--- a/client/boot-tools/clientstructure/etc/fstab
+++ b/client/boot-tools/includes/etc/fstab
diff --git a/client/boot-tools/clientstructure/etc/initramfs-tools/hooks/oghooks b/client/boot-tools/includes/etc/initramfs-tools/hooks/oghooks
index 67f807ab..67f807ab 100755
--- a/client/boot-tools/clientstructure/etc/initramfs-tools/hooks/oghooks
+++ b/client/boot-tools/includes/etc/initramfs-tools/hooks/oghooks
diff --git a/client/boot-tools/clientstructure/etc/initramfs-tools/modules b/client/boot-tools/includes/etc/initramfs-tools/modules
index 8bac1d4b..8bac1d4b 100644
--- a/client/boot-tools/clientstructure/etc/initramfs-tools/modules
+++ b/client/boot-tools/includes/etc/initramfs-tools/modules
diff --git a/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions
new file mode 100644
index 00000000..773e4137
--- /dev/null
+++ b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions
@@ -0,0 +1,669 @@
+#@file ogfunctions.lib
+#@brief Librería o clase para la gestion del sistema operativo de los clientes OpenGnsys
+#@class client
+#@brief Librería o clase para la gestion del sistema operativo de los clientes OpenGnsys
+#@version 0.91
+#@warning License: GNU GPLv3+
+
+#/**
+# ogExportKernelParameters
+#@brief Exporta los parametros pasados al kernel
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.7 -
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2010/05/24
+#*/ ##
+ogExportKernelParameters ()
+{
+ GLOBAL="cat /proc/cmdline"
+ for i in `${GLOBAL}`
+ do
+ echo $i | grep "=" > /dev/null && export $i
+ done
+ return 0
+}
+
+#/**
+# ogExportVarEnvironment
+#@brief Exporta las variables usadas en el proceso de inicio OpenGnsys y las almacena en /tmp
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2011/05/24
+#*/ ##
+ogExportVarEnvironment ()
+{
+ export CFGINITRD="/tmp/initrd.cfg"
+ OGPROTOCOL="${ogprotocol:-smb}"
+ case "$OGPROTOCOL" in
+ nfs|NFS)
+ export SRCOGLIVE="/var/lib/tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
+ export SRCOGSHARE="/opt/opengnsys/client" && echo "SRCOGSHARE=$SRCOGSHARE" >> $CFGINITRD
+ export SRCOGLOG="/opt/opengnsys/log/clients" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
+ export SRCOGIMAGES="/opt/opengnsys/images" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
+ ;;
+ smb|SMB|cifs|CIFS|samba|SAMBA)
+ export OPTIONS=" -o user=opengnsys,pass=og"
+ export SRCOGLIVE="tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
+ export SRCOGSHARE="ogclient" && echo "SRCOGSHARE=$SRCOGSHARE" >> $CFGINITRD
+ export SRCOGLOG="oglog" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
+ export SRCOGIMAGES="ogimages" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
+ ;;
+ local|LOCAL)
+ export SRCOGLIVE="local"
+ ;;
+ esac
+ #punto de acceso al boot-tools live
+ export DSTOGLIVE="/opt/oglive/tftpboot"
+ #punto de montaje para unionfs
+ export OGLIVERAMFS="/opt/oglive/ramfs" && echo "OGLIVERAMFS=$OGLIVERAMFS" >> $CFGINITRD
+ #punto de montaje donde se accede al 2nd FS mediante loop
+ export OGLIVEROOTFS="/opt/oglive/rootfs" && echo "OGLIVEROOTFS=$OGLIVEROOTFS" >> $CFGINITRD
+ #punto de union entre LOCALROOTIMG y LOCALROOTRAM
+ export OGLIVEUNIONFS="/opt/oglive/unionfs" && echo "OGLIVEUNIONFS=$OGLIVEUNIONFS" >> $CFGINITRD
+ #etiquta para los dispositivos offline
+ export OGLIVELABEL="ogClient"
+
+ #echo "puntos de montajes para los demas accesos"
+ #echo "acceso al client, engine, scritps, interfaz"
+ export DSTOGSHARE="/opt/opengnsys" && echo "DSTOGSHARE=$DSTOGSHARE" >> $CFGINITRD
+ export DSTOGLOG="/opt/opengnsys/log" && echo "DSTOGLOG=$DSTOGLOG" >> $CFGINITRD
+ export DSTOGIMAGES="/opt/opengnsys/images" && echo "DSTOGIMAGES=$DSTOGIMAGES" >> $CFGINITRD
+
+ ##INFORMACION DE OTRAS VARIABLES OBTENDIAS EN OTRAS FUNCIONES ogConfigureNetwork.
+ #DEVICE
+ #IPV4DDR
+ #IPV4BROADCAST
+ #IPV4NETMASK
+ #IPV4GATEWAY
+ #HOSTNAME
+ #INFORMACION de otras variasbles obteneidas desde ogGetROOTSERVER
+ #ROOTSERVER si ip=dhcp -> ROOTSERVER=NEXT-SERVER; si ip=host:rootserver:gw:mask:hostname:interfaz -> ROOTSERVER=rootserver
+ #BOOTIF -> si el gestor remoto es pxelinux.0 y se añade una linea más tipo "IPAPPEND 2" esta variable tendrá la mac de la interfaz.
+ #$OGSERVERLIVE
+ #$OGSERVERSHARE
+ #$OGSERVERLOG
+ #$OGSERVERIMAGES
+ return 0
+}
+
+
+#/**
+# ogConfigureRamfs
+#@brief Configura el initrd para adaptarlo al sistema raiz.
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2010/05/24
+#*/ ##
+ogConfigureRamfs ()
+{
+ mkdir -p $DSTOGLIVE
+ mkdir -p $OGLIVERAMFS
+ mkdir -p $OGLIVEROOTFS
+ mkdir -p $OGLIVEUNIONFS
+}
+
+
+#/**
+# ogLoadNetModule
+#@brief Carga en un demerminado modulo de red, requiere compilación previo del modulo
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2010/05/24
+#*/ ##
+ogLoadNetModule ()
+{
+ if [ -n "$ognetmodule" ]
+ then
+ echo "Cargando modulo de red $netmodule"
+ insmod `find /lib/modules/ -name ${netmodule}*`
+ fi
+}
+
+
+#/**
+# ogPostConfigureFS
+#@brief Configura el sistema raiz, para independizarlo entre los clientes.
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2010/05/24
+#*/ ##
+ogPostConfigureFS()
+{
+ # configuramos el /etc/hostname.
+ echo $HOSTNAME > /etc/hostname
+
+ #configuramos el /etc/hosts
+ echo "127.0.0.1 localhost" > /etc/hosts
+ echo "$IPV4ADDR $HOSTNAME" >> /etc/hosts
+
+ #configuramos el host.conf
+ echo "order hosts,bind" > /etc/host.conf
+ echo "multi on" >> /etc/host.conf
+
+ #configuramos el dns
+ echo "nameserver $ogdns" > /etc/resolv.conf
+
+
+ # configuramos el /etc/networks
+ #read -e NETIP NETDEFAULT <<<$(route -n | grep eth0 | awk -F" " '{print $1}')
+ NETIP=$(route -n | grep eth0 | awk -F" " '{print $1}') && NETIP=$(echo $NETIP | cut -f1 -d" ")
+ echo "default 0.0.0.0" > /etc/networks
+ echo "loopback 127.0.0.0" >> /etc/networks
+ echo "link-local 169.254.0.0" >> /etc/networks
+ echo "localnet $NETIP" >> /etc/networks
+ #route
+
+ #echo "ogLive1.0.2" > /etc/debian_chroot
+
+ #enlace si iniciamos desde ogprotocolo=local { cdrom, usb, cache } .
+ # monta el raiz del dispositivo local en /opt/og2fs/tftpboot - acceso al fichero .sqfs
+ # y monta el sistema root sqfs en /opt/og2fs/2ndfs
+ [ "$LOCALMEDIA" == "CACHE" ] && ln -s $DSTOGLIVE /opt/opengnsys/cache
+ [ "$ogprotocol" == "local" ] && ln -s ${OGLIVEROOTFS}/opt/opengnsys/* /opt/opengnsys/
+
+ #Montamos un directorio temporal para el apt-get
+ mount tmpfs /var/cache/apt/archives -t tmpfs -o size=15M
+ mkdir -p /var/cache/apt/archives/partial
+
+}
+
+
+#/**
+# ogGetROOTSERVER
+#@brief Determina los puntos de accesos a los distintos recursos.
+#Requiere ogConfigureNetworking.
+#Exporta ROOTSERVER
+# si la red ha sido configurada con dhcp el valor de ROOTSERVER será el valor de next-server del dhcp
+# si la red ha sido configurada con el parametro de kernel ip, será el segundo valor.
+## ip=iphost:ipnext-server:ipgateway:netmask:hostname:iface:none
+## ip=172.17.36.21:62.36.225.150:172.17.36.254:255.255.255.0:prueba1:eth0:none
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2010/05/24
+#*/ ##
+ogGetROOTSERVER ()
+{
+ # get nfs root from dhcp
+ if [ "x${NFSROOT}" = "xauto" ]; then
+ # check if server ip is part of dhcp root-path
+ if [ "${ROOTPATH#*:}" = "${ROOTPATH}" ]; then
+ NFSROOT=${ROOTSERVER}:${ROOTPATH}
+ else
+ NFSROOT=${ROOTPATH}
+ fi
+
+ # nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
+ elif [ -n "${NFSROOT}" ]; then
+ # nfs options are an optional arg
+ if [ "${NFSROOT#*,}" != "${NFSROOT}" ]; then
+ NFSOPTS="-o ${NFSROOT#*,}"
+ fi
+ NFSROOT=${NFSROOT%%,*}
+ if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then
+ NFSROOT=${ROOTSERVER}:${NFSROOT}
+ fi
+ fi
+ export ROOTSERVER
+ echo "ROOTSERVER=$ROOTSERVER" >> $CFGINITRD
+
+ #si oglive no oglive=R
+ export OGSERVERIMAGES="${ogrepo:-$ROOTSERVER}" && echo "OGSERVERIMAGES=$OGSERVERIMAGES" >> $CFGINITRD
+ export OGSERVERSHARE="${ogshare:-$ROOTSERVER}" && echo "OGSERVERSHARE=$OGSERVERSHARE" >> $CFGINITRD
+ export OGSERVERLOG="${oglog:-$ROOTSERVER}" && echo "OGSERVERLOG=$OGSERVERLOG" >> $CFGINITRD
+ export OGSERVERLIVE="${oglive:-$OGSERVERIMAGES}" && echo "OGSERVERLIVE=$OGSERVERLIVE" >> $CFGINITRD
+
+ return 0
+}
+
+
+
+# ogUpdateInitrd
+#@brief Actualiza el intird de la cache desde el servidor. Si el arranque ha disdo desde cache, compueba desde el servidor nueva version del initird.
+#@param1
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2011/05/24
+#*/ ##
+
+ogUpdateInitrd ()
+{
+ cd /tmp
+ mkdir /tmp/cache
+ mount -t reiserfs LABEL=CACHE /tmp/cache || return
+ mkdir /tmp/cache/boot
+
+
+ # comparamos los del server
+ busybox tftp -g -r ogvmlinuz.sum $ROOTSERVER
+ busybox tftp -g -r oginitrd.img.sum $ROOTSERVER
+ SERVERVMLINUZ=`cat ogvmlinuz.sum`
+ SERVERINITRD=`cat oginitrd.img.sum`
+
+
+ #comparamos los de la cache
+ CACHEVMLINUZ=`cat /tmp/cache/boot/ogvmlinuz.sum`
+ CACHEINITRD=`cat /tmp/cache/boot/oginitrd.img.sum`
+
+ echo "MD5 on SERVER: $SERVERVMLINUZ $SERVERINITRD"
+ echo "MD5 on CACHE: $CACHEVMLINUZ $CACHEINITRD"
+
+ cd /tmp/cache/boot
+
+ if [ "$CACHEVMLINUZ" != "$SERVERVMLINUZ" ]
+ then
+ echo "ogvmlinuz updating"
+ busybox tftp -g -r ogvmlinuz $ROOTSERVER
+ busybox tftp -g -r ogvmlinuz.sum $ROOTSERVER
+ DOREBOOT=true
+ fi
+ if [ "$CACHEINITRD" != "$SERVERINITRD" ]
+ then
+ echo "oginitrd updating"
+ busybox tftp -g -r oginitrd.img $ROOTSERVER
+ busybox tftp -g -r oginitrd.img.sum $ROOTSERVER
+ DOREBOOT=true
+ fi
+
+ cd /; umount /tmp/cache
+
+ [ "$DOREBOOT" == "true" ] && busybox reboot -f
+
+}
+
+#/**
+# ogConnect
+#@brief Conecta con los recursos necesarios para opengnsys
+#@param1 ip del servidor TODO:dns
+#@param2 protocolo
+#@param3 punto de acceso remoto
+#@param4 punto de montaje local
+#@param5 acceso de lectura tipo ",ro"
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2011/05/24
+#*/ ##
+
+ogConnect ()
+{
+ SERVER=$1
+ PROTOCOL=$2
+ SRC=$3
+ DST=$4
+ READONLY=$5
+
+ case "$PROTOCOL" in
+ nfs)
+ nfsmount -o nolock${READONLY} ${SERVER}:${SRC} ${DST}
+ ;;
+ smb)
+ mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS}${READONLY}
+ ;;
+ esac
+}
+
+
+#/**
+# ogConnectOgLive
+#@brief Conecta con el recurso para usar el sistema raiz externo, remoto o local
+#@param1
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2011/05/24
+ogConnectOgLive ()
+{
+# Si ogprotocol=local, la funcion ogExportVar => SRCOGLIVE=local
+ if [ "$SRCOGLIVE" == "local" ]
+ then
+ echo "Montar imagen del sistema root desde dispositivo local"
+ for i in $(blkid /dev/s* | grep $OGLIVELABEL | awk -F: '{print $2}' | tr -d \"); do export $i; done
+ mount -t $TYPE LABEL=$LABEL $DSTOGLIVE
+ if [ $? != 0 ]
+ then
+ mount -t reiserfs LABEL=CACHE $DSTOGLIVE
+ export LOCALMEDIA=CACHE
+ fi
+ else
+# Si ogprotocol es remoto. TODO en smb rw y en nfs ro??
+ ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
+ fi
+# Si el montaje ha sido correcto, tanto en local como en remoto. Procedemos con la union
+ ogMergeLive
+}
+
+
+#/**
+# ogMergeLive
+#@brief Metafuncion para fusionar el initrd con el sistema raiz.
+#@param1
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2011/05/24
+ogMergeLive()
+{
+#Si existe en el punto de acceso del del oglive el fichero ogclient.sqfs
+if [ -f $DSTOGLIVE/ogclient/ogclient.sqfs ]
+then
+ cat /proc/mounts > /tmp/mtab.preunion
+ if [ "$og2nd" == "img" ]
+ then
+ #Montamos el ROOTFS tipo img, para desarrolladores
+ #TODO: comprobar que se tiene acceso de escritura
+ losetup /dev/loop0 $DSTOGLIVE/ogclient/ogclient.img -o 32256
+ mount /dev/loop0 $OGLIVEROOTFS
+ else
+ ## Montamos el ROOTFS tipo squashfs
+ mount $DSTOGLIVE/ogclient/ogclient.sqfs $OGLIVEROOTFS -t squashfs -o loop
+ fi
+# Realizamos la union entre el ogliveram(initrd) y el ogliverootfs(ogclient.sqfs)
+ for i in etc var lib bin sbin usr root boot; do
+ ogUnionLiveDir $i
+ done
+ cat /tmp/mtab.preunion > /etc/mtab
+else
+ echo "Fichero imagen del cliente no encontrado"
+ return 1
+fi
+}
+
+
+
+#/**
+# ogUnionLiveDir
+#@brief fusiona dos directorios con unionfs
+#@param1
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2011/05/24
+ogUnionLiveDir()
+{
+ TMPDIR=/$1 #dir
+ FUSE_OPT="-o default_permissions -o allow_other -o use_ino -o nonempty -o suid"
+ UNION_OPT="-o cow -o noinitgroups"
+ UBIN="unionfs-fuse"
+
+ mkdir -p $OGLIVERAMFS$TMPDIR
+ U1STDIR="${OGLIVERAMFS}${TMPDIR}=RW"
+ U2NDDIR="${OGLIVEROOTFS}${TMPDIR}=RO"
+ UNIONDIR=${OGLIVEUNIONFS}${TMPDIR}
+ mkdir -p $UNIONDIR
+ $UBIN $FUSE_OPT $UNION_OPT ${U1STDIR}:${U2NDDIR} $UNIONDIR
+ mount --bind $UNIONDIR $TMPDIR
+}
+
+
+
+#/**
+# ogConfigureLoopback
+#@brief Configura la interfaz loopback para cliente torrent
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9 Usando funciones generales de ubuntu
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2010/05/24
+#@version 1.0.1 Deteccion automatica de interfaz con enlace activo.
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2011/05/24
+#*/ ##
+ogConfigureLoopback()
+{
+ # for the portmapper we need localhost
+ ifconfig lo 127.0.0.1
+ #/etc/init.d/portmap start
+}
+
+#/**
+# ogConfigureNetworking
+#@brief Configura la interfaz de red usada en el pxe
+#@param
+#@return
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author Antonio J. Doblas. Universidad de Malaga.
+#@date 2010/05/24
+#*/ ##
+ogConfigureNetworking()
+{
+#echo "ogConfigureNetworking: Buscando interfaz a configurar DEVICE"
+if [ -n "${BOOTIF}" ]
+then
+ #echo " variable BOOTIF exportada con pxelinux.0 con valor $BOOTIF"
+ IP=$IPOPTS
+ temp_mac=${BOOTIF#*-}
+ # convert to typical mac address format by replacing "-" with ":"
+ bootif_mac=""
+ IFS='-'
+ for x in $temp_mac ; do
+ if [ -z "$bootif_mac" ]; then
+ bootif_mac="$x"
+ else
+ bootif_mac="$x:$bootif_mac"
+ fi
+ done
+ unset IFS
+ # look for devices with matching mac address, and set DEVICE to
+ # appropriate value if match is found.
+ for device in /sys/class/net/* ; do
+ if [ -f "$device/address" ]; then
+ current_mac=$(cat "$device/address")
+ if [ "$bootif_mac" = "$current_mac" ]; then
+ DEVICE=${device##*/}
+ break
+ fi
+ fi
+ done
+else
+ #echo "variable BOOTIF no exportada, intentamos detectar que interfaz se ha iniciado"
+ IP=$ip
+ #TODO Detectar que interfaz se ha iniciado
+ case ${IP} in
+ none|off)
+ return 0
+ ;;
+ ""|on|any)
+ # Bring up device
+ DEVICE=eth0
+ ;;
+ dhcp|bootp|rarp|both)
+ DEVICE=eth0
+ ;;
+ *)
+ DEVICE=`echo $IP | cut -f6 -d:`
+ ;;
+ esac
+fi
+if [ -z "${DEVICE}" ]; then
+ echo "variable DEVICE con valor $DEVICE no encontrada, llamamos de nuevo a ogconfigure_networking"
+ ogConfigureNetworking
+fi
+
+[ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ] && return 0
+#if [ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ]; then
+# echo "variable DEVICE con valor $DEVICE y fichero /tmp/net-$DEVICE encontrados"
+# return 0
+#else
+# echo "variable DEVICE con valor $DEVICE encontrada, procedemos a configurala y a crear el fichero /tmp/net-$DEVICE"
+#fi
+
+# Activamos la interfaz antes de configurar.
+ip address flush $DEVICE
+ip link set dev $DEVICE up
+# Si no se detecta señal portadora volver a configurar.
+sleep 1
+CARRIER=$(cat /sys/class/net/${DEVICE}/carrier)
+if [ "$CARRIER" != "1" ]
+then
+ ogConfigureNetworking
+fi
+
+# support ip options see linux sources
+# Documentation/filesystems/nfsroot.txt
+# Documentation/frv/booting.txt
+for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do
+ # The NIC is to be configured if this file does not exist.
+ # Ip-Config tries to create this file and when it succeds
+ # creating the file, ipconfig is not run again.
+ if [ -e /tmp/net-"${DEVICE}".conf ]; then
+ break;
+ fi
+ case ${IP} in
+ none|off)
+ return 0
+ ;;
+ ""|on|any)
+ # Bring up device
+ echo "Setting $DEVICE with option:on|any and Variable IP= $IP: ipconfig -t ${ROUNDTTT} ${DEVICE} "
+ ipconfig -t ${ROUNDTTT} ${DEVICE}
+ ;;
+ dhcp|bootp|rarp|both)
+ echo "Setting $DEVICE with option:dhcp|bootp|rarp|both and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE} "
+ ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE}
+ ;;
+ *)
+ echo "Setting $DEVICE with option * and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -d $IP "
+ ipconfig -t ${ROUNDTTT} -d $IP
+ # grab device entry from ip option
+ NEW_DEVICE=${IP#*:*:*:*:*:*}
+ if [ "${NEW_DEVICE}" != "${IP}" ]; then
+ NEW_DEVICE=${NEW_DEVICE%:*}
+ else
+ # wrong parse, possibly only a partial string
+ NEW_DEVICE=
+ fi
+ if [ -n "${NEW_DEVICE}" ]; then
+ DEVICE="${NEW_DEVICE}"
+ fi
+ ;;
+ esac
+done
+
+# source ipconfig output
+if [ -n "${DEVICE}" ]; then
+ . /tmp/net-${DEVICE}.conf
+ DEVICECFG="/tmp/net-${DEVICE}.conf"
+ export DEVICECFG
+ export DEVICE
+ echo "DEVICE=$DEVICE" >> $CFGINITRD
+ echo "DEVICECFG=$DEVICECFG" >> $CFGINITRD
+ echo "exportando variable DEVICE con valor = $DEVICE y el DEVICECFG con valor $DEVICECFG"
+else
+ # source any interface as not exaclty specified
+ . /tmp/net-*.conf
+fi
+}
+
+
+#/**
+# ogYesNo
+#@brief Gestion de peticiones de usuario en modo ogdebug=true
+#@param1 OPTIONS --timeout N --default ANSWER
+#@param1 Questions
+#@return 1=yes 0=no
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.9
+#@author:
+#@date 2010/05/24
+#*/ ##
+ogYesNo()
+{
+ local ans
+ local ok=0
+ local timeout=0
+ local default
+ local t
+
+ while [[ "$1" ]]
+ do
+ case "$1" in
+ --default)
+ shift
+ default=$1
+ if [[ ! "$default" ]]; then error "Missing default value"; fi
+ t=$(echo $default | tr '[:upper:]' '[:lower:]')
+
+ if [[ "$t" != 'y' && "$t" != 'yes' && "$t" != 'n' && "$t" != 'no' ]]; then
+ error "Illegal default answer: $default"
+ fi
+ default=$t
+ shift
+ ;;
+
+ --timeout)
+ shift
+ timeout=$1
+ if [[ ! "$timeout" ]]; then error "Missing timeout value"; fi
+ #if [[ ! "$timeout" =~ ^[0-9][0-9]*$ ]]; then error "Illegal timeout value: $timeout"; fi
+ shift
+ ;;
+
+ -*)
+ error "Unrecognized option: $1"
+ ;;
+
+ *)
+ break
+ ;;
+ esac
+ done
+
+ if [[ $timeout -ne 0 && ! "$default" ]]; then
+ error "Non-zero timeout requires a default answer"
+ fi
+
+ if [[ ! "$*" ]]; then error "Missing question"; fi
+
+ while [[ $ok -eq 0 ]]
+ do
+ if [[ $timeout -ne 0 ]]; then
+ if ! read -t $timeout -p "$*" ans; then
+ ans=$default
+ else
+ # Turn off timeout if answer entered.
+ timeout=0
+ if [[ ! "$ans" ]]; then ans=$default; fi
+ fi
+ else
+ read -p "$*" ans
+ if [[ ! "$ans" ]]; then
+ ans=$default
+ else
+ ans=$(echo $ans | tr '[:upper:]' '[:lower:]')
+ fi
+ fi
+
+ if [[ "$ans" == 'y' || "$ans" == 'yes' || "$ans" == 'n' || "$ans" == 'no' ]]; then
+ ok=1
+ fi
+
+ if [[ $ok -eq 0 ]]; then warning "Valid answers are: yes y no n"; fi
+ done
+ [[ "$ans" = "y" || "$ans" == "yes" ]]
+}
+
diff --git a/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/oginit b/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit
index d91afaee..cc179f9f 100755
--- a/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/oginit
+++ b/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit
@@ -3,25 +3,30 @@
#@file oginit
#@brief Guion modificador inicio initrd para OpenGnSys
#@warning
-#@version 0.1 - basado en ROOTfs
+#@version 0.1 - basado en ROOTfs - rootfs over nfs -
#@author Antonio J. Doblas Viso. Universidad de Málaga
#@date 2009/00/00
-#@version 0.2 - basado en el instalador de ubunto
-#@author Alejandro Castillo
-#@author Ramón Gómez
-#@author Irina
-#@author Antonio Doblas
+#@version 0.2 - basado en RAMFS - instalador de ubunto -
+#@author Alejandro Castillo, Ramón Gómez, Irina, Antonio Doblas
#@date 2010/00/00
-#@version 0.7 - Generación limpia con mkinitrd, busybox
+#@version 0.7 - Hibrido en RAMFS + ROOTFS -mkinitrd, busybox, deboostrap-
#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
#@date 2010/05/24
-#@version 0.8 - Integración con FileSystem externo
+#@version 0.8 - Soporte smb, asignación ip estática
#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
#@date 2010/06/24
-#@version 0.8.1 - UnionFS + squasfs
+#@version 0.8.1 - Integración RAMFS+ROOTFS con UnionFS y squasfs
#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
#@date 2010/06/29
-
+#@version 1.0. - Adaptacion variables. Corrección enlace red
+#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
+#@date 2011/06/16
+#@version 1.0.1 - Logica para inicio multiples dispositivos, usb, red, cd
+#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
+#@date 2011/07/4
+#@version 1.0.2 - RAMFS: instalación y actualización automatica en cache
+#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
+#@date 2011/08/4
#*/
@@ -45,8 +50,6 @@ mountroot ()
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before get OG variables: y/N "
[ $? == 0 ] && sh || echo " "
-
-
set -a
log_success_msg "Checking kernel parameters"
ogExportKernelParameters
@@ -67,30 +70,40 @@ mountroot ()
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure networking: y/N "
[ $? == 0 ] && sh || echo " "
- ogconfigure_networking
+ ogConfigureNetworking
log_success_msg "config networking"
- ogconfigure_lo
+ ogConfigureLoopback
log_success_msg "config loopback"
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before detect rootserver: y/N "
[ $? == 0 ] && sh || echo " "
- ogGetROOTSERVER && log_success_msg "Get Info from pxe server"
-
- [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before conect with og Services : y/N "
- [ $? == 0 ] && sh || echo " "
- ogConectROOTSERVER && log_success_msg "Conecting with og services" || sh
- # ogConectROOTMEDIA
+ ogGetROOTSERVER && log_success_msg "Get Info from pxe server and ckeck distribuited OG services "
- [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before merge the Second File System with initrd (First File System) : y/N "
- [ $? == 0 ] && sh || echo " "
- ogMerge2ndFile && log_success_msg "Merge onto Second File System"
+ if [ "$ogdebug" == "true" -a "$ogupdateinitrd" == "true" ]; then
+ ogYesNo --timeout 5 --default no "Stop before check updating initrd: y/N "
+ [ $? == 0 ] && sh || echo " "
+ fi
+ [ "$ogupdateinitrd" == "true" ] && ogUpdateInitrd
- #[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/og-bottom"
- #run_scripts /scripts/og-bottom
- #[ "$quiet" != "y" ] && log_end_msg
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect and merging the rootfs -ogLive- with $OGSERVERLIVE: y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogConnectOgLive && log_success_msg "Merge the initrd with the remote rootfs -ogLive- on $OGSERVERLIVE" || sh
+ # si es necesario realiza ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect with client dir SHARE -engine,scripts,interface, -share- on $OGSERVERSHARE : y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogConnect $OGSERVERSHARE $OGPROTOCOL $SRCOGSHARE $DSTOGSHARE
+
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect with client dir LOG STORAGE on $OGSERVERLOG : y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogConnect $OGSERVERLOG $OGPROTOCOL $SRCOGLOG $DSTOGLOG
+
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect with REPOSITORY STORAGE on $OGSERVERIMAGES : y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogConnect $OGSERVERIMAGES $OGPROTOCOL $SRCOGIMAGES $DSTOGIMAGES
+
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before doing the postconfiguration: y/N "
[ $? == 0 ] && sh || echo " "
diff --git a/client/boot-tools/clientstructure/etc/inittab b/client/boot-tools/includes/etc/inittab
index 6d3277fc..6d3277fc 100644
--- a/client/boot-tools/clientstructure/etc/inittab
+++ b/client/boot-tools/includes/etc/inittab
diff --git a/client/boot-tools/clientstructure/etc/modprobe.d/blacklist-framebuffer.conf b/client/boot-tools/includes/etc/modprobe.d/blacklist-framebuffer.conf
index 8b047e4e..8b047e4e 100644
--- a/client/boot-tools/clientstructure/etc/modprobe.d/blacklist-framebuffer.conf
+++ b/client/boot-tools/includes/etc/modprobe.d/blacklist-framebuffer.conf
diff --git a/client/boot-tools/clientstructure/etc/mtab b/client/boot-tools/includes/etc/mtab
index e69de29b..e69de29b 100644
--- a/client/boot-tools/clientstructure/etc/mtab
+++ b/client/boot-tools/includes/etc/mtab
diff --git a/client/boot-tools/clientstructure/etc/network/interfaces b/client/boot-tools/includes/etc/network/interfaces
index dbe43582..dbe43582 100644
--- a/client/boot-tools/clientstructure/etc/network/interfaces
+++ b/client/boot-tools/includes/etc/network/interfaces
diff --git a/client/boot-tools/includes/etc/profile.d/loadenviron.sh b/client/boot-tools/includes/etc/profile.d/loadenviron.sh
new file mode 100755
index 00000000..e2ad0144
--- /dev/null
+++ b/client/boot-tools/includes/etc/profile.d/loadenviron.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+### NOTA este archivo se debe de copiar desde el fichero etc/init/default
+
diff --git a/client/boot-tools/includes/etc/securetty.template b/client/boot-tools/includes/etc/securetty.template
new file mode 100644
index 00000000..491d8f52
--- /dev/null
+++ b/client/boot-tools/includes/etc/securetty.template
@@ -0,0 +1,142 @@
+# /etc/securetty: list of terminals on which root is allowed to login.
+# See securetty(5) and login(1).
+console
+
+
+pts/0
+pts/1
+pts/2
+pts/3
+
+
+# Standard serial ports
+ttyS0
+ttyS1
+ttyS2
+ttyS3
+ttyS4
+ttyS5
+
+# USB dongles
+ttyUSB0
+ttyUSB1
+ttyUSB2
+
+# PowerMac
+ttyPZ0
+ttyPZ1
+ttyPZ2
+ttyPZ3
+
+# Embedded MPC platforms
+ttyPSC0
+ttyPSC1
+ttyPSC2
+ttyPSC3
+ttyPSC4
+ttyPSC5
+
+# PA-RISC mux ports
+ttyB0
+ttyB1
+
+# Standard hypervisor virtual console
+hvc0
+
+# Oldstyle Xen console
+xvc0
+
+# Standard consoles
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+tty7
+tty8
+tty9
+tty10
+tty11
+tty12
+tty13
+tty14
+tty15
+tty16
+tty17
+tty18
+tty19
+tty20
+tty21
+tty22
+tty23
+tty24
+tty25
+tty26
+tty27
+tty28
+tty29
+tty30
+tty31
+tty32
+tty33
+tty34
+tty35
+tty36
+tty37
+tty38
+tty39
+tty40
+tty41
+tty42
+tty43
+tty44
+tty45
+tty46
+tty47
+tty48
+tty49
+tty50
+tty51
+tty52
+tty53
+tty54
+tty55
+tty56
+tty57
+tty58
+tty59
+tty60
+tty61
+tty62
+tty63
+
+# Local X displays (allows empty passwords with pam_unix's nullok_secure)
+:0
+:0.0
+:0.1
+:1
+:1.0
+:1.1
+:2
+:2.0
+:2.1
+:3
+:3.0
+:3.1
+
+# Embedded Freescale i.MX ports
+ttymxc0
+ttymxc1
+ttymxc2
+ttymxc3
+ttymxc4
+ttymxc5
+
+# Embedded Renesas SuperH ports
+ttySC0
+ttySC1
+ttySC2
+ttySC3
+ttySC4
+ttySC5 \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/etc/ssh/ssh_config b/client/boot-tools/includes/etc/ssh/ssh_config
index 7f9319dc..7f9319dc 100644
--- a/client/boot-tools/clientstructure/etc/ssh/ssh_config
+++ b/client/boot-tools/includes/etc/ssh/ssh_config
diff --git a/client/boot-tools/clientstructure/etc/ssh/sshd_config b/client/boot-tools/includes/etc/ssh/sshd_config
index 80900684..80900684 100644
--- a/client/boot-tools/clientstructure/etc/ssh/sshd_config
+++ b/client/boot-tools/includes/etc/ssh/sshd_config
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/box.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/box.png
new file mode 100644
index 00000000..54876e68
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/box.png
Binary files differ
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/bullet.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/bullet.png
new file mode 100644
index 00000000..dd527369
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/bullet.png
Binary files differ
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/entry.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/entry.png
new file mode 100644
index 00000000..a9f4157b
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/entry.png
Binary files differ
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/lock.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/lock.png
new file mode 100644
index 00000000..a0f8c12f
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/lock.png
Binary files differ
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/logoopengnsys.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/logoopengnsys.png
new file mode 100644
index 00000000..c87ca25e
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/logoopengnsys.png
Binary files differ
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.plymouth b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.plymouth
new file mode 100644
index 00000000..a974b70c
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.plymouth
@@ -0,0 +1,11 @@
+[Plymouth Theme]
+Name=Script
+Description=Script example plugin.
+ModuleName=script
+
+[script]
+ImageDir=/lib/plymouth/themes/opengnsys
+ScriptFile=/lib/plymouth/themes/opengnsys/opengnsys.script
+
+[script-env-vars]
+example_env_var=example env var value
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.png
new file mode 100644
index 00000000..c87ca25e
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.png
Binary files differ
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.script b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.script
new file mode 100644
index 00000000..dc0c8541
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/opengnsys.script
@@ -0,0 +1,203 @@
+# This is an example plymouth plugin script
+
+Window.SetBackgroundTopColor(0, 0, 0);
+Window.SetBackgroundBottomColor(0, 0, 0);
+
+#logo.image = Image("special://logo");
+logo.image = Image ("opengnsys.png");
+logo.sprite = Sprite(logo.image);
+logo.opacity_angle = 0;
+
+fun refresh_callback ()
+ {
+ if (status == "normal")
+ {
+ logo.opacity_angle += ((2 * 3.14) / 50) * 0.5; # 0.5 HZ
+ min_opacity = 0.3;
+ opacity = (Math.Cos(logo.opacity_angle) + 1) / 2;
+ opacity *= 1 - min_opacity;
+ opacity += min_opacity;
+ logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2);
+ logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2);
+ logo.sprite.SetOpacity (opacity);
+ }
+ else
+ {
+ logo.sprite.SetX (0);
+ logo.sprite.SetY (0);
+ logo.sprite.SetOpacity (1);
+ }
+ }
+
+Plymouth.SetRefreshFunction (refresh_callback);
+
+#----------------------------------------- Dialogue --------------------------------
+
+status = "normal";
+
+fun dialog_setup()
+ {
+ local.box;
+ local.lock;
+ local.entry;
+
+ box.image = Image("box.png");
+ lock.image = Image("lock.png");
+ entry.image = Image("entry.png");
+
+ box.sprite = Sprite(box.image);
+ box.x = Window.GetX() + Window.GetWidth() / 2 - box.image.GetWidth ()/2;
+ box.y = Window.GetY() + Window.GetHeight() / 2 - box.image.GetHeight()/2;
+ box.z = 10000;
+ box.sprite.SetPosition(box.x, box.y, box.z);
+
+ lock.sprite = Sprite(lock.image);
+ lock.x = box.x + box.image.GetWidth()/2 - (lock.image.GetWidth() + entry.image.GetWidth()) / 2;
+ lock.y = box.y + box.image.GetHeight()/2 - lock.image.GetHeight()/2;
+ lock.z = box.z + 1;
+ lock.sprite.SetPosition(lock.x, lock.y, lock.z);
+
+ entry.sprite = Sprite(entry.image);
+ entry.x = lock.x + lock.image.GetWidth();
+ entry.y = box.y + box.image.GetHeight()/2 - entry.image.GetHeight()/2;
+ entry.z = box.z + 1;
+ entry.sprite.SetPosition(entry.x, entry.y, entry.z);
+
+ global.dialog.box = box;
+ global.dialog.lock = lock;
+ global.dialog.entry = entry;
+ global.dialog.bullet_image = Image("bullet.png");
+ dialog_opacity (1);
+ }
+
+fun dialog_opacity(opacity)
+ {
+ dialog.box.sprite.SetOpacity (opacity);
+ dialog.lock.sprite.SetOpacity (opacity);
+ dialog.entry.sprite.SetOpacity (opacity);
+ for (index = 0; dialog.bullet[index]; index++)
+ {
+ dialog.bullet[index].sprite.SetOpacity(opacity);
+ }
+ }
+
+fun display_normal_callback ()
+ {
+ global.status = "normal";
+ if (global.dialog)
+ dialog_opacity (0);
+ }
+
+fun display_password_callback (prompt, bullets)
+ {
+ global.status = "password";
+ if (!global.dialog)
+ dialog_setup();
+ else
+ dialog_opacity(1);
+ for (index = 0; dialog.bullet[index] || index < bullets; index++)
+ {
+ if (!dialog.bullet[index])
+ {
+ dialog.bullet[index].sprite = Sprite(dialog.bullet_image);
+ dialog.bullet[index].x = dialog.entry.x + index * dialog.bullet_image.GetWidth();
+ dialog.bullet[index].y = dialog.entry.y + dialog.entry.image.GetHeight() / 2 - dialog.bullet_image.GetHeight() / 2;
+ dialog.bullet[index].z = dialog.entry.z + 1;
+ dialog.bullet[index].sprite.SetPosition(dialog.bullet[index].x, dialog.bullet[index].y, dialog.bullet[index].z);
+ }
+ if (index < bullets)
+ dialog.bullet[index].sprite.SetOpacity(1);
+ else
+ dialog.bullet[index].sprite.SetOpacity(0);
+ }
+ }
+
+Plymouth.SetDisplayNormalFunction(display_normal_callback);
+Plymouth.SetDisplayPasswordFunction(display_password_callback);
+
+#----------------------------------------- Progress Bar --------------------------------
+
+progress_box.original_image = Image("progress_box.png");
+progress_box.image = progress_box.original_image.Scale(Window.GetWidth (), progress_box.original_image.GetHeight());
+progress_box.sprite = Sprite(progress_box.image);
+
+progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2;
+progress_box.y = Window.GetY() + Window.GetHeight() - progress_box.image.GetHeight();
+progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0);
+
+progress_bar.original_image = Image("progress_bar.png");
+progress_bar.image = progress_bar.original_image.Scale(0, progress_box.image.GetHeight());
+progress_bar.sprite = Sprite();
+
+progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2;
+progress_bar.y = Window.GetY() + Window.GetHeight() - progress_box.image.GetHeight();
+progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1);
+
+fun progress_callback (duration, progress)
+ {
+ if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress))
+ {
+ progress_bar.image = progress_bar.original_image.Scale(progress_box.image.GetWidth(progress_box.image) * progress, progress_box.image.GetHeight());
+ progress_bar.sprite.SetImage (progress_bar.image);
+ }
+ }
+
+Plymouth.SetBootProgressFunction(progress_callback);
+
+#----------------------------------------- Quit --------------------------------
+
+fun quit_callback ()
+{
+ logo.sprite.SetOpacity (1);
+}
+
+Plymouth.SetQuitFunction(quit_callback);
+
+#----------------------------------------- Message --------------------------------
+
+message_sprite = Sprite();
+message_sprite.SetPosition(10, 10, 10000);
+
+fun message_callback (text)
+{
+ my_image = Image.Text(text, 0.6, 0.6, 0.6);
+ message_sprite.SetImage(my_image);
+ message_sprite.SetX(Window.GetWidth () / 2 - my_image.GetWidth() / 2);
+ message_sprite.SetY((Window.GetHeight () * 0.7) - (2 * my_image.GetHeight()));
+ message.sprite.SetZ(11);
+}
+
+Plymouth.SetMessageFunction(message_callback);
+
+
+#----------------------------------------- Status Update --------------------------------
+
+statusupdate_sprite = Sprite();
+
+fun StringLength(string) {
+
+ index = 0;
+ str = String(string);
+ while(str.CharAt(index)) index++;
+ return index;
+}
+
+fun status_callback (text)
+{
+ // Truncate the message if too long
+ if (StringLength(text) > (Window.GetHeight () / 4 )) {
+ text = text.SubString(0, (Window.GetHeight () / 4 ) - 3);
+ text += "...";
+ }
+
+ my_image = Image.Text(text, 0.4, 0.4, 0.4);
+ statusupdate_sprite.SetPosition(10, 10 + (i * 20), 10000);
+ statusupdate_sprite.SetImage(my_image);
+ statusupdate_sprite.SetX(Window.GetWidth () / 2 - my_image.GetWidth() / 2);
+ statusupdate_sprite.SetY((Window.GetHeight () * 0.7) - my_image.GetHeight());
+ statusupdate.sprite.SetZ(11);
+}
+
+Plymouth.SetUpdateStatusFunction(status_callback);
+
+
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_bar.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_bar.png
new file mode 100644
index 00000000..fad2e3f9
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_bar.png
Binary files differ
diff --git a/client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_box.png b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_box.png
new file mode 100644
index 00000000..bdc029e1
--- /dev/null
+++ b/client/boot-tools/includes/lib/plymouth/themes/opengnsys/progress_box.png
Binary files differ
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsBootGraphics.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsBootGraphics.sh
new file mode 100644
index 00000000..edd0dc00
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsBootGraphics.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+#TODO Comprobar si esta los source.
+#svn checkout http://www.opengnsys.es/svn/branches/version1.0/client /tmp/opengnsys_installer/opengnsys/client/;
+#svn checkout http://www.opengnsys.es/svn/branches/version2/ /tmp/opengnsys_installer/opengnsys2
+find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null;
+
+#plymouth
+apt-get -y install plymouth plymouth-theme-script
+
+
+#plymoutyh
+update-alternatives --install /lib/plymouth/themes/default.plymouth default.plymouth /lib/plymouth/themes/opengnsys/opengnsys.plymouth 100
+update-alternatives --set default.plymouth /lib/plymouth/themes/opengnsys/opengnsys.plymouth
+
+mkdir -p /etc/initramfs-tools/conf.d
+echo "FRAMEBUFFER=y" > /etc/initramfs-tools/conf.d/splash
+
+history -c \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/root/ReconfigureLocales.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsLocales.sh
index 5480d141..63d36943 100755
--- a/client/boot-tools/clientstructure/root/ReconfigureLocales.sh
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsLocales.sh
@@ -1,4 +1,6 @@
#!/bin/bash
dpkg-reconfigure console-data
dpkg-reconfigure console-setup
-dpkg-reconfigure locales \ No newline at end of file
+dpkg-reconfigure locales
+
+history -c \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsOpengnsys.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsOpengnsys.sh
new file mode 100644
index 00000000..21b7a54d
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsOpengnsys.sh
@@ -0,0 +1,124 @@
+#!/bin/bash
+#TODO Comprobar si esta los source.
+
+#svn checkout http://www.opengnsys.es/svn/branches/version1.0/client /tmp/opengnsys_installer/opengnsys/client/;
+#svn checkout http://www.opengnsys.es/svn/branches/version2/ /tmp/opengnsys_installer/opengnsys2
+find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null;
+
+apt-get -y --force-yes install subversion
+export SVNURL="http://opengnsys.es/svn/branches/version1.0/client/"
+VERSIONSVN=$(LANG=C svn info $SVNURL | awk '/Revision:/ {print "r"$2}')
+
+VERSIONBOOTTOOLS=ogLive
+
+NAMEISOCLIENT="/tmp/opengnsys_info_rootfs"
+NAMEHOSTCLIENT="/tmp/opengnsys_chroot"
+
+SVNCLIENTDIR=/tmp/opengnsys_installer/opengnsys/client/boot-tools
+SVNCLIENTSTRUCTURE=/tmp/opengnsys_installer/opengnsys/client/shared
+SVNCLIENTENGINE=/tmp/opengnsys_installer/opengnsys/client/engine
+SVNOG2=/tmp/opengnsys_installer/opengnsys2
+
+OGCLIENTMOUNT=""
+
+
+OSDISTRIB=$(lsb_release -i | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
+OSCODENAME=$(cat /etc/lsb-release | grep CODENAME | awk -F= '{print $NF}')
+OSRELEASE=$(uname -a | awk '{print $3}')
+uname -a | grep x86_64 > /dev/null && export OSARCH=amd64 || export OSARCH=i386
+OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
+
+echo $OSDISTRIB:$OSCODENAME:$OSRELEASE:$OSARCH:$OSHTTP
+
+
+LERROR=TRUE
+
+echo "$FUNCNAME: Iniciando la personalización con datos del SVN "
+
+# parseamos del apt.source
+sed -e "s/OSCODENAME/$OSCODENAME/g" ${SVNCLIENTDIR}/includes/etc/apt/sources.list.ubuntu > ${SVNCLIENTDIR}/includes/etc/apt/sources.list
+if [ $? -ne 0 ]
+then
+ echo "$FUNCNAME(): Parsing apt.sources : ERROR"
+ exit 1
+fi
+
+
+
+#damos permiso al directorio de scripts
+chmod -R 775 ${SVNCLIENTDIR}/includes/usr/bin/*
+
+# los copiamos
+cp -prv ${SVNCLIENTDIR}/includes/* /
+mkdir -p ${OGCLIENTMOUNT}/opt/opengnsys/
+cp -prv ${SVNCLIENTSTRUCTURE}/* ${OGCLIENTMOUNT}/opt/opengnsys/
+cp -prv ${SVNCLIENTENGINE}/* ${OGCLIENTMOUNT}/opt/opengnsys/lib/engine/bin/
+
+if [ $? -ne 0 ]
+then
+ echo "$FUNCNAME(): Copying client data : ERROR"
+ exit 1
+fi
+
+# copiamos algunas cosas del nfsexport
+
+#### Tipos de letra para el Browser.
+cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/lib/fonts
+#### Crear enlaces para compatibilidad con las distintas versiones del Browser.
+mkdir -p $OGCLIENTMOUNT/usr/local/Trolltech/QtEmbedded-4.5.1/lib/
+mkdir -p $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.2/lib/
+mkdir -p $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.3/lib/
+cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts
+cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.2/lib/fonts
+cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.3/lib/fonts
+if [ $? -ne 0 ]
+then
+ echo "$FUNCNAME(): Linking Browser fonts : ERROR"
+ exit 1
+fi
+
+#########################################################
+cp -pr ${SVNCLIENTSTRUCTURE}/lib/pci.ids $OGCLIENTMOUNT/etc
+if [ $? -ne 0 ]
+then
+ echo "$FUNCNAME(): Copying pci.ids : ERROR"
+ exit 1
+fi
+####### Browsser
+cp ${SVNCLIENTSTRUCTURE}/bin/browser $OGCLIENTMOUNT/bin
+if [ $? -ne 0 ]
+then
+ echo "$FUNCNAME(): Copying Browser : ERROR"
+ exit 1
+fi
+
+
+#Compatiblidad con og2
+cp ${SVNCLIENTSTRUCTURE}/bin/browser2 $OGCLIENTMOUNT/bin
+
+cp -prv ${SVNOG2}/ogr/ogr $OGCLIENTMOUNT/opt/opengnsys/bin/
+
+cp -prv ${SVNOG2}/ogr/libogr.py $OGCLIENTMOUNT/usr/lib/python2.7/libogr.py
+cp -prv ${SVNOG2}/ogr/libogr.py $OGCLIENTMOUNT/usr/lib/python2.6/libogr.py
+cp -prv ${SVNOG2}/ogr/libogr.py $OGCLIENTMOUNT/opt/opengnsys/lib/python
+
+
+echo "mkdir -p /opt/opengnsys/lib/engine/"
+mkdir -p /opt/opengnsys/engine/
+echo "cp -prv ${SVNOG2}/engine/2.0/* $OGCLIENTMOUNT/opt/opengnsys/engine/"
+cp -prv ${SVNOG2}/engine/2.0/* $OGCLIENTMOUNT/opt/opengnsys/engine/
+
+
+cp -prv ${SVNOG2}/job_executer $OGCLIENTMOUNT/opt/opengnsys/bin/
+
+
+cp ${SVNCLIENTSTRUCTURE}/bin/ogAdmClient $OGCLIENTMOUNT/bin
+
+
+echo ${VERSIONBOOTTOOLS}-${OSCODENAME}-${OSRELEASE}-${VERSIONSVN} > $NAMEISOCLIENT
+echo ${VERSIONBOOTTOOLS}-${OSCODENAME}-${VERSIONSVN} > $NAMEHOSTCLIENT
+echo ${VERSIONBOOTTOOLS}-${OSCODENAME}-${VERSIONSVN} > /etc/debian_chroot
+echo ${VERSIONBOOTTOOLS}-${OSCODENAME}-${VERSIONSVN} > /etc/opengnsys_chroot
+
+history -c
+
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsPostconfiguration.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsPostconfiguration.sh
new file mode 100755
index 00000000..140cffb9
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsFsPostconfiguration.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+
+
+history -c \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/root/GenerateInitrd.generic.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsInitrdGenerate.sh
index eaeb475b..fe9fe4ff 100755
--- a/client/boot-tools/clientstructure/root/GenerateInitrd.generic.sh
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsInitrdGenerate.sh
@@ -13,4 +13,6 @@ rm *
cp /bin/busybox ./
cd /tmp/
mkinitramfs -o /tmp/initrd.img-$OSRELEASE -v $OSRELEASE
-cp /boot/vmlinuz-$OSRELEASE /tmp \ No newline at end of file
+cp /boot/vmlinuz-$OSRELEASE /tmp
+
+history -c \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh
new file mode 100755
index 00000000..568548f2
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+################################################################
+##################### SOFTWARE #####################
+################################################################
+export LANGUAGE=C
+export LC_ALL=C
+export LANG=C
+
+
+source /opt/opengnsys/lib/engine/bin/ToolsGNU.c &>/dev/null
+cd /tmp
+
+echo "ctorrent "
+which ctorrent || ctorrent install &>/dev/null
+
+echo "udp-sender "
+which udp-sender || udpcast install &>/dev/null
+
+echo "ms-sys "
+which ms-sys || ms-sys install &>/dev/null
+
+echo "echo partclone "
+#which partclone.ntfs || $(wget -O partclone_0.2.16_i386.deb http://downloads.sourceforge.net/project/partclone/stable/0.2.16/partclone_0.2.16_i386.deb?use_mirror=ovh &>/dev/null; gdebi -n partclone_0.2.16_i386.deb &>/dev/null)
+which partclone.ntfs || gdebi -n /var/cache/apt/archivesOG/partclone_0.2.8_i386.deb
+
+echo "spartlnx"
+which spartlnx.run || $(wget http://damien.guibouret.free.fr/savepart.zip &>/dev/null; unzip -o savepart.zip -d /sbin/)
+
+echo "xvesa"
+gdebi -n /var/cache/apt/archivesOG/xvesa.deb
+
+history -c \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh
new file mode 100755
index 00000000..9af72199
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+export LANGUAGE=C
+export LC_ALL=C
+export LANG=C
+#LOG_FILE=/tmp/boot-tools-software.txt
+
+#Desactivamos upstart
+dpkg-divert --local --rename --add /sbin/initctl
+ln -s /bin/true /sbin/initctl
+
+#cp /tmp/sources.list /etc/apt/sources.list
+#Limpiamos y actualizamos los repositorios apt
+apt-get clean
+apt-get update
+
+#Desactivamos el hook del oginitrd.img para evitar problemas.
+mv /etc/initramfs-tools/hooks/oghooks /etc/initramfs-tools/
+
+echo " /dev/sda1 / ext4 rw,errors=remount-ro 0 0 " > /etc/mtab
+
+
+#Instalamos el kernel.
+export OSDISTRIB=$(lsb_release -i | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
+export OSCODENAME=$(cat /etc/lsb-release | grep CODENAME | awk -F= '{print $NF}')
+export OSRELEASE=$(uname -a | awk '{print $3}')
+uname -a | grep x86_64 > /dev/null && export OSARCH=amd64 || export OSARCH=i386
+export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
+# software Kernel
+apt-get -y --force-yes install linux-image-${OSRELEASE} linux-headers-${OSRELEASE} linux-image-$RELEASE
+
+#Eliminamos cualquier busybox previo: antes del busybox.
+apt-get -y --force-yes remove busybox
+
+#estos paquetes ofrecen interaccion.
+# si es actualización, ya existe el fichero /etc/ssh/ssh_config
+apt-get -y install sshfs
+
+apt-get -y install console-data
+
+for group in `find /usr/bin/boot-tools/listpackages/ -name sw.*`
+do
+ echo "Instalando el grupo de paquetes almacenados en $group"
+ for package in ` awk /^install/'{print $2}' $group `
+ do
+ echo -n $package
+ apt-get -y --force-yes install $package &>/dev/null
+ RETVAL=$?
+ if [ $RETVAL == 0 ]
+ then
+ echo " : OK - Paquete instalado correctamente (codigo interno de apt-get $RETVAL)"
+ else
+ echo " : Error Paquete $package del grupo $group (codigo interno de apt-get $RETVAL) "
+ echo "Pulse pause para continuar"
+ read
+ fi
+ done
+done
+
+
+#Activamos el hook del oginitrd.img
+mv /etc/initramfs-tools/oghooks /etc/initramfs-tools/hooks/
+
+echo " " > /etc/mtab
+
+apt-get clean
+apt-get autoclean
+apt-get autoremove
+
+history -c
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareXwindows b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareXwindows
new file mode 100644
index 00000000..41824f18
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareXwindows
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+export LANGUAGE=C
+export LC_ALL=C
+export LANG=C
+
+apt-get clean
+apt-get -y update
+
+apt-get -y --force-yes install xorg-dev xorg lxde roxterm
+
+apt-get clean
+
+history -c \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/root/generateSshKeysClient.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSshClient.sh
index 9857ad40..10aa673e 100755
--- a/client/boot-tools/clientstructure/root/generateSshKeysClient.sh
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSshClient.sh
@@ -20,4 +20,6 @@ ssh-keygen -q -f /root/.ssh/id_rsa -N ""
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
## TODO: exportamos la publica a los repos
-cp /root/.ssh/id_rsa.pub /tmp/rsa.ogclient.pub \ No newline at end of file
+cp /root/.ssh/id_rsa.pub /tmp/rsa.ogclient.pub
+
+history -c \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/root/importSshKeys.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSshServer.sh
index 17a797f8..02ea71cd 100755
--- a/client/boot-tools/clientstructure/root/importSshKeys.sh
+++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSshServer.sh
@@ -14,4 +14,5 @@ echo "importando la clave publica del servidor OG"
cat /tmp/id_rsa.pub
[ -f /tmp/id_rsa.pub ] && cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys || echo "no key publica og"
- \ No newline at end of file
+
+ history -c \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow
new file mode 100644
index 00000000..25356820
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow
@@ -0,0 +1,10 @@
+#sw.X
+#+300M
+#install xorg-dev
+#install xorg
+#install lxde
+#+80M roxterm y gparted
+install roxterm
+install gparted
+#xvesa en compilacion
+install openbox \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Zinitrd b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Zinitrd
new file mode 100644
index 00000000..48438791
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Zinitrd
@@ -0,0 +1,3 @@
+#sw.zinitrd
+install busybox-static
+install bash-static
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic
new file mode 100644
index 00000000..4286d652
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic
@@ -0,0 +1,13 @@
+#Format install paquete
+install dialog
+install man-db
+install fbset
+install gdebi-core
+install busybox-static
+install console-data
+install locales
+install lshw
+install gawk
+install subversion
+install python-openssl
+install python \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.cloning b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.cloning
new file mode 100644
index 00000000..9eda4b6b
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.cloning
@@ -0,0 +1,16 @@
+#sw.cloning
+install drbl-partimage
+install fsarchiver
+install pv
+install kexec-tools
+install mbuffer
+install parted
+install drbl-chntpw
+install chntpw
+install clonezilla
+install registry-tools
+install reglookup
+install libparse-win32registry-perl
+install grokevt
+install libhivex0
+install libhivex-bin \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compile b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compile
new file mode 100644
index 00000000..8b1d1001
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compile
@@ -0,0 +1,10 @@
+install build-essential
+install libattr*
+install attr
+install make
+install m4
+install gettext
+install libmhash-dev
+install gdebi-core
+install gawk
+
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compresor b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compresor
new file mode 100644
index 00000000..113e885e
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.compresor
@@ -0,0 +1,12 @@
+#sw.compressor
+install lzma
+install zip
+install unzip
+install gzip
+install lzop
+install drbl-lzop
+install pigz
+install pbzip2
+install lbzip2
+install rzip
+install p7zip-full \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.local b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.local
new file mode 100644
index 00000000..16d67da5
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.local
@@ -0,0 +1,21 @@
+#sw.filesystem.local
+install squashfs-tools
+install unionfs-fuse
+install drbl-ntfsprogs
+install ntfsprogs
+install ntfs-3g
+install dosfstools
+install dmraid
+install dmsetup
+install lvm2
+install e2fsprogs
+install jfsutils
+install reiserfsprogs
+install xfsprogs
+install mhddfs
+install hfsplus
+install hfsprogs
+install hfsutils
+install nilfs-tools
+install reiser4progs
+install ufsutils \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.remote b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.remote
new file mode 100644
index 00000000..192a4017
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.filesystem.remote
@@ -0,0 +1,9 @@
+#sw.filesystem.remote
+install nfs-common
+install sshfs
+install smbfs
+install smbclient
+install davfs2
+install open-iscsi
+install openssh-server
+install bittornado \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.monitoring b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.monitoring
new file mode 100644
index 00000000..49adc6f3
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.monitoring
@@ -0,0 +1,12 @@
+#sw.monitoring
+install htop
+install ncdu
+install bwbar
+install bmon
+install iftop
+install ifstat
+install dstat
+install hdparm
+install sdparm
+install blktool
+install testdisk \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.networking b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.networking
new file mode 100644
index 00000000..d8efd04e
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.networking
@@ -0,0 +1,14 @@
+#sw.networking
+install netpipes
+install wget
+install tftp
+install dnsutils
+install trickle
+install lighttpd
+install ethtool
+install ssmping
+install mii-diag
+install tcpdump
+install nmap
+install arping
+install iptraf \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing
new file mode 100644
index 00000000..282de9e8
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing
@@ -0,0 +1,4 @@
+#sw.other
+install screen
+install schroot
+install grub \ No newline at end of file
diff --git a/client/boot-tools/includes/usr/bin/boot-tools/qemu.sh b/client/boot-tools/includes/usr/bin/boot-tools/qemu.sh
new file mode 100755
index 00000000..49031670
--- /dev/null
+++ b/client/boot-tools/includes/usr/bin/boot-tools/qemu.sh
@@ -0,0 +1,12 @@
+#/bin/bash
+
+mount -o rw,remount /
+mount proc /proc -t proc
+export PATH=$PATH dpkg -i *.deb
+modprobe 8139too
+modprobe 8139cp
+dhclient
+/etc/init.d/ssh restart
+
+
+#qemu -hda ogclient.img -kernel ./ogvmlinuz -initrd ./oginitrd.img -append "root=/dev/sda1 rw init=false" -boot c \ No newline at end of file
diff --git a/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.7-1drbl_i386.deb b/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.7-1drbl_i386.deb
new file mode 100755
index 00000000..870b021f
--- /dev/null
+++ b/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.7-1drbl_i386.deb
Binary files differ
diff --git a/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.8_i386.deb b/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.8_i386.deb
new file mode 100755
index 00000000..9dbe2e9e
--- /dev/null
+++ b/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.8_i386.deb
Binary files differ
diff --git a/client/boot-tools/includes/var/cache/apt/archivesOG/xvesa.deb b/client/boot-tools/includes/var/cache/apt/archivesOG/xvesa.deb
new file mode 100644
index 00000000..72433e76
--- /dev/null
+++ b/client/boot-tools/includes/var/cache/apt/archivesOG/xvesa.deb
Binary files differ
diff --git a/client/boot-tools/clientstructure/var/lib/locales/supported.d/local b/client/boot-tools/includes/var/lib/locales/supported.d/local
index be3f2a41..be3f2a41 100644
--- a/client/boot-tools/clientstructure/var/lib/locales/supported.d/local
+++ b/client/boot-tools/includes/var/lib/locales/supported.d/local
diff --git a/client/boot-tools/kernelParameterOG.es.txt b/client/boot-tools/kernelParameterOG.es.txt
index 66d7fcfa..7f8a15b2 100644
--- a/client/boot-tools/kernelParameterOG.es.txt
+++ b/client/boot-tools/kernelParameterOG.es.txt
@@ -1,49 +1,5 @@
-KERNEL ogclient/ogvmlinuz
-initrd=ogclient/oginitrd.img
+Ver información completa en:
+ http://www.opengnsys.es/wiki/InitrdClienteSecondFileSystem
-### PARAMETROS ESTANDAR DEl KERNEL
-## indicamos al kernel que proceso a iniciar el Opengnsys
- boot=oginit
- vga=788
-irqpoll
-acpi=on
-
-ip=dhcp
-ip=
-
-### PARAMETROS ESPECIFICOS DE OG.
- # Indicamos al cliente OG, cuando termine su proceso que incie el init (/opt/opengnsys/etc/preinit/default.sh)
- # si no se utiliza este parametro por defecto usa init.
- oginit=init|/bin/bash
-
-
- #por defecto todos los servicios OG, los considera ubicados en el next-server (parámetro indicado en el servicio dhcp)
-# en el caso de que queramos que indicar que REPO (/opt/opengnsys/images) está en otro equipo utilizar este parámetro ogrepo
- ogrepo=ip del repositorio
-
- # fichero donde se encuentra el rootfs que usara el ogvmlinuz y el oginitrd.img
- # hay dos formatos, el img (fichero modificable desde el OG server), o el sqfs (fichero solo lectura del img)
- og2nd=sqfs|img
-
- #protocolo de acceso al og2nd.
- ogprotocol=smb|nfs|local
- #local para cdrom, usb a partir de la iso. labelparticionusbUNETBOOTIN=ogClient
- #loacl tambien para fichero.sqfs en cache.
-
-
- # modo de funcionalidad del browser con shell root activa.
- ogactiveadmin=true|false
-
- #modo de depuración en el proceso de arranque del cliente.
- ogdebug=true|false
-
-
-#modulo especial de la tarjeta de red.
-ognetmodule
-
-
-
-
-
diff --git a/client/boot-tools/ogClientGeneratorV2.sh b/client/boot-tools/ogClientGeneratorV2.sh
deleted file mode 100755
index 3f816aeb..00000000
--- a/client/boot-tools/ogClientGeneratorV2.sh
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/bin/bash
-#@file ogClientGenerator.sh
-#@brief Script generación del cliente OpenGnSys
-#@warning
-#@version 0.9 -
-#@author Antonio J. Doblas Viso.
-#@date 2010/05/24
-#*/
-
-
-#$1 OSCONENAME lucid karmic
-#if [ $# -ne 1 ]; then
-# echo ": invalid number of parameters"
-# echo " host | lucid | karmic | jaunty | lenny | squeeze "
-# exit 1
-#fi
-TYPECLIENT=host
-
-# Solo ejecutable por usuario root
-if [ "$(whoami)" != 'root' ]
-then
- echo "ERROR: this program must run under root privileges!!"
- exit 1
-fi
-
-
-
-#FIXME: variables del instalador oficial.
-WORKDIR=/tmp/opengnsys_installer
-INSTALL_TARGET=/opt/opengnsys
-LOG_FILE=/tmp/opengnsys_installation.log
-PROGRAMDIR=$(readlink -e $(dirname "$0"))
-
-
-#funciones especificas del cliente.
-source $PROGRAMDIR/ogClientManager.lib
-#funciones incluidas dentro del scritps general de instalacion.
-source $PROGRAMDIR/ogInstaller.lib
-
-echoAndLog "OpenGnSys CLIENT installation begins at $(date)"
-
-##########################################################################
-## FASE 1 - Instalación de software adicional.
-##TO DO Integrar en el instaldor. Actualizar repositorios
-# Datos para la generación del cliente.
-DEPENDENCIES=( debootstrap subversion schroot squashfs-tools)
-apt-get update
-# Instalación de dependencias (paquetes de sistema operativo).
-declare -a notinstalled
-checkDependencies DEPENDENCIES notinstalled
-if [ $? -ne 0 ]; then
- installDependencies notinstalled
- if [ $? -ne 0 ]; then
- echoAndLog "Error while installing some dependeces, please verify your server installation before continue"
- exit 1
- fi
-fi
-############## FIN DEL TO DO
-############################################## FIN FASE 1
-
-
-
-############## FASE 2 - Asignación de variables
-#obtenemos las variables necesarias.
-ogClientVar
-#obtenemos la información del host.
-ogClientOsInfo
-######################## FIN fase 2
-
-############# FASE 3: Segundo Sistema archivos (img) Creación.
-#TODO comprobacion de que el fichero esta creado.
-file $OGCLIENTFILE | grep "partition 1: ID=0x83"
-if [ $? == 1 ]
-then
- ##3.1 creación y formateo del disco virtual. generamos el dispositivo loop.
- ogClient2ndFile || exit 1
-fi
-
-
-#3.2 generamos el Sistema de archivos con debootstrap
-# Comprobamos que ya tenemos alguno.
-schroot -p -c IMGogclient -- touch /tmp/ogclientOK
-if [ -f /tmp/ogclientOK ]
-then
- rm /tmp/ogclientOK
-else
- ogClient2ndFs $TYPECLIENT || exit
-fi
-
-
-############### FASE 4: Configuración el acceso al Segundo Sistema de archivos (img), para schroot
-cat /etc/schroot/schroot.conf | grep ogclient || ogClientSchrootConf
-
-
-############### FASE 5: Configuración del Segundo Sistema de archivos (img) con la estructura especial de OpenGnsys
-ogClient2ndSVN $TYPECLIENT || exit
-
-
-
-
-############# FASE6: Ejecutamos los scripts de personalización del 2º sistema de archivos (img) desde la jaula schroot
-### 6.1 instalacion de software con apt-get
-schroot -p -c IMGogclient -- /root/InstallSoftware.sh
-echo "saltando"
- if [ $? -ne 0 ]; then
- errorAndLog "Instalando sofware adicional OG : ERROR"
- exit
-else
- echoAndLog "Instalando sofware adicional OG: OK"
-fi
-#### 6.2 compilación de software.
-cd /
-schroot -p -c IMGogclient -- /root/CompileSoftware.sh
-cd -
-
-### 6.3 configuracion hostname passroot securety
-cd /
-schroot -c IMGogclient -- /root/ConfFS.sh
-cd -
-#schroot -c IMGogclient -- echo -ne "og1\nog1\n" | passwd root
-# schroot -c IMGogclient -- passwd root | echo "root"
-
-
-### 6.4 incorporamos la clave publica del servidor
-cd /
-ssh-keygen -q -f /root/.ssh/id_rsa -N ""
-cp /root/.ssh/id_rsa.pub /tmp
-schroot -p -c IMGogclient -- /root/importSshKeys.sh
-cd -
-############ y la del propio cliente.
-schroot -c IMGogclient -- /root/generateSshKeysClient.sh
-
-## configuramos los locales.
-schroot -c IMGogclient -- /root/ReconfigureLocales.sh
-
-
-################## FIN fase 6. Fin de comfiguración del segundo sistema de archivos (img)
-
-################## FASE 7. Generamos el 1er sistema de archivos. INITRD
-#nota el parametro es el "tipo" de linux generado en debootstrap. usar solo "host", es decir version,kernel ... del propio host
-#nota: hace un schroot, al 2fs (img), ejecuta el fichero generateinitrd.
-#nota: deja en el directorio tmp del host el nuevo initrd, y lo copia al tftpboot
-ogClientInitrd $TYPECLIENT
-
-
-################## FASE 8. convertimos el 2ºFS(img) en 2ºFS(sqfs)
-# generamos el 2sistema de archivos en squashfs
-ogClient2ndSqfs
-################## FIN FASE 8. convertimos el 2ºFS(img) en 2ºFS(sqfs)
-
-
-##################### FASE 9. algunos detallas del pxe
-#dejamos ficheros de ejemplo para el pxe y el nfs
-#ogClientConfpxe
-##################### FIN FASE 9. algunos detallas del pxe
-
-
-# Mostrar sumario de la instalación e instrucciones de post-instalación.
-installationSummary
-
-echoAndLog "OpenGnSys installation finished at $(date)"
diff --git a/client/boot-tools/ogClientManager.lib b/client/boot-tools/ogClientManager.lib
deleted file mode 100644
index 9f56ec4a..00000000
--- a/client/boot-tools/ogClientManager.lib
+++ /dev/null
@@ -1,725 +0,0 @@
-
-ogClientVar()
-{
-export SVNCLIENTDIR=/tmp/opengnsys_installer/opengnsys/client/boot-tools
-export SVNCLIENTSTRUCTURE=/tmp/opengnsys_installer/opengnsys/client/shared
-export SVNCLIENTENGINE=/tmp/opengnsys_installer/opengnsys/client/engine
-
-export OGCLIENTBASEDIR=/var/lib/tftpboot/ogclient/
-export OGCLIENTFILE=${OGCLIENTBASEDIR}ogclient.img
-export OGCLIENTMOUNT=${OGCLIENTBASEDIR}ogclientmount
-# tamaño maximo limitado por schroot 2GB
-export OGCLIENTSIZEMB=1900
-#export OGCLIENTSIZEMB=1000
-# export OGCLIENTSIZEKB=500
-export OGCLIENTLABEL=ogClient
-#export OGLIB=/opt/opengnsys/client/lib
-}
-
-
-
-function ogClientOsInfo ()
-{
-#TODO según host, un OSHHTP u otro OSARCH
- #1 OSCODENAME jaunty|karmic|lucid
- #devuelve OSDISTRIB(ubuntu,debian),OSCODENAME(lucid,karmic,squeeze):OGRELEASE:httpAPT
- case $1 in
- host | HOST)
- export OSDISTRIB=$(lsb_release -i | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
- #OSCODENAME=$(lsb_release -c | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
- export OSCODENAME=$(cat /etc/lsb-release | grep CODENAME | awk -F= '{print $NF}')
- export OSRELEASE=$(uname -a | awk '{print $3}')
- uname -a | grep x86_64 > /dev/null && export OSARCH=amd64 || export OSARCH=i386
- export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
- ;;
- jaunty|JAUNTY)
- export OSDISTRIB=ubuntu
- export OSCODENAME=jaunty
- export OSRELEASE="2.6.28-11-generic"
- export OSARCH=i386
- export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
- ;;
- lenny|LENNY)
- export OSDISTRIB=debian
- export OSCODENAME=lenny
- export OSRELEASE="2.6.28-11-generic"
- export OSARCH=i386
- export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
- ;;
- squeeze|SQUEEZE)
- export OSDISTRIB=debian
- export OSCODENAME=squeeze
- export OSRELEASE="2.6.28-11-generic"
- export OSARCH=i386
- export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
- ;;
- karmic|KARMIC)
- export OSDISTRIB=ubuntu
- export OSCODENAME=karmic
- export OSRELEASE="2.6.31-14-generic"
- export OSARCH=i386
- export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
- ;;
- lucid|LUCID)
- export OSDISTRIB=ubuntu
- export OSCODENAME=lucid
- export OSRELEASE="2.6.32-21-generic-pae"
- export OSARCH=i386
- export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
- ;;
- *)
- return 1
- ;;
- esac
- echo $OSDISTRIB:$OSCODENAME:$OSRELEASE:$OSARCH:$OSHTTP
-}
-
-#creación y formateo del disco virtual.
-ogClient2ndFile ()
-{
-local RERROR DISKLOOP PARTLOOP #return code error
-echoAndLog "$FUNCNAME(): Creación y formateo del disco virtual $OGCLIENTSIZEMB MB "
-#Desmontamos por si acaso el dispositivo virtual
-mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
-mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
-echo "$FUNCNAME(): Creando el directorio donde se montará el disco virtual $OGCLIENTMOUNT"
-mkdir -p $OGCLIENTMOUNT
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Creando directorio $OGCLIENTMOUNT : ERROR"
- return 1
-fi
-echo "$FUNCNAME(): Creando el disco virtual que almacenará el FS del cliente $OGCLIENTSIZEMB MB de datos físicos"
-dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB
-#qemu-img create $OGCLIENTFILE 3G
-#dd if=/dev/zero of=$OGCLIENTFILE bs=1k count=$OGCLIENTSIZEKB # necesita 500MB
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Creando el disco virtual: ERROR"
- return 1
-fi
-
-DISKLOOP=$(losetup -f)
-losetup $DISKLOOP $OGCLIENTFILE
-echo "$FUNCNAME(): particiondo el disco virtual - $DISKLOOP - con una particion primaria"
-echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP
-#echo $?
-# da error, porque no puede actualizar el kernel.
-#if [ $? -ne 0 ]
-#then
-# errorAndLog "$FUNCNAME(): Particionando el disco virutal: ERROR"
-# return 1
-#fi
-
-echoAndLog "$FUNCNAME(): Desmontando $DISKLOOP despues del particionado "
-losetup -d $DISKLOOP
-
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Liberando disco virtual despues del particionado: ERROR"
- return 1
-fi
-
-
-#mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
-#mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
-PARTLOOP=$(losetup -f)
-echo "$FUNCNAME(): Formateando la particion principal $PARTLOOP"
-losetup -o 32256 $PARTLOOP $OGCLIENTFILE && mkfs.ext3 -b 4096 -L $OGCLIENTLABEL $PARTLOOP
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Formateando la particion principal del disco virtual: ERROR"
- return 1
-fi
-echoAndLog "$FUNCNAME(): Desmontando $PARTLOOP despues del formateo "
-losetup -d $PARTLOOP
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Liberando la particion virtual despues del formateo: ERROR"
- return 1
-else
- echoAndLog "$FUNCNAME(): $OGCLIENTFILE $OGCLIENTSIZEMB MB : OK"
-fi
-}
-
-
-
-
-
-ogClient2ndFs ()
-{
-ogClientOsInfo $1
-echoAndLog "$FUNCNAME: Iniciando la generación del sistema de archivos "
-#Montamos el dispositivo virtual en su punto de montaje.
-mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
-
-mount | grep $OGCLIENTMOUNT && echoAndLog "$FUNCNAME: mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256 OK " || errorAndLog "$FUNCNAME: mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256 : FAILURE "
-
-#debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe ${OSCODENAME} ${OGCLIENTMOUNT} ${OSHTTP}
-debootstrap --arch=$OSARCH --components=main,universe ${OSCODENAME} ${OGCLIENTMOUNT} ${OSHTTP}
-
-
-if [ $? -ne 0 ]; then
- errorAndLog "$FUNCNAME: debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe $OSCODENAME $OGCLIENTMOUNT $OSHTTP
- : ha fallado!"
- mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
- return 1
-else
- echoAndLog "$FUNCNAME: debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe $OSCODENAME $OGCLIENTMOUNT $OSHTTP
- : ok"
- mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
- return 0
-fi
- sleep 5
-
-##preubas revisar OSRELEASE
-#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/
-}
-
-
-
-
-########## configura el segundo sistema de archivos
-########### parametro: "host"
-function ogClient2ndSVN()
-{
-ogClientOsInfo $1
-#1 la salida de ogClientOsInfo
-local LERROR
-LERROR=TRUE
-echoAndLog "$FUNCNAME: Iniciando la personalización con datos del SVN "
-# comprobar que está montado $OGCLIENTMOUNT
-mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
-
-# parseamos del apt.source
-sed -e "s/OSCODENAME/$OSCODENAME/g" ${SVNCLIENTDIR}/clientstructure/etc/apt/sources.list.ubuntu > ${SVNCLIENTDIR}/clientstructure/etc/apt/sources.list
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Parsing apt.sources : ERROR"
- return 1
-fi
-
-#parseamos el script de generación del initrd.
-sed -e "s/OSRELEASE/$OSRELEASE/g" ${SVNCLIENTDIR}/clientstructure/root/GenerateInitrd.generic.sh > ${SVNCLIENTDIR}/clientstructure/root/GenerateInitrd.sh
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Parsing GenerateInitrd.sh : ERROR"
- return 1
-fi
-
-#damos permiso al directorio de scripts
-chmod 775 ${SVNCLIENTDIR}/clientstructure/root/*
-
-# los copiamos
-cp -prv ${SVNCLIENTDIR}/clientstructure/* $OGCLIENTMOUNT
-mkdir -p ${OGCLIENTMOUNT}/opt/opengnsys/
-cp -prv ${SVNCLIENTSTRUCTURE}/* ${OGCLIENTMOUNT}/opt/opengnsys/
-cp -prv ${SVNCLIENTENGINE}/* ${OGCLIENTMOUNT}/opt/opengnsys/lib/engine/bin/
-
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Copying client data : ERROR"
- return 1
-fi
-
-# copiamos algunas cosas del nfsexport
-
-#### Tipos de letra para el Browser.
-cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/lib/fonts
-#### Crear enlaces para compatibilidad con las distintas versiones del Browser.
-mkdir -p $OGCLIENTMOUNT/usr/local/Trolltech/QtEmbedded-4.5.1/lib/
-mkdir -p $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.2/lib/
-mkdir -p $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.3/lib/
-#ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts
-#ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/QtEmbedded-4.6.2/lib/fonts
-#ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/QtEmbedded-4.6.3/lib/fonts
-cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts
-cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.2/lib/fonts
-cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.3/lib/fonts
-
-
-
-
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Linking Browser fonts : ERROR"
- return 1
-fi
-
-# B ########################################################
-cp -pr ${SVNCLIENTSTRUCTURE}/lib/pci.ids $OGCLIENTMOUNT/etc
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Copying pci.ids : ERROR"
- return 1
-fi
-
-cp ${SVNCLIENTSTRUCTURE}/bin/browser $OGCLIENTMOUNT/bin
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Copying Browser : ERROR"
- return 1
-fi
-
-cp ${SVNCLIENTSTRUCTURE}/bin/ogAdmClient $OGCLIENTMOUNT/bin
-if [ $? -ne 0 ]
-then
- errorAndLog "$FUNCNAME(): Copying ogAdmClient : ERROR"
- return 1
-else
- mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
- mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
- mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
- mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
- echoAndLog "$FUNCNAME: Finalizado: OK "
- return 0
-fi
-}
-
-
-ogClientSchrootConf()
-{
-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 luc IMGi
-priority=1
-users=root
-groups=root
-root-groups=root
-mount-options=-o offset=32256
-root-users=root
-[DIRogclient]
-type=directory
-directory=/var/lib/tftpboot/ogclient/ogclientmount
-description=ogclient ubuntu lucid DIR
-priority=2
-users=root
-groups=root
-root-groups=root
-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
-
-echoAndLog "$FUNCNAME: Finalizado: OK "
-return 0
-}
-
-
-
-########### param1 "host"
-ogClientInitrd()
-{
-ogClientVar
-cd /
-ogClientOsInfo $1
-schroot -c IMGogclient -- /root/GenerateInitrd.generic.sh
-echo "cp /tmp/*-${OSRELEASE} $OGCLIENTBASEDIR"
-cp /tmp/*-${OSRELEASE} $OGCLIENTBASEDIR
-cp /tmp/initrd.img-${OSRELEASE} ${OGCLIENTBASEDIR}/oginitrd.img
-cp /tmp/vmlinuz-${OSRELEASE} ${OGCLIENTBASEDIR}/ogvmlinuz
-cd -
-}
-
-
-ogClient2ndSqfs()
-{
-ogClientVar
-echoAndLog "$FUNCNAME: Iniciando la creación del sistema de archivos en sqfs "
-# si ya existe un sqfs lo renombramos
-[ -f $OGCLIENTBASEDIR/ogclient.sqfs ] && mv $OGCLIENTBASEDIR/ogclient.sqfs $OGCLIENTBASEDIR/ogclient.sqfs.`date +%Y%m%d-%H%M%S`
-mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
-mksquashfs $OGCLIENTMOUNT $OGCLIENTBASEDIR/ogclient.sqfs
-chmod 744 $OGCLIENTBASEDIR/ogclient.sqfs
-mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
-}
-
-
-
-
-ogClientSshkeys()
-{
-echo comprobamos clave rsa en el host REPO OG.
-if [ ! -f /root/.ssh/id_rsa.pub ]
-then
- echo "creando claves rsa"
- ssh-keygen -q -f /root/.ssh/id_dsa -t dsa -N "opengnsys"
-else
- echo "la claves ya estan creadas"
-fi
-echo "copiamos la clave publica a /tmp"
-cp /root/.ssh/id_dsa.pub /tmp
-
-cat /tmp/id_dsa.pub
-
-echo "schroot con instrucciones."
-schroot -c IMGogclient -- /root/importSshKeys.sh
-
-echo "limpiando"
-rm /tmp/id_dsa.pub
-
-## copiamos ssh rsa del host al guest como authorized-key2
-##rm ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
-##cat /root/.ssh/id_rsa.pub >> ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
-#cat ${OGCLIENTMOUNT}/root/.ssh/id_rsa.pub >> ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
-##mount | grep $OGCLIENTMOUNT || umount $OGCLIENTMOUNT
-}
-
-
-
-function ogCrearISO {
-apt-get install syslinux genisoimage
-#TODO: deb http://free.nchc.org.tw/drbl-core drbl stable
-#apt-get install gpxe
-mkdir -p /tmp/iso/isolinux
-#cd tmp/iso/
-cp -prv /usr/lib/syslinux/* /tmp/iso/isolinux/
-cp -prv /usr/share/gpxe/* /tmp/iso/isolinux/
-mkdir -p /tmp/iso/ogclient
-#el ogclienteToISO debe tener una copia del ogvmlinuz como linuxISO
-cp -prv /var/lib/tftpboot/ogclientToIso/* /tmp/iso/ogclient
-
-
-cat << FIN > /tmp/iso/isolinux/isolinux.cfg
-DEFAULT menu.c32
-PROMPT 0
-ALLOWOPTIONS 1
-
-MENU TITLE OpenGnsys 1.0.1 v00
-
-LABEL gpxe
-MENU LABEL gpxe
-KERNEL /clonezilla/live/vmlinuz1
-APPEND initrd=/clonezilla/live/initrd1.img boot=live union=aufs noswap vga=788 ip=frommedia
-
-
-#default 0
-#prompt 1
-#timeout 100
-
-#display mensaje.txt
-
-
-
-
-LABEL 0
-MENU LABEL ogClient 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 ogClient 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 ogClient 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 ogClient 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 ogclient
-#KERNEL /ogclient/linuxISO
-#APPEND initrd=/ogclient/initrdISO.img
-
-#KERNEL linuxISO
-#APPEND initrd=initrdISO.img
-
-LABEL 4
-MENU LABEL local
-localboot 0x80
-append -
-
-
-label 5
-MENU LABEL Network boot via gPXE lkrn
-KERNEL gpxe.lkrn
-
-label 5
-MENU LABEL Network boot via gPXE usb
-KERNEL gpxe.usb
-
-label 5
-MENU LABEL Network boot via gPXE pxe
-KERNEL gpxe.pxe
-
-label 5
-MENU LABEL Network boot via gPXE iso
-KERNEL gpxe.iso
-FIN
-#### /tmp/iso#
-mkisofs -V ogClient -o ogClient.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -J -no-emul-boot -boot-load-size 4 -boot-info-table tmp/iso
-
-### 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
-#}
-
-
-}
-
-function ogprobarISO {
-#/tmp/iso
-qemu -m 256 -boot d -cdrom ogClient.iso
-}
-
-
-
-
-
-
-
-ogClientConfpxe()
-{
-################## DEJAMOS FICHERO DE EJEMPLOS PARA:
-#default
-cat << FIN >> /var/lib/tftpboot/pxelinux.cfg/defaultNEWClient
-LABEL pxe-${OGRELEASE}
-KERNEL ogclient/vmlinuz-$OGRELEASE
-APPEND initrd=ogclient/initrd.img-$OGRELEASE ip=dhcp ro boot=og vga=788 irqpoll acpi=on reposerver=
-LABEL pxe-2.6.32-21-generic-pae
-KERNEL ogclient/vmlinuz-2.6.32-21-generic-pae
-APPEND initrd=ogclient/initrd.img-2.6.32-21-generic-pae ip=dhcp ro boot=oginit vga=788 irqpoll acpi=on ogrepo=172.17.36.11 ogprotocol=nfs og2nd=sqfs
-LABEL cache
-KERNEL grub.exe
-APPEND --config-file="find --set-root /vmlinuz; kernel /vmlinuz ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd /initrd.img"
-LABEL net
-KERNEL grub.exe
-APPEND keeppxe --config-file="pxe detect; kernel (pd)/ogclient/vmlinuz-2.6.32-21-generic-pae ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd (pd)/ogclient/initrd.img-2.6.32-21-generic-pae"
-LABEL IfNOTcacheGOnet
-KERNEL grub.exe
-APPEND keeppxe --config-file="pxe detect; default 0; timeout 0; hiddenmenu; title cache; fallback 1; find --set-root /vmlinuz; kernel /vmlinuz ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd /initrd.img; boot; title net; kernel (pd)/ogclient/vmlinuz-2.6.32-21-generic-pae ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd (pd)/ogclient/initrd.img-2.6.32-21-generic-pae; boot"
-#LABEL pxe-2.6.32-21-generic-pae
-#KERNEL ogclient/vmlinuz-2.6.32-21-generic-pae
-#APPEND initrd=ogclient/initrd.img-2.6.32-21-generic-pae ip=dhcp ro boot=og vga=788 irqpoll acpi=on reposerver=172.17.32.242
-#LABEL grub
-#KERNEL grub.exe
-#APPEND keeppxe
-FIN
-#/etc/hosts
-echo "/var/lib/tftpboot *(ro,no_subtree_check,no_root_squash,sync)" > /etc/exportsNEWClient
-/etc/init.d/nfs-kernel-server restart
-#####################################################################
-}
-
-
-
-############### 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
-
-}
-
-
-############################ hasta el final del archivo antiguos
-############################# ANTIGUOS
-function ogClientGetRelease ()
-{
- #1 OSCODENAME jaunty|karmic|lucid
- case $1 in
- jaunty|JAUNTY)
- OSCODENAME=jaunty
- OGRELEASE="2.6.28-11-generic"
- echo $OGRELEASE
- ;;
- lenny|LENNY)
- OSCODENAME=lenny
- OGRELEASE="2.6.28-11-generic"
- echo $OGRELEASE
- ;;
- squeeze|SQUEEZE)
- OSCODENAME=squeeze
- OGRELEASE="2.6.28-11-generic"
- echo $OGRELEASE
- ;;
- karmic|KARMIC)
- OSCODENAME=karmic
- OGRELEASE="2.6.31-14-generic"
- echo $OGRELEASE
- ;;
- lucid|LUCID)
- OSCODENAME=lucid
- OGRELEASE="2.6.32-21-generic-pae"
- echo $OGRELEASE
- ;;
- *)
- return 1
- ;;
- esac
-
-}
-
-
-#/**
-# ogClientGenerator str_versionUbuntu str_release
-#@brief Crea el 2nd FS del cliente desde el Servidor Opengnsys
-#@param 1 Versión de ubuntu a generar, jaunty karmic
-#@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 ogClientGeneratorDebootstrap ()
-{
- if [ $# != 2 ]
- then
- echo Debes introducir como argumento1: jaunty karmic lucid
- echo Debes introducir como argumento2: la release
- echo utiliza como entrada ogClientCheckVersion
- return
- fi
- OSCODENAME=$1
- OGRELEASE=$2
-
- # instalamos el ultimo debotstrap para permitir instalar versiones superiores a nuestro sistema
- #apt-get install gdebi-core
- #wget $LASTDEBOOTSTRAP
- #gdebi -n debootstrap_1.0.20_all.deb
-
- #Desmontamos por si acaso el dispositivo virtual
- mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
-
- #Creamos el directorio donde montaremos el disco virtual
- mkdir -p $OGCLIENTMOUNT
-
- #Creamos el disco virtual con el filesystem del cliente.
- dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB
- #qemu-img create $OGCLIENTFILE 3G
- #dd if=/dev/zero of=$OGCLIENTFILE bs=1k count=$OGCLIENTSIZEKB # necesita 500MB
-
-
- #particionamos el disco virtual
- losetup /dev/loop0 $OGCLIENTFILE
- echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk /dev/loop0
- losetup -d /dev/loop0
-
-
- #formateamos la particion principal.
- losetup -o 32256 /dev/loop1 $OGCLIENTFILE
- mkfs.ext3 -b 4096 -L $OGCLIENTLABEL /dev/loop1
- #mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
- #mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
- losetup -d /dev/loop1
-
- #Montamos el dispositivo virtual en su punto de montaje.
- mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
-
- #TODO Comprobar arquitectura
- #Iniciamos la creación del sistema en el directorio de clientes.
- #echo debootstrap --include=linux-image-${OGRELEASE},dbus --arch=i386 --components=main,universe $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
- debootstrap --include=linux-image-${OGRELEASE},linux-headers-${OGRELEASE} --arch=i386 --components=main,universe $OSCODENAME $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
- ##preubas
- #debootstrap --include=linux-image-${OGRELEASE} --arch=i386 --variant=minbase $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
- #debootstrap --variant=minbase --include=linux-image-${OGRELEASE} --arch=i386 $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
-
- if [ $? -ne 0 ]; then
- errorAndLog "ogClientGeneratorDebootstrap(): ha fallado!"
- return 1
- else
- echoAndLog "ogClientGeneratorDebootstrap(): ok"
- return 0
- fi
- sleep 5
-
-mount | grep $OGCLIENTMOUNT && umount $OGCLIENTFILE
-
-cat << EOF > /etc/schroot/schroot.conf
-[DIRogclient]
-type=directory
-directory=/var/lib/tftpboot/ogclient/ogclientmount
-description=ogclient ubuntu lucid DIR
-priority=2
-users=root
-groups=root
-root-groups=root
-root-users=root
-EOF
-}
-
-
-
-
-
diff --git a/client/boot-tools/ogInstaller.lib b/client/boot-tools/ogInstaller.lib
deleted file mode 100644
index af0f18df..00000000
--- a/client/boot-tools/ogInstaller.lib
+++ /dev/null
@@ -1,958 +0,0 @@
-#!/bin/bash
-
-
-#####################################################################
-####### Algunas funciones útiles de propósito general:
-#####################################################################
-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
-}
-
-# comprueba si el elemento pasado en $2 esta en el array $1
-function isInArray()
-{
- if [ $# -ne 2 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- echoAndLog "${FUNCNAME}(): checking if $2 is in $1"
- local deps
- eval "deps=( \"\${$1[@]}\" )"
- elemento=$2
-
- local is_in_array=1
- # copia local del array del parametro 1
- for (( i = 0 ; i < ${#deps[@]} ; i++ ))
- do
- if [ "${deps[$i]}" = "${elemento}" ]; then
- echoAndLog "isInArray(): $elemento found in array"
- is_in_array=0
- fi
- done
-
- if [ $is_in_array -ne 0 ]; then
- echoAndLog "${FUNCNAME}(): $elemento NOT found in array"
- fi
-
- return $is_in_array
-
-}
-
-#####################################################################
-####### Funciones de manejo de paquetes Debian
-#####################################################################
-
-function checkPackage()
-{
- package=$1
- if [ -z $package ]; then
- errorAndLog "checkPackage(): parameter required"
- exit 1
- fi
- echoAndLog "checkPackage(): checking if package $package exists"
- dpkg -s $package | grep Status | grep -qw install &>/dev/null
- if [ $? -eq 0 ]; then
- echoAndLog "checkPackage(): package $package exists"
- return 0
- else
- echoAndLog "checkPackage(): package $package doesn't exists"
- return 1
- fi
-}
-
-# recibe array con dependencias
-# por referencia deja un array con las dependencias no resueltas
-# devuelve 1 si hay alguna dependencia no resuelta
-function checkDependencies()
-{
- if [ $# -ne 2 ]; then
- errorAndLog "checkDependencies(): invalid number of parameters"
- exit 1
- fi
-
- echoAndLog "checkDependencies(): checking dependences"
- uncompletedeps=0
-
- # copia local del array del parametro 1
- local deps
- eval "deps=( \"\${$1[@]}\" )"
-
- declare -a local_notinstalled
-
- for (( i = 0 ; i < ${#deps[@]} ; i++ ))
- do
- checkPackage ${deps[$i]}
- if [ $? -ne 0 ]; then
- local_notinstalled[$uncompletedeps]=$package
- let uncompletedeps=uncompletedeps+1
- fi
- done
-
- # relleno el array especificado en $2 por referencia
- for (( i = 0 ; i < ${#local_notinstalled[@]} ; i++ ))
- do
- eval "${2}[$i]=${local_notinstalled[$i]}"
- done
-
- # retorna el numero de paquetes no resueltos
- echoAndLog "checkDependencies(): dependencies uncompleted: $uncompletedeps"
- return $uncompletedeps
-}
-
-# Recibe un array con las dependencias y lo instala
-function installDependencies()
-{
- if [ $# -ne 1 ]; then
- errorAndLog "installDependencies(): invalid number of parameters"
- exit 1
- fi
- echoAndLog "installDependencies(): installing uncompleted dependencies"
-
- # copia local del array del parametro 1
- local deps
- eval "deps=( \"\${$1[@]}\" )"
-
- local string_deps=""
- for (( i = 0 ; i < ${#deps[@]} ; i++ ))
- do
- string_deps="$string_deps ${deps[$i]}"
- done
-
- if [ -z "${string_deps}" ]; then
- errorAndLog "installDependencies(): array of dependeces is empty"
- exit 1
- fi
-
- OLD_DEBIAN_FRONTEND=$DEBIAN_FRONTEND
- export DEBIAN_FRONTEND=noninteractive
-
- echoAndLog "installDependencies(): now ${string_deps} will be installed"
- apt-get -y install --force-yes ${string_deps}
- if [ $? -ne 0 ]; then
- errorAndLog "installDependencies(): error installing dependencies"
- return 1
- fi
-
- DEBIAN_FRONTEND=$OLD_DEBIAN_FRONTEND
- echoAndLog "installDependencies(): dependencies installed"
-}
-
-# Hace un backup del fichero pasado por parámetro
-# deja un -last y uno para el día
-function backupFile()
-{
- if [ $# -ne 1 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- local fichero=$1
- local fecha=`date +%Y%m%d`
-
- if [ ! -f $fichero ]; then
- errorAndLog "${FUNCNAME}(): file $fichero doesn't exists"
- return 1
- fi
-
- echoAndLog "${FUNCNAME}(): realizando backup de $fichero"
-
- # realiza una copia de la última configuración como last
- cp -p $fichero "${fichero}-LAST"
-
- # si para el día no hay backup lo hace, sino no
- if [ ! -f "${fichero}-${fecha}" ]; then
- cp -p $fichero "${fichero}-${fecha}"
- fi
-
- echoAndLog "${FUNCNAME}(): backup realizado"
-}
-
-#####################################################################
-####### Funciones para el manejo de bases de datos
-#####################################################################
-
-# This function set password to root
-function mysqlSetRootPassword()
-{
- if [ $# -ne 1 ]; then
- errorAndLog "mysqlSetRootPassword(): invalid number of parameters"
- exit 1
- fi
-
- local root_mysql=$1
- echoAndLog "mysqlSetRootPassword(): setting root password in MySQL server"
- /usr/bin/mysqladmin -u root password ${root_mysql}
- if [ $? -ne 0 ]; then
- errorAndLog "mysqlSetRootPassword(): error while setting root password in MySQL server"
- return 1
- fi
- echoAndLog "mysqlSetRootPassword(): root password saved!"
- return 0
-}
-
-# Si el servicio mysql esta ya instalado cambia la variable de la clave del root por la ya existente
-function mysqlGetRootPassword(){
- local pass_mysql
- local pass_mysql2
- # Comprobar si MySQL está instalado con la clave de root por defecto.
- if mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"quit" 2>/dev/null; then
- echoAndLog "${FUNCNAME}(): Using default mysql root password."
- else
- stty -echo
- echo "Existe un servicio mysql ya instalado"
- read -p "Insertar clave de root de Mysql: " pass_mysql
- echo ""
- read -p "Confirmar clave:" pass_mysql2
- echo ""
- stty echo
- if [ "$pass_mysql" == "$pass_mysql2" ] ;then
- MYSQL_ROOT_PASSWORD=$pass_mysql
- echo "La clave es: ${MYSQL_ROOT_PASSWORD}"
- return 0
- else
- echo "Las claves no coinciden no se configura la clave del servidor de base de datos."
- echo "las operaciones con la base de datos daran error"
- return 1
- fi
- fi
-}
-
-# comprueba si puede conectar con mysql con el usuario root
-function mysqlTestConnection()
-{
- if [ $# -ne 1 ]; then
- errorAndLog "mysqlTestConnection(): invalid number of parameters"
- exit 1
- fi
-
- local root_password="${1}"
- echoAndLog "mysqlTestConnection(): checking connection to mysql..."
- echo "" | mysql -uroot -p"${root_password}"
- if [ $? -ne 0 ]; then
- errorAndLog "mysqlTestConnection(): connection to mysql failed, check root password and if daemon is running!"
- return 1
- else
- echoAndLog "mysqlTestConnection(): connection success"
- return 0
- fi
-}
-
-# comprueba si la base de datos existe
-function mysqlDbExists()
-{
- if [ $# -ne 2 ]; then
- errorAndLog "mysqlDbExists(): invalid number of parameters"
- exit 1
- fi
-
- local root_password="${1}"
- local database=$2
- echoAndLog "mysqlDbExists(): checking if $database exists..."
- echo "show databases" | mysql -uroot -p"${root_password}" | grep "^${database}$"
- if [ $? -ne 0 ]; then
- echoAndLog "mysqlDbExists():database $database doesn't exists"
- return 1
- else
- echoAndLog "mysqlDbExists():database $database exists"
- return 0
- fi
-}
-
-function mysqlCheckDbIsEmpty()
-{
- if [ $# -ne 2 ]; then
- errorAndLog "mysqlCheckDbIsEmpty(): invalid number of parameters"
- exit 1
- fi
-
- local root_password="${1}"
- local database=$2
- echoAndLog "mysqlCheckDbIsEmpty(): checking if $database is empty..."
- num_tablas=`echo "show tables" | mysql -uroot -p"${root_password}" "${database}" | wc -l`
- if [ $? -ne 0 ]; then
- errorAndLog "mysqlCheckDbIsEmpty(): error executing query, check database and root password"
- exit 1
- fi
-
- if [ $num_tablas -eq 0 ]; then
- echoAndLog "mysqlCheckDbIsEmpty():database $database is empty"
- return 0
- else
- echoAndLog "mysqlCheckDbIsEmpty():database $database has tables"
- return 1
- fi
-
-}
-
-
-function mysqlImportSqlFileToDb()
-{
- if [ $# -ne 3 ]; then
- errorAndLog "${FNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- local root_password="${1}"
- local database=$2
- local sqlfile=$3
-
- if [ ! -f $sqlfile ]; then
- errorAndLog "${FUNCNAME}(): Unable to locate $sqlfile!!"
- return 1
- fi
-
- echoAndLog "${FUNCNAME}(): importing sql file to ${database}..."
- perl -pi -e "s/SERVERIP/$SERVERIP/g; s/DEFAULTUSER/$OPENGNSYS_DB_DEFAULTUSER/g; s/DEFAULTPASSWD/$OPENGNSYS_DB_DEFAULTPASSWD/g" $sqlfile
- mysql -uroot -p"${root_password}" --default-character-set=utf8 "${database}" < $sqlfile
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while importing $sqlfile in database $database"
- return 1
- fi
- echoAndLog "${FUNCNAME}(): file imported to database $database"
- return 0
-}
-
-# Crea la base de datos
-function mysqlCreateDb()
-{
- if [ $# -ne 2 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- local root_password="${1}"
- local database=$2
-
- echoAndLog "${FUNCNAME}(): creating database..."
- mysqladmin -u root --password="${root_password}" create $database
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while creating database $database"
- return 1
- fi
- echoAndLog "${FUNCNAME}(): database $database created"
- return 0
-}
-
-
-function mysqlCheckUserExists()
-{
- if [ $# -ne 2 ]; then
- errorAndLog "mysqlCheckUserExists(): invalid number of parameters"
- exit 1
- fi
-
- local root_password="${1}"
- local userdb=$2
-
- echoAndLog "mysqlCheckUserExists(): checking if $userdb exists..."
- echo "select user from user where user='${userdb}'\\G" |mysql -uroot -p"${root_password}" mysql | grep user
- if [ $? -ne 0 ]; then
- echoAndLog "mysqlCheckUserExists(): user doesn't exists"
- return 1
- else
- echoAndLog "mysqlCheckUserExists(): user already exists"
- return 0
- fi
-
-}
-
-# Crea un usuario administrativo para la base de datos
-function mysqlCreateAdminUserToDb()
-{
- if [ $# -ne 4 ]; then
- errorAndLog "mysqlCreateAdminUserToDb(): invalid number of parameters"
- exit 1
- fi
-
- local root_password=$1
- local database=$2
- local userdb=$3
- local passdb=$4
-
- echoAndLog "mysqlCreateAdminUserToDb(): creating admin user ${userdb} to database ${database}"
-
- cat > $WORKDIR/create_${database}.sql <<EOF
-GRANT USAGE ON *.* TO '${userdb}'@'localhost' IDENTIFIED BY '${passdb}' ;
-GRANT ALL PRIVILEGES ON ${database}.* TO '${userdb}'@'localhost' WITH GRANT OPTION ;
-FLUSH PRIVILEGES ;
-EOF
- mysql -u root --password=${root_password} < $WORKDIR/create_${database}.sql
- if [ $? -ne 0 ]; then
- errorAndLog "mysqlCreateAdminUserToDb(): error while creating user in mysql"
- rm -f $WORKDIR/create_${database}.sql
- return 1
- else
- echoAndLog "mysqlCreateAdminUserToDb(): user created ok"
- rm -f $WORKDIR/create_${database}.sql
- return 0
- fi
-}
-
-
-#####################################################################
-####### Funciones para el manejo de Subversion
-#####################################################################
-
-function svnExportCode()
-{
- if [ $# -ne 1 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- local url=$1
-
- echoAndLog "${FUNCNAME}(): downloading subversion code..."
-
- svn export "${url}" opengnsys
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error getting code from ${url}, verify your user and password"
- return 1
- fi
- echoAndLog "${FUNCNAME}(): subversion code downloaded"
- return 0
-}
-
-
-############################################################
-### Detectar red
-############################################################
-
-function getNetworkSettings()
-{
- # Variables globales definidas:
- # - SERVERIP: IP local del servidor.
- # - NETIP: IP de la red.
- # - NETMASK: máscara de red.
- # - NETBROAD: IP de difusión de la red.
- # - ROUTERIP: IP del router.
- # - DNSIP: IP del servidor DNS.
-
- local MAINDEV
-
- echoAndLog "${FUNCNAME}(): Detecting default network parameters."
- MAINDEV=$(ip -o link show up | awk '!/loopback/ {d=d$2} END {sub(/:.*/,"",d); print d}')
- if [ -z "$MAINDEV" ]; then
- errorAndLog "${FUNCNAME}(): Network device not detected."
- exit 1
- fi
- SERVERIP=$(ip -o addr show dev $MAINDEV | awk '$3~/inet$/ {sub (/\/.*/, ""); print ($4)}')
- NETMASK=$(LANG=C ifconfig $MAINDEV | awk '/Mask/ {sub(/.*:/,"",$4); print $4}')
- NETBROAD=$(ip -o addr show dev $MAINDEV | awk '$3~/inet$/ {print ($6)}')
- NETIP=$(netstat -nr | grep $MAINDEV | awk '$1!~/0\.0\.0\.0/ {if (n=="") n=$1} END {print n}')
- ROUTERIP=$(netstat -nr | awk '$1~/0\.0\.0\.0/ {print $2}')
- DNSIP=$(awk '/nameserver/ {print $2}' /etc/resolv.conf | head -n1)
- if [ -z "$NETIP" -o -z "$NETMASK" ]; then
- errorAndLog "${FUNCNAME}(): Network not detected."
- exit 1
- fi
-
- # Variables de ejecución de Apache
- # - APACHE_RUN_USER
- # - APACHE_RUN_GROUP
- if [ -f /etc/apache2/envvars ]; then
- source /etc/apache2/envvars
- fi
- APACHE_RUN_USER=${APACHE_RUN_USER:-"www-data"}
- APACHE_RUN_GROUP=${APACHE_RUN_GROUP:-"www-data"}
-}
-
-
-############################################################
-### Esqueleto para el Servicio pxe y contenedor tftpboot ###
-############################################################
-
-function tftpConfigure() {
- echo "Configurando el servicio tftp"
- basetftp=/var/lib/tftpboot
-
- # reiniciamos demonio internet ????? porque ????
- /etc/init.d/openbsd-inetd start
-
- # preparacion contenedor tftpboot
- cp -pr /usr/lib/syslinux/ ${basetftp}/syslinux
- cp /usr/lib/syslinux/pxelinux.0 ${basetftp}
- # prepamos el directorio de la configuracion de pxe
- mkdir -p ${basetftp}/pxelinux.cfg
- cat > ${basetftp}/pxelinux.cfg/default <<EOF
-DEFAULT pxe
-
-LABEL pxe
-KERNEL linux
-APPEND initrd=initrd.gz ip=dhcp ro vga=788 irqpoll acpi=on
-EOF
- # comprobamos el servicio tftp
- sleep 1
- testPxe
- ## damos perfimos de lectura a usuario web.
- chown -R $APACHE_RUN_USER:$APACHE_RUN_GROUP ${basetftp}
-}
-
-function testPxe () {
- cd /tmp
- echo "comprobando servicio pxe ..... Espere"
- tftp -v localhost -c get pxelinux.0 /tmp/pxelinux.0 && echo "servidor tftp OK" || echo "servidor tftp KO"
- cd /
-}
-
-########################################################################
-## Configuracion servicio NFS
-########################################################################
-
-# ADVERTENCIA: usa variables globales NETIP y NETMASK!
-function nfsConfigure()
-{
- echoAndLog "${FUNCNAME}(): Config nfs server."
-
- backupFile /etc/exports
-
- nfsAddExport /opt/opengnsys/client ${NETIP}/${NETMASK}:ro,no_subtree_check,no_root_squash,sync
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while adding nfs client config"
- return 1
- fi
-
- nfsAddExport /opt/opengnsys/images ${NETIP}/${NETMASK}:rw,no_subtree_check,no_root_squash,sync,crossmnt
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while adding nfs images config"
- return 1
- fi
-
- nfsAddExport /opt/opengnsys/log/clients ${NETIP}/${NETMASK}:rw,no_subtree_check,no_root_squash,sync
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while adding logging client config"
- return 1
- fi
-
- /etc/init.d/nfs-kernel-server restart
-
- exportfs -va
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while configure exports"
- return 1
- fi
-
- echoAndLog "${FUNCNAME}(): Added NFS configuration to file \"/etc/exports\"."
- return 0
-}
-
-
-# ejemplos:
-#nfsAddExport /opt/opengnsys 192.168.0.0/255.255.255.0:ro,no_subtree_check,no_root_squash,sync
-#nfsAddExport /opt/opengnsys 192.168.0.0/255.255.255.0
-#nfsAddExport /opt/opengnsys 80.20.2.1:ro 192.123.32.2:rw
-function nfsAddExport()
-{
- if [ $# -lt 2 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- if [ ! -f /etc/exports ]; then
- errorAndLog "${FUNCNAME}(): /etc/exports don't exists"
- return 1
- fi
-
- local export="${1}"
- local contador=0
- local cadenaexport
-
- grep "^${export}" /etc/exports > /dev/null
- if [ $? -eq 0 ]; then
- echoAndLog "${FUNCNAME}(): $export exists in /etc/exports, omiting"
- return 0
- fi
-
- cadenaexport="${export}"
- for parametro in $*
- do
- if [ $contador -gt 0 ]
- then
- host=`echo $parametro | awk -F: '{print $1}'`
- options=`echo $parametro | awk -F: '{print $2}'`
- if [ "${host}" == "" ]; then
- errorAndLog "${FUNCNAME}(): host can't be empty"
- return 1
- fi
- cadenaexport="${cadenaexport}\t${host}"
-
- if [ "${options}" != "" ]; then
- cadenaexport="${cadenaexport}(${options})"
- fi
- fi
- let contador=contador+1
- done
-
- echo -en "$cadenaexport\n" >> /etc/exports
-
- echoAndLog "${FUNCNAME}(): add $export to /etc/exports"
-
- return 0
-}
-
-########################################################################
-## Configuracion servicio DHCP
-########################################################################
-
-function dhcpConfigure()
-{
- echoAndLog "${FUNCNAME}(): Sample DHCP Configuration."
-
- backupFile /etc/dhcp3/dhcpd.conf
-
- sed -e "s/SERVERIP/$SERVERIP/g" \
- -e "s/NETIP/$NETIP/g" \
- -e "s/NETMASK/$NETMASK/g" \
- -e "s/NETBROAD/$NETBROAD/g" \
- -e "s/ROUTERIP/$ROUTERIP/g" \
- -e "s/DNSIP/$DNSIP/g" \
- $WORKDIR/opengnsys/server/DHCP/dhcpd.conf > /etc/dhcp3/dhcpd.conf
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while configuring dhcp server"
- return 1
- fi
-
- /etc/init.d/dhcp3-server restart
- echoAndLog "${FUNCNAME}(): Sample DHCP Configured in file \"/etc/dhcp3/dhcpd.conf\"."
- return 0
-}
-
-
-#####################################################################
-####### Funciones específicas de la instalación de Opengnsys
-#####################################################################
-
-# Copiar ficheros del OpenGnSys Web Console.
-function installWebFiles()
-{
- echoAndLog "${FUNCNAME}(): Installing web files..."
- cp -ar $WORKDIR/opengnsys/admin/WebConsole/* $INSTALL_TARGET/www #*/ comentario para doxigen
- if [ $? != 0 ]; then
- errorAndLog "${FUNCNAME}(): Error copying web files."
- exit 1
- fi
- find $INSTALL_TARGET/www -name .svn -type d -exec rm -fr {} \; 2>/dev/null
- # Cambiar permisos para ficheros especiales.
- chown -R $APACHE_RUN_USER:$APACHE_RUN_GROUP \
- $INSTALL_TARGET/www/includes \
- $INSTALL_TARGET/www/comandos/gestores/filescripts \
- $INSTALL_TARGET/www/images/iconos
- echoAndLog "${FUNCNAME}(): Web files installed successfully."
-}
-
-# Configuración específica de Apache.
-function openGnsysInstallWebConsoleApacheConf()
-{
- if [ $# -ne 2 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- local path_opengnsys_base=$1
- local path_apache2_confd=$2
- local path_web_console=${path_opengnsys_base}/www
-
- if [ ! -d $path_apache2_confd ]; then
- errorAndLog "${FUNCNAME}(): path to apache2 conf.d can not found, verify your server installation"
- return 1
- fi
-
- mkdir -p $path_apache2_confd/{sites-available,sites-enabled}
-
- echoAndLog "${FUNCNAME}(): creating apache2 config file.."
-
-
- # genera configuración
- cat > $path_opengnsys_base/etc/apache.conf <<EOF
-# OpenGnSys Web Console configuration for Apache
-
-Alias /opengnsys ${path_web_console}
-
-<Directory ${path_web_console}>
- Options -Indexes FollowSymLinks
- DirectoryIndex acceso.php
-</Directory>
-EOF
-
- ln -fs $path_opengnsys_base/etc/apache.conf $path_apache2_confd/sites-available/opengnsys.conf
- ln -fs $path_apache2_confd/sites-available/opengnsys.conf $path_apache2_confd/sites-enabled/opengnsys.conf
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): config file can't be linked to apache conf, verify your server installation"
- return 1
- else
- echoAndLog "${FUNCNAME}(): config file created and linked, restarting apache daemon"
- /etc/init.d/apache2 restart
- return 0
- fi
-}
-
-# Crear documentación Doxygen para la consola web.
-function makeDoxygenFiles()
-{
- echoAndLog "${FUNCNAME}(): Making Doxygen web files..."
- $WORKDIR/opengnsys/installer/ogGenerateDoc.sh \
- $WORKDIR/opengnsys/client/engine $INSTALL_TARGET/www
- if [ ! -d "$INSTALL_TARGET/www/html" ]; then
- errorAndLog "${FUNCNAME}(): unable to create Doxygen web files."
- return 1
- fi
- mv "$INSTALL_TARGET/www/html" "$INSTALL_TARGET/www/api"
- chown -R $APACHE_RUN_USER:$APACHE_RUN_GROUP $INSTALL_TARGET/www/api
- echoAndLog "${FUNCNAME}(): Doxygen web files created successfully."
-}
-
-
-# Crea la estructura base de la instalación de opengnsys
-function openGnsysInstallCreateDirs()
-{
- if [ $# -ne 1 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- local path_opengnsys_base=$1
-
- echoAndLog "${FUNCNAME}(): creating directory paths in $path_opengnsys_base"
-
- mkdir -p $path_opengnsys_base
- mkdir -p $path_opengnsys_base/admin/{autoexec,comandos,menus,usuarios}
- mkdir -p $path_opengnsys_base/bin
- mkdir -p $path_opengnsys_base/client
- mkdir -p $path_opengnsys_base/doc
- mkdir -p $path_opengnsys_base/etc
- mkdir -p $path_opengnsys_base/lib
- mkdir -p $path_opengnsys_base/log/clients
- mkdir -p $path_opengnsys_base/sbin
- mkdir -p $path_opengnsys_base/www
- mkdir -p $path_opengnsys_base/images
- ln -fs /var/lib/tftpboot $path_opengnsys_base
- ln -fs $path_opengnsys_base/log /var/log/opengnsys
-
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while creating dirs. Do you have write permissions?"
- return 1
- fi
-
- echoAndLog "${FUNCNAME}(): directory paths created"
- return 0
-}
-
-# Copia ficheros de configuración y ejecutables genéricos del servidor.
-function openGnsysCopyServerFiles () {
- if [ $# -ne 1 ]; then
- errorAndLog "${FUNCNAME}(): invalid number of parameters"
- exit 1
- fi
-
- local path_opengnsys_base=$1
-
- local SOURCES=( client/boot/initrd-generator \
- client/boot/upgrade-clients-udeb.sh \
- client/boot/udeblist.conf \
- client/boot/udeblist-jaunty.conf \
- client/boot/udeblist-karmic.conf \
- client/boot/udeblist-lucid.conf \
- server/PXE/pxelinux.cfg/default \
- doc )
- local TARGETS=( bin/initrd-generator \
- bin/upgrade-clients-udeb.sh \
- etc/udeblist.conf \
- etc/udeblist-jaunty.conf \
- etc/udeblist-karmic.conf \
- etc/udeblist-lucid.conf \
- tftpboot/pxelinux.cfg/default \
- doc )
-
- if [ ${#SOURCES[@]} != ${#TARGETS[@]} ]; then
- errorAndLog "${FUNCNAME}(): inconsistent number of array items"
- exit 1
- fi
-
- echoAndLog "${FUNCNAME}(): copying files to server directories"
-
- pushd $WORKDIR/opengnsys
- local i
- for (( i = 0; i < ${#SOURCES[@]}; i++ )); do
- if [ -f "${SOURCES[$i]}" ]; then
- echoAndLog "Copying ${SOURCES[$i]} to $path_opengnsys_base/${TARGETS[$i]}"
- cp -p "${SOURCES[$i]}" "${path_opengnsys_base}/${TARGETS[$i]}"
- elif [ -d "${SOURCES[$i]}" ]; then
- echoAndLog "Copying content of ${SOURCES[$i]} to $path_opengnsys_base/${TARGETS[$i]}"
- cp -a "${SOURCES[$i]}"/* "${path_opengnsys_base}/${TARGETS[$i]}"
- else
- echoAndLog "Warning: Unable to copy ${SOURCES[$i]} to $path_opengnsys_base/${TARGETS[$i]}"
- fi
- done
- popd
-}
-
-####################################################################
-### Funciones de compilación de códifo fuente de servicios
-####################################################################
-
-# Compilar los servicios de OpenGNsys
-function servicesCompilation ()
-{
- local hayErrores=0
-
- # Compilar OpenGnSys Server
- echoAndLog "${FUNCNAME}(): Compiling OpenGnSys Admin Server"
- pushd $WORKDIR/opengnsys/admin/Services/ogAdmServer
- make && make install
- if [ $? -ne 0 ]; then
- echoAndLog "${FUNCNAME}(): error while compiling OpenGnSys Admin Server"
- hayErrores=1
- fi
- popd
- # Compilar OpenGnSys Repository Manager
- echoAndLog "${FUNCNAME}(): Compiling OpenGnSys Repository Manager"
- pushd $WORKDIR/opengnsys/admin/Services/ogAdmRepo
- make && make install
- if [ $? -ne 0 ]; then
- echoAndLog "${FUNCNAME}(): error while compiling OpenGnSys Repository Manager"
- hayErrores=1
- fi
- popd
- # Compilar OpenGnSys Client
- echoAndLog "${FUNCNAME}(): Compiling OpenGnSys Admin Client"
- pushd $WORKDIR/opengnsys/admin/Services/ogAdmClient
- make && mv ogAdmClient ../../../client/nfsexport/bin
- if [ $? -ne 0 ]; then
- echoAndLog "${FUNCNAME}(): error while compiling OpenGnSys Admin Client"
- hayErrores=1
- fi
- popd
-
- return $hayErrores
-}
-
-
-####################################################################
-### Funciones instalacion cliente opengnsys
-####################################################################
-
-function openGnsysClientCreate()
-{
- local OSDISTRIB OSCODENAME
-
- local hayErrores=0
-
- echoAndLog "${FUNCNAME}(): Copying OpenGnSys Client files."
- cp -ar $WORKDIR/opengnsys/client/nfsexport/* $INSTALL_TARGET/client
- find $INSTALL_TARGET/client -name .svn -type d -exec rm -fr {} \; 2>/dev/null
- echoAndLog "${FUNCNAME}(): Copying OpenGnSys Cloning Engine files."
- mkdir -p $INSTALL_TARGET/client/lib/engine/bin
- cp -ar $WORKDIR/opengnsys/client/engine/*.lib $INSTALL_TARGET/client/lib/engine/bin
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while copying engine files"
- hayErrores=1
- fi
-
- # Cargar Kernel, Initrd y paquetes udeb para la distribución del servidor (o por defecto).
- OSDISTRIB=$(lsb_release -i | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
- OSCODENAME=$(lsb_release -c | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
- if [ "$OSDISTRIB" = "Ubuntu" -a -n "$OSCODENAME" ]; then
- echoAndLog "${FUNCNAME}(): Loading Kernel and Initrd files for $OSDISTRIB $OSCODENAME."
- $INSTALL_TARGET/bin/initrd-generator -t $INSTALL_TARGET/tftpboot -v "$OSCODENAME"
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while generating initrd OpenGnSys Admin Client"
- hayErrores=1
- fi
- echoAndLog "${FUNCNAME}(): Loading udeb files for $OSDISTRIB $OSCODENAME."
- $INSTALL_TARGET/bin/upgrade-clients-udeb.sh "$OSCODENAME"
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while upgrading udeb files OpenGnSys Admin Client"
- hayErrores=1
- fi
- else
- echoAndLog "${FUNCNAME}(): Loading default Kernel and Initrd files."
- $INSTALL_TARGET/bin/initrd-generator -t $INSTALL_TARGET/tftpboot/
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while generating initrd OpenGnSys Admin Client"
- hayErrores=1
- fi
- echoAndLog "${FUNCNAME}(): Loading default udeb files."
- $INSTALL_TARGET/bin/upgrade-clients-udeb.sh
- if [ $? -ne 0 ]; then
- errorAndLog "${FUNCNAME}(): error while upgrading udeb files OpenGnSys Admin Client"
- hayErrores=1
- fi
- fi
-
- if [ $hayErrores -eq 0 ]; then
- echoAndLog "${FUNCNAME}(): Client generation success."
- else
- errorAndLog "${FUNCNAME}(): Client generation with errors"
- fi
-
- return $hayErrores
-}
-
-
-# Configuración básica de servicios de OpenGnSys
-function openGnsysConfigure()
-{
- echoAndLog "openGnsysConfigure(): Copying init files."
- cp -p $WORKDIR/opengnsys/admin/Services/opengnsys.init /etc/init.d/opengnsys
- cp -p $WORKDIR/opengnsys/admin/Services/opengnsys.default /etc/default/opengnsys
- update-rc.d opengnsys defaults
- echoAndLog "openGnsysConfigure(): Creating OpenGnSys config file in \"$INSTALL_TARGET/etc\"."
- perl -pi -e "s/SERVERIP/$SERVERIP/g" $INSTALL_TARGET/etc/ogAdmServer.cfg
- perl -pi -e "s/SERVERIP/$SERVERIP/g" $INSTALL_TARGET/etc/ogAdmRepo.cfg
- echoAndLog "${FUNCNAME}(): Creating Web Console config file"
- OPENGNSYS_CONSOLEURL="http://$SERVERIP/opengnsys"
- perl -pi -e "s/SERVERIP/$SERVERIP/g; s/OPENGNSYSURL/${OPENGNSYS_CONSOLEURL//\//\\/}/g" $INSTALL_TARGET/www/controlacceso.php
- sed -e "s/SERVERIP/$SERVERIP/g" -e "s/OPENGNSYSURL/${OPENGNSYS_CONSOLEURL//\//\\/}/g" $WORKDIR/opengnsys/admin/Services/ogAdmClient/ogAdmClient.cfg > $INSTALL_TARGET/client/etc/ogAdmClient.cfg
- echoAndLog "openGnsysConfiguration(): Starting OpenGnSys services."
- /etc/init.d/opengnsys start
-}
-
-
-#####################################################################
-####### Función de resumen informativo de la instalación
-#####################################################################
-
-function installationSummary(){
- echo
- echoAndLog "OpenGnSys Installation Summary"
- echo "=============================="
- echoAndLog "Project version: $(cat $INSTALL_TARGET/doc/VERSION.txt 2>/dev/null)"
- echoAndLog "Installation directory: $INSTALL_TARGET"
- echoAndLog "Repository directory: $INSTALL_TARGET/images"
- echoAndLog "TFTP configuracion directory: /var/lib/tftpboot"
- echoAndLog "DHCP configuracion file: /etc/dhcp3/dhcpd.conf"
- echoAndLog "NFS configuracion file: /etc/exports"
- echoAndLog "Web Console URL: $OPENGNSYS_CONSOLEURL"
- echoAndLog "Web Console admin user: $OPENGNSYS_DB_USER"
- echoAndLog "Web Console admin password: $OPENGNSYS_DB_PASSWD"
- echoAndLog "Web Console default user: $OPENGNSYS_DB_DEFAULTUSER"
- echoAndLog "Web Console default password: $OPENGNSYS_DB_DEFAULTPASSWD"
- echo
- echoAndLog "Post-Installation Instructions:"
- echo "==============================="
- echoAndLog "Review or edit all configuration files."
- echoAndLog "Insert DHCP configuration data and restart service."
- echoAndLog "Log-in as Web Console admin user."
- echoAndLog " - Review default Organization data and default user."
- echoAndLog "Log-in as Web Console organization user."
- echoAndLog " - Insert OpenGnSys data (rooms, computers, etc)."
-echo
-}
-