summaryrefslogtreecommitdiffstats
path: root/client/boot-tools/clientstructure/etc
diff options
context:
space:
mode:
authoradv <adv@uma.es>2011-04-08 14:01:38 +0000
committeradv <adv@uma.es>2011-04-08 14:01:38 +0000
commitb1ccf9b2968d3f0fe0f159b7fd75fa84454d3854 (patch)
treee5afb79a4a905de89231e4c5195b0768824c6b94 /client/boot-tools/clientstructure/etc
parent58828de3313e571cf3559716e832f61e246383ac (diff)
version1.0 renombrando ogclient boot-tools
git-svn-id: https://opengnsys.es/svn/branches/version1.0@1764 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/boot-tools/clientstructure/etc')
-rw-r--r--client/boot-tools/clientstructure/etc/apt/sources.list.debian4
-rw-r--r--client/boot-tools/clientstructure/etc/apt/sources.list.ubuntu56
-rw-r--r--client/boot-tools/clientstructure/etc/environment4
-rw-r--r--client/boot-tools/clientstructure/etc/fstab13
-rwxr-xr-xclient/boot-tools/clientstructure/etc/initramfs-tools/hooks/oghooks58
-rw-r--r--client/boot-tools/clientstructure/etc/initramfs-tools/modules14
-rw-r--r--client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions427
-rwxr-xr-xclient/boot-tools/clientstructure/etc/initramfs-tools/scripts/oginit111
-rw-r--r--client/boot-tools/clientstructure/etc/inittab14
-rw-r--r--client/boot-tools/clientstructure/etc/modprobe.d/blacklist-framebuffer.conf30
-rw-r--r--client/boot-tools/clientstructure/etc/mtab0
-rw-r--r--client/boot-tools/clientstructure/etc/network/interfaces4
-rwxr-xr-xclient/boot-tools/clientstructure/etc/profile.d/loadenviron.sh84
-rw-r--r--client/boot-tools/clientstructure/etc/ssh/ssh_config56
-rw-r--r--client/boot-tools/clientstructure/etc/ssh/sshd_config86
15 files changed, 961 insertions, 0 deletions
diff --git a/client/boot-tools/clientstructure/etc/apt/sources.list.debian b/client/boot-tools/clientstructure/etc/apt/sources.list.debian
new file mode 100644
index 00000000..495e48d4
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/apt/sources.list.debian
@@ -0,0 +1,4 @@
+deb http://ftp.us.debian.org/debian lenny main contrib non-free
+
+deb http://security.debian.org/ lenny/updates main contrib non-free
+deb-src http://security.debian.org/ lenny/updates main contrib non-free
diff --git a/client/boot-tools/clientstructure/etc/apt/sources.list.ubuntu b/client/boot-tools/clientstructure/etc/apt/sources.list.ubuntu
new file mode 100644
index 00000000..29348ccc
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/apt/sources.list.ubuntu
@@ -0,0 +1,56 @@
+deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME main restricted
+deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME main restricted
+## Major bug fix updates produced after the final release of the
+## distribution.
+deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-updates main restricted
+deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-updates main restricted
+## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
+## team. Also, please note that software in universe WILL NOT receive any
+## review or updates from the Ubuntu security team.
+deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME universe
+deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME universe
+deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-updates universe
+deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-updates universe
+
+## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
+## team, and may not be under a free licence. Please satisfy yourself as to
+## your rights to use the software. Also, please note that software in
+## multiverse WILL NOT receive any review or updates from the Ubuntu
+## security team.
+deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME multiverse
+deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME multiverse
+deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-updates multiverse
+deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-updates multiverse
+
+## Uncomment the following two lines to add software from the 'backports'
+## repository.
+## N.B. software from this repository may not have been tested as
+## extensively as that contained in the main release, although it includes
+## newer versions of some applications which may provide useful features.
+## Also, please note that software in backports WILL NOT receive any review
+## or updates from the Ubuntu security team.
+# deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-backports main restricted universe multiverse
+# deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-backports main restricted universe multiverse
+
+## Uncomment the following two lines to add software from Canonical's
+## 'partner' repository.
+## This software is not part of Ubuntu, but is offered by Canonical and the
+## respective vendors as a service to Ubuntu users.
+# deb http://archive.canonical.com/ubuntu OSCODENAME partner
+# deb-src http://archive.canonical.com/ubuntu OSCODENAME partner
+
+
+deb http://security.ubuntu.com/ubuntu OSCODENAME-security main restricted
+deb-src http://security.ubuntu.com/ubuntu OSCODENAME-security main restricted
+deb http://security.ubuntu.com/ubuntu OSCODENAME-security universe
+deb-src http://security.ubuntu.com/ubuntu OSCODENAME-security universe
+deb http://security.ubuntu.com/ubuntu OSCODENAME-security multiverse
+deb-src http://security.ubuntu.com/ubuntu OSCODENAME-security multiverse
+
+
+deb http://archive.ubuntu.com/ubuntu OSCODENAME main
+deb http://free.nchc.org.tw/drbl-core drbl stable
+deb http://free.nchc.org.tw/ubuntu OSCODENAME-security main restricted universe multiverse
+deb http://ppa.launchpad.net/freenx-team/ubuntu/ OSCODENAME main
+deb http://ppa.launchpad.net/randomaction/ppa/ubuntu OSCODENAME main
+deb-src http://ppa.launchpad.net/randomaction/ppa/ubuntu OSCODENAME main
diff --git a/client/boot-tools/clientstructure/etc/environment b/client/boot-tools/clientstructure/etc/environment
new file mode 100644
index 00000000..bb529d99
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/environment
@@ -0,0 +1,4 @@
+LC_TYPE=es_ES@euro
+LC_ALL=es_ES@euro
+LANG=es_ES@euro
+LANGUAGE=es_ES@euro \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/etc/fstab b/client/boot-tools/clientstructure/etc/fstab
new file mode 100644
index 00000000..d7473df4
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/fstab
@@ -0,0 +1,13 @@
+# /etc/fstab: static file system information.
+#
+# Use 'blkid -o value -s UUID' to print the universally unique identifier
+# for a device; this may be used with UUID= as a more robust way to name
+# devices that works even if disks are added and removed. See fstab(5).
+#
+# <file system> <mount point> <type> <options> <dump> <pass>
+proc /proc proc 0 0
+/dev/sda1 ext3 errors=remount-ro 0 1
+
+
+
+
diff --git a/client/boot-tools/clientstructure/etc/initramfs-tools/hooks/oghooks b/client/boot-tools/clientstructure/etc/initramfs-tools/hooks/oghooks
new file mode 100755
index 00000000..15fd01cc
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/initramfs-tools/hooks/oghooks
@@ -0,0 +1,58 @@
+#!/bin/sh -e
+# initramfs hook for OpenGnsys
+
+#@file oghooks
+#@brief configuración initrd para OpenGnSys
+#@warning
+#@version 0.9 - estrucura opengnsys, bash-static, unionfs, atheros
+#@author Antonio J. Doblas Viso.
+#@date 2010/05/24
+#*/
+
+PREREQ="og"
+
+# Output pre-requisites
+prereqs()
+{
+ echo "$PREREQ"
+}
+
+case "$1" in
+ prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+
+
+. /usr/share/initramfs-tools/hook-functions
+
+mkdir -p ${DESTDIR}/scripts/og-top
+mkdir -p ${DESTDIR}/scripts/og-premount
+mkdir -p ${DESTDIR}/scripts/og-bottom
+mkdir -p ${DESTDIR}/mnt/
+mkdir -p ${DESTDIR}/net/
+mkdir -p ${DESTDIR}/usr
+mkdir -p ${DESTDIR}/var/lock
+mkdir -p ${DESTDIR}/var/log
+mkdir -p ${DESTDIR}/opt/opengnsys;
+mkdir -p ${DESTDIR}/ogboot;
+mkdir -p ${DESTDIR}/boot;
+
+# Insert basic binaries
+copy_exec /bin/bash-static /bin/bash
+copy_exec /usr/bin/unionfs-fuse
+copy_exec /sbin/mount.cifs
+
+
+# Insert OpenGnsys Engine
+#mkdir -p ${DESTDIR}/opt/opengnsys/lib/engine
+#cp -prv /opt/opengnsys/client/lib/engine ${DESTDIR}/opt/opengnsys/lib/engine
+
+rm -fr ${DESTDIR}/lib/modules/2.6.32-21-generic-pae/kernel/drivers/net/atl*
+manual_add_modules cifs
+manual_add_modules smbfs
+manual_add_modules atl1e
+manual_add_modules squashfs
+
+
diff --git a/client/boot-tools/clientstructure/etc/initramfs-tools/modules b/client/boot-tools/clientstructure/etc/initramfs-tools/modules
new file mode 100644
index 00000000..8bac1d4b
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/initramfs-tools/modules
@@ -0,0 +1,14 @@
+# List of modules that you want to include in your initramfs.
+#
+# Syntax: module_name [args ...]
+#
+# You must run update-initramfs(8) to effect this change.
+#
+# Examples:
+#
+# raid1
+# sd_mod
+vga16b
+vesafb
+fbcon
+
diff --git a/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions b/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions
new file mode 100644
index 00000000..ce2716db
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/ogfunctions
@@ -0,0 +1,427 @@
+#@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 ()
+{
+ #puntos de accesos al servidor ogprotocol=nfs
+ export NFSROOTBOOT="/var/lib/tftpboot"
+ export NFSCLIENTDIR="/opt/opengnsys/client"
+ export NFSLOGDIR="/opt/opengnsys/log/clients"
+ export NFSIMGDIR="/opt/opengnsys/images"
+ #puntos de accesos al servidor ogprotocol=smb
+ export SMBROOTBOOT="tftpboot"
+ export SMBCLIENTDIR="ogclient"
+ export SMBLOGDIR="oglog"
+ export SMBIMGDIR="ogimages"
+
+ #puntos de montaje local ram o cache
+ export LOCALCLIENTDIR="/opt/opengnsys"
+ export LOCALLOGDIR="/opt/opengnsys/log"
+ export LOCALIMGDIR="/opt/opengnsys/images"
+ export LOCALROOTBOOT="/opt/og2fs/tftpboot" #punto de montaje del contendor tftpboot
+ export LOCALROOTIMG="/opt/og2fs/2ndfs" #punto de montaje donde se accede al 2nd FS mediante loop
+ export LOCALROOTRAM="/opt/og2fs/1stfs" #punto de montaje para unionfs
+ export LOCALROOTUNION="/opt/og2fs/unionfs" #punto de union entreo LOCALROOTIMG y LOCALROOTRAM
+ ##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
+}
+
+
+
+
+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
+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
+ cdrom)
+ echo "Montar imagen de CD-ROM"
+ blkid /dev/s*
+ mount -t iso9660 LABEL=ogClient $LOCALROOTBOOT
+ ;;
+ 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()
+{
+IP=$IPOPTS
+# http://paste.ubuntu.com/427631/ Paste from yofel at Tue, 4 May 2010 13:49:56 +0000
+ if [ -n "${BOOTIF}" ]; then
+ # pxelinux sets BOOTIF to a value based on the mac address of the
+ # network card used to PXE boot, so use this value for DEVICE rather
+ # than a hard-coded device name from initramfs.conf. this facilitates
+ # network booting when machines may have multiple network cards.
+ # pxelinux sets BOOTIF to 01-$mac_address
+
+ # strip off the leading "01-", which isn't part of the mac
+ # address
+ 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
+ fi
+
+ # networking already configured thus bail out
+ [ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ] && return 0
+
+ # 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)
+ # Do nothing
+ ;;
+ ""|on|any)
+ # Bring up device
+ echo "Setting $DEVICE with kernel params $IP: ipconfig -t ${ROUNDTTT} ${DEVICE} "
+ ipconfig -t ${ROUNDTTT} ${DEVICE}
+ ;;
+ dhcp|bootp|rarp|both)
+ echo "Setting $DEVICE with (dhcp) kernel params $IP: ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE} "
+ ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE}
+ ;;
+ *)
+ echo "Setting $DEVICE with kernel params $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
+ # source specific bootdevice
+ . /tmp/net-${DEVICE}.conf
+ 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/initramfs-tools/scripts/oginit b/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/oginit
new file mode 100755
index 00000000..a6c05d5e
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/initramfs-tools/scripts/oginit
@@ -0,0 +1,111 @@
+# OpenGnsys oginit -*- shell-script -*-
+
+#@file oginit
+#@brief Guion modificador inicio initrd para OpenGnSys
+#@warning
+#@version 0.1 - basado en ROOTfs
+#@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
+#@date 2010/00/00
+#@version 0.7 - Generación limpia con mkinitrd, busybox
+#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
+#@date 2010/05/24
+#@version 0.8 - Integración con FileSystem externo
+#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
+#@date 2010/06/24
+#@version 0.8.1 - UnionFS + squasfs
+#@author Antonio J. Doblas Viso. Universidad de Málaga. EVLT.
+#@date 2010/06/29
+
+#*/
+
+
+
+
+
+# Parameter: Where to mount the filesystem
+mountroot ()
+{
+ [ "$quiet" != "y" ] && log_begin_msg "Running OpenGnsys /scripts/og-top"
+ run_scripts /scripts/og-top
+ [ "$quiet" != "y" ] && log_end_msg
+
+ # If the root device hasn't shown up yet, give it a little while
+ # to deal with removable devices
+
+ . /scripts/functions
+ . /scripts/ogfunctions
+
+ [ "$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
+ log_success_msg "Checking Opengnys Environmnet"
+ ogExportVarEnvironment
+
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure ramfs structure for OG: y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogConfigureRamfs
+
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure netmoule specified in kernel parameters: y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogLoadNetModule
+
+ #[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/og-premount"
+ #run_scripts /scripts/og-premount
+ #[ "$quiet" != "y" ] && log_end_msg
+
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure networking: y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogconfigure_networking
+ log_success_msg "config networking"
+ ogconfigure_lo
+ 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
+
+ [ "$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"
+
+
+ #[ "$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 doing the postconfiguration: y/N "
+ [ $? == 0 ] && sh || echo " "
+ ogPostConfigureFS
+ setupcon -k
+
+ [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before calling oginit with /etc/inittab: y/N "
+ [ $? == 0 ] && sh || echo " "
+
+if [ "$oginit" ]
+then
+ exec $oginit
+else
+ exec init
+fi
+
+
+
+
+
+}
diff --git a/client/boot-tools/clientstructure/etc/inittab b/client/boot-tools/clientstructure/etc/inittab
new file mode 100644
index 00000000..94c30028
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/inittab
@@ -0,0 +1,14 @@
+# This is run first except when booting in single-user mode
+#
+#::sysinit:/opt/opengnsys/etc/preinit/defaultTESTING.sh
+# /bin/sh invocations on selected ttys
+#
+# Start an "askfirst" shell on the console (whatever that may be)
+#::askfirst:/bin/sh
+# Start an "askfirst" shell on /dev/tty2-4
+#tty1::respawn:/sbin/getty 38400 tty1
+tty1::respawn:/opt/opengnsys/etc/preinit/defaultTESTING.sh
+tty2::respawn:/sbin/getty 38400 tty2
+tty3::respawn:/sbin/getty 38400 tty3
+tty4::respawn:/sbin/getty 38400 tty4
+tty5::respawn:/sbin/getty 38400 tty5
diff --git a/client/boot-tools/clientstructure/etc/modprobe.d/blacklist-framebuffer.conf b/client/boot-tools/clientstructure/etc/modprobe.d/blacklist-framebuffer.conf
new file mode 100644
index 00000000..8b047e4e
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/modprobe.d/blacklist-framebuffer.conf
@@ -0,0 +1,30 @@
+# Framebuffer drivers are generally buggy and poorly-supported, and cause
+# suspend failures, kernel panics and general mayhem. For this reason we
+# never load them automatically.
+blacklist aty128fb
+blacklist atyfb
+#blacklist radeonfb
+blacklist cirrusfb
+blacklist cyber2000fb
+blacklist cyblafb
+blacklist gx1fb
+blacklist hgafb
+blacklist i810fb
+blacklist intelfb
+blacklist kyrofb
+blacklist lxfb
+blacklist matroxfb_base
+blacklist neofb
+blacklist nvidiafb
+blacklist pm2fb
+blacklist rivafb
+blacklist s1d13xxxfb
+blacklist savagefb
+blacklist sisfb
+blacklist sstfb
+blacklist tdfxfb
+blacklist tridentfb
+#blacklist vesafb
+blacklist vfb
+blacklist viafb
+blacklist vt8623fb
diff --git a/client/boot-tools/clientstructure/etc/mtab b/client/boot-tools/clientstructure/etc/mtab
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/mtab
diff --git a/client/boot-tools/clientstructure/etc/network/interfaces b/client/boot-tools/clientstructure/etc/network/interfaces
new file mode 100644
index 00000000..dbe43582
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/network/interfaces
@@ -0,0 +1,4 @@
+auto lo
+iface lo inet loopback
+auto eth0
+iface eth0 inet dhcp \ No newline at end of file
diff --git a/client/boot-tools/clientstructure/etc/profile.d/loadenviron.sh b/client/boot-tools/clientstructure/etc/profile.d/loadenviron.sh
new file mode 100755
index 00000000..0bf46a3e
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/profile.d/loadenviron.sh
@@ -0,0 +1,84 @@
+#!/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
+ # 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/etc/ssh/ssh_config b/client/boot-tools/clientstructure/etc/ssh/ssh_config
new file mode 100644
index 00000000..7f9319dc
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/ssh/ssh_config
@@ -0,0 +1,56 @@
+
+# This is the ssh client system-wide configuration file. See
+# ssh_config(5) for more information. This file provides defaults for
+# users, and the values can be changed in per-user configuration files
+# or on the command line.
+
+# Configuration data is parsed as follows:
+# 1. command line options
+# 2. user-specific file
+# 3. system-wide file
+# Any configuration value is only changed the first time it is set.
+# Thus, host-specific definitions should be at the beginning of the
+# configuration file, and defaults at the end.
+
+# Site-wide defaults for some commonly used options. For a comprehensive
+# list of available options, their meanings and defaults, please see the
+# ssh_config(5) man page.
+
+Host *
+# ForwardAgent no
+# ForwardX11 no
+# ForwardX11Trusted yes
+# RhostsRSAAuthentication no
+# RSAAuthentication yes
+# PasswordAuthentication yes
+ HostbasedAuthentication no
+# GSSAPIAuthentication no
+# GSSAPIDelegateCredentials no
+# GSSAPIKeyExchange no
+# GSSAPITrustDNS no
+# BatchMode no
+# CheckHostIP yes
+# AddressFamily any
+# ConnectTimeout 0
+# StrictHostKeyChecking ask
+# IdentityFile ~/.ssh/identity
+# IdentityFile ~/.ssh/id_rsa
+# IdentityFile ~/.ssh/id_dsa
+# Port 22
+# Protocol 2,1
+# Cipher 3des
+# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
+# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
+# EscapeChar ~
+# Tunnel no
+# TunnelDevice any:any
+# PermitLocalCommand no
+# VisualHostKey no
+ SendEnv LANG LC_*
+# HashKnownHosts yes
+ GSSAPIAuthentication yes
+ GSSAPIDelegateCredentials no
+
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
+
diff --git a/client/boot-tools/clientstructure/etc/ssh/sshd_config b/client/boot-tools/clientstructure/etc/ssh/sshd_config
new file mode 100644
index 00000000..ea0303b3
--- /dev/null
+++ b/client/boot-tools/clientstructure/etc/ssh/sshd_config
@@ -0,0 +1,86 @@
+# Package generated configuration file
+# See the sshd_config(5) manpage for details
+
+# What ports, IPs and protocols we listen for
+Port 22
+# Use these options to restrict which interfaces/protocols sshd will bind to
+#ListenAddress ::
+#ListenAddress 0.0.0.0
+Protocol 2
+# HostKeys for protocol version 2
+HostKey /etc/ssh/ssh_host_rsa_key
+HostKey /etc/ssh/ssh_host_dsa_key
+#Privilege Separation is turned on for security
+UsePrivilegeSeparation yes
+
+# Lifetime and size of ephemeral version 1 server key
+KeyRegenerationInterval 3600
+ServerKeyBits 768
+
+# Logging
+SyslogFacility AUTH
+LogLevel INFO
+
+# Authentication:
+LoginGraceTime 120
+PermitRootLogin yes
+StrictModes yes
+
+RSAAuthentication yes
+PubkeyAuthentication yes
+#AuthorizedKeysFile %h/.ssh/authorized_keys
+
+# Don't read the user's ~/.rhosts and ~/.shosts files
+IgnoreRhosts yes
+# For this to work you will also need host keys in /etc/ssh_known_hosts
+RhostsRSAAuthentication no
+# similar for protocol version 2
+HostbasedAuthentication no
+# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
+#IgnoreUserKnownHosts yes
+
+# To enable empty passwords, change to yes (NOT RECOMMENDED)
+PermitEmptyPasswords no
+
+# Change to yes to enable challenge-response passwords (beware issues with
+# some PAM modules and threads)
+ChallengeResponseAuthentication no
+
+# Change to no to disable tunnelled clear text passwords
+#PasswordAuthentication yes
+
+# Kerberos options
+#KerberosAuthentication no
+#KerberosGetAFSToken no
+#KerberosOrLocalPasswd yes
+#KerberosTicketCleanup yes
+
+# GSSAPI options
+#GSSAPIAuthentication no
+#GSSAPICleanupCredentials yes
+
+X11Forwarding yes
+X11DisplayOffset 10
+PrintMotd no
+PrintLastLog yes
+TCPKeepAlive yes
+#UseLogin no
+
+#MaxStartups 10:30:60
+#Banner /etc/issue.net
+
+# Allow client to pass locale environment variables
+AcceptEnv LANG LC_*
+
+Subsystem sftp /usr/lib/openssh/sftp-server
+
+# Set this to 'yes' to enable PAM authentication, account processing,
+# and session processing. If this is enabled, PAM authentication will
+# be allowed through the ChallengeResponseAuthentication and
+# PasswordAuthentication. Depending on your PAM configuration,
+# PAM authentication via ChallengeResponseAuthentication may bypass
+# the setting of "PermitRootLogin without-password".
+# If you just want the PAM account and session checks to run without
+# PAM authentication, then enable this but set PasswordAuthentication
+# and ChallengeResponseAuthentication to 'no'.
+UsePAM yes