147 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			147 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
# 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 
 | 
						|
	if [ $? -ne 0 -a "$SRCOGSHARE" != "$DEFOGSHARE" ]; then
 | 
						|
		ogConnect $OGSERVERSHARE $OGPROTOCOL $DEFOGSHARE $DSTOGSHARE && SRCOGSHARE=$DEFOGSHARE
 | 
						|
	fi
 | 
						|
	unset DEFOGSHARE
 | 
						|
	
 | 
						|
	[ "$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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
}
 |