143 lines
5.2 KiB
Bash
143 lines
5.2 KiB
Bash
# OpenGnsys oginit -*- shell-script -*-
|
|
|
|
#@file oginit
|
|
#@brief Guion modificador inicio initrd para OpenGnSys
|
|
#@warning
|
|
#@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 RAMFS - instalador de ubunto -
|
|
#@author Alejandro Castillo, Ramón Gómez, Irina, Antonio Doblas
|
|
#@date 2010/00/00
|
|
#@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 - 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 - 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
|
|
#@version 1.0.5 - Cambiar resolución de pantalla para Kernel con parámetro "video".
|
|
#@author Ramón Gómez, ETSII Universidad de Sevilla
|
|
#@date 2013/02/18
|
|
#*/
|
|
|
|
|
|
# Parameter: Where to mount the filesystem
|
|
mountroot ()
|
|
{
|
|
[ -f /scripts/VERSION.txt ] && OGVERSION=$(cat /scripts/VERSION.txt)
|
|
OGVERSION=${OGVERSION:-"OpenGnSys Client"}
|
|
echo; echo; echo "$OGVERSION"; echo; echo
|
|
|
|
[ "$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
|
|
|
|
sleep 2
|
|
|
|
[ "$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
|
|
# Cambiar resolución de vídeo para kernels que usan el parámetro "video".
|
|
[ -n "$video" ] && ogChangeVideoResolution
|
|
log_success_msg "Checking OpenGnSys 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 " "
|
|
if [ -n "$oglive" ]
|
|
then
|
|
while !(ping -c 1 $oglive &> /dev/null)
|
|
do
|
|
ogConfigureNetworking
|
|
done
|
|
fi
|
|
log_success_msg "config networking"
|
|
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 and ckeck distribuited OG services "
|
|
|
|
|
|
if [ "$ogdebug" == "true" -a "$ogupdateinitrd" == "true" ]; then
|
|
ogYesNo --timeout 5 --default no "Stop before check updating initrd: y/N "
|
|
[ $? == 0 ] && sh || echo " "
|
|
fi
|
|
# Actualizar Initrd si se solicita o si no se corresponde con su kernel.
|
|
if [ "$ogupdateinitrd" == "true" -o ! -d /lib/modules/$(uname -r) ]; then
|
|
ogUpdateInitrd
|
|
fi
|
|
|
|
[ "$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 ,ro
|
|
|
|
|
|
[ "$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
|
|
|
|
|
|
|
|
|
|
|
|
}
|