summaryrefslogtreecommitdiffstats
path: root/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit
blob: 6f8a30b8f76956f890e2b5784f0d6e78f9826691 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# 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





}