summaryrefslogtreecommitdiffstats
path: root/client/boot-tools/boottoolsfunctions.lib
diff options
context:
space:
mode:
Diffstat (limited to 'client/boot-tools/boottoolsfunctions.lib')
-rwxr-xr-xclient/boot-tools/boottoolsfunctions.lib102
1 files changed, 72 insertions, 30 deletions
diff --git a/client/boot-tools/boottoolsfunctions.lib b/client/boot-tools/boottoolsfunctions.lib
index d0ede9cd..308c5a77 100755
--- a/client/boot-tools/boottoolsfunctions.lib
+++ b/client/boot-tools/boottoolsfunctions.lib
@@ -4,7 +4,7 @@
#@brief Librería o clase Boot-Tools
#@class Boot-Tools
#@brief Funciones para generar un sistema operativo cliente para opengnsys
-#@version 1.0.5
+#@version 1.1.0
#@warning License: GNU GPLv3+
#*/
@@ -23,8 +23,12 @@ 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
+if [ "$OSARCH" = "i386" ]; then
+ # tamaño maximo limitado por schroot 2GB para 32 bits
+ export BTVIRTUALDISKSIZE=2000
+else
+ export BTVIRTUALDISKSIZE="3G"
+fi
export BTROOTFSIMGLABEL=ogClient
export LOG_FILE=/tmp/boot-tools_installation.log
@@ -55,6 +59,13 @@ case "${1,,}" in
OSARCH="i386"
OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
;;
+ wheezy) # ogLive basado en Debian 7.3.
+ OSDISTRIB="debian"
+ OSCODENAME="wheezy"
+ OSRELEASE="3.2.0-4-i386"
+ OSARCH="i386"
+ OSHTTP="http://ftp.es.debian.org/debian/"
+ ;;
quantal) # ogLive 1.0.5-rc2 basado en Ubuntu 12.10 con Kernel descargado.
OSDISTRIB="ubuntu"
OSCODENAME="quantal"
@@ -69,13 +80,6 @@ case "${1,,}" in
OSARCH="i386"
OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
;;
- wheezy) # ogLive basado en Debian 7.3.
- OSDISTRIB="debian"
- OSCODENAME="wheezy"
- OSRELEASE="3.2.0-4-i386"
- OSARCH="i386"
- OSHTTP="http://ftp.es.debian.org/debian/"
- ;;
trusty) # ogLive 1.0.5-rc4 basado en Ubuntu 14.04.
OSDISTRIB="ubuntu"
OSCODENAME="trusty"
@@ -83,23 +87,53 @@ case "${1,,}" in
OSARCH="i386"
OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
;;
- host | *) # ogLive basado en la distribución del servidor.
+ vivid) # ogLive 1.1.0-rc2 basado en Ubuntu 15.04.
+ OSDISTRIB="ubuntu"
+ OSCODENAME="vivid"
+ OSRELEASE="3.19.0-49-generic"
+ OSARCH="i386"
+ OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
+ ;;
+ wily) # ogLive 1.1.0-rc1 basado en Ubuntu 15.10.
+ OSDISTRIB="ubuntu"
+ OSCODENAME="wily"
+ OSRELEASE="4.2.0-35-generic"
+ OSARCH="i386"
+ OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
+ ;;
+ xenial|xenial-4.4) # ogLive 1.1.0-rc4 basado en Ubuntu 16.04 y Kernel 4.4.
+ OSDISTRIB="ubuntu"
+ OSCODENAME="xenial"
+ OSRELEASE="4.4.0-34-generic"
+ OSARCH="i386"
+ OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
+ ;;
+ xenial-4.8) # ogLive 1.1.0-rc5 basado en Ubuntu 16.04 y Kernel 4.8.
+ OSDISTRIB="ubuntu"
+ OSCODENAME="xenial"
+ OSRELEASE="4.8.0-39-generic"
+ OSARCH="amd64"
+ OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
+ ;;
+ host) # ogLive basado en la distribución del servidor.
OSDISTRIB=$(lsb_release -is)
OSCODENAME=$(lsb_release -cs)
- OSRELEASE=$(uname -a | awk '{print $3}')
- #uname -a | grep x86_64 > /dev/null && OSARCH="amd64" || OSARCH="i386"
- OSARCH="i386"
+ OSRELEASE=$(uname -r)
+ OSARCH=$(dpkg --print-architecture)
export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
;;
+ *) # Parámetro desconocido
+ echo "Parámetro no válido."
+ exit 1
+ ;;
esac
-SVNURL="http://opengnsys.es/svn/trunk/client"
+SVNURL="https://opengnsys.es/svn/trunk/client"
VERSIONSVN=$(LANG=C svn info $SVNURL | awk '/Rev:/ {print "r"$4}')
-NAMEISOCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$OSRELEASE-$VERSIONSVN"
+NAMEISOCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$OSRELEASE-$OSARCH-$VERSIONSVN"
NAMEHOSTCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$VERSIONSVN"
export OSDISTRIB OSCODENAME OSRELEASE OSARCH OSHTTP
export TYPECLIENT VERSIONSVN NAMEISOCLIENT NAMEHOSTCLIENT
### El fichero de configuración debe sustituir a estos 3 ficheros (borrar las 3 líneas siguientes).
-echo "$VERSIONSVN" > /tmp/versionsvn.txt
echo "$NAMEISOCLIENT" > /tmp/opengnsys_info_rootfs
echo "$NAMEHOSTCLIENT" > /tmp/opengnsys_chroot
# Generar fichero de configuración.
@@ -151,10 +185,12 @@ fi
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
+if [ "$OSARCH" = "i386" ]; then
+ dd if=/dev/zero of=$BTROOTFSIMG bs=1048576 count=$BTVIRTUALDISKSIZE
#dd if=/dev/zero of=$BTROOTFSIMG bs=1k count=$OGCLIENTSIZEKB # necesita 500MB
-
+else
+ qemu-img create $BTROOTFSIMG $BTVIRTUALDISKSIZE
+fi
if [ $? -ne 0 ]
then
errorAndLog "$FUNCNAME(): Creando el disco virtual con tamaño maxima $BTVIRTUALDISKSIZE MB : ERROR"
@@ -367,16 +403,22 @@ btogGetVar
#Preparamos los gestores de arranque
mkdir -p /tmp/iso/isolinux
cp -av /usr/lib/syslinux/* /tmp/iso/isolinux/
-cp -av /usr/share/gpxe/* /tmp/iso/isolinux/
+if [ -d /usr/share/gpxe ]; then
+ cp -av /usr/share/gpxe/* /tmp/iso/isolinux
+ PXE=gpxe
+elif [ -d /usr/lib/ipxe ]; then
+ cp -av /usr/lib/ipxe/* /tmp/iso/isolinux
+ PXE=ipxe
+fi
-# Si existe isolinux/gpxe.iso, montarlo para extraer isolinux.bin.
-if [ -f /tmp/iso/isolinux/gpxe.iso ]; then
+# Si existe el fichero ISO, montarlo para extraer isolinux.bin.
+if [ -f /tmp/iso/isolinux/$PXE.iso ]; then
mkdir -p /tmp/iso/isolinux/mount
- mount -o loop /tmp/iso/isolinux/gpxe.iso /tmp/iso/isolinux/mount
+ mount -o loop /tmp/iso/isolinux/$PXE.iso /tmp/iso/isolinux/mount
cp -va /tmp/iso/isolinux/mount/* /tmp/iso/isolinux
umount /tmp/iso/isolinux/mount
rmdir /tmp/iso/isolinux/mount
- rm -f /tmp/iso/isolinux/gpxe.iso
+ rm -f /tmp/iso/isolinux/$PXE.iso
fi
cat << FIN > /tmp/iso/isolinux/isolinux.cfg
@@ -414,22 +456,22 @@ append -
label 5
MENU LABEL Network boot via gPXE lkrn
-KERNEL gpxe.lkrn
+KERNEL $PXE.lkrn
label 6
MENU LABEL Network boot via gPXE usb
-KERNEL gpxe.usb
+KERNEL $PXE.usb
label 7
MENU LABEL Network boot via gPXE pxe
-KERNEL gpxe.pxe
+KERNEL $PXE.pxe
label 8
MENU LABEL Network boot via gPXE iso
-KERNEL gpxe.iso
+KERNEL $PXE.iso
label 9
-MENU LABEL gpxe
+MENU LABEL pxe
KERNEL /clonezilla/live/vmlinuz1
APPEND initrd=/clonezilla/live/initrd1.img boot=live union=aufs noswap vga=788 ip=frommedia
FIN