Subversion Repositories livecd

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 beyerle@PS 1
#!/bin/bash
2
#
3
# Fix things during bootup - run first 
4
# Executed at the very end of /etc/rc.d/rc.sysinit
5
#
6
# Urs Beyerle, PSI
7
#
8
 
9
### -----------------------------------------------------------
10
### definitions
11
### -----------------------------------------------------------
12
 
13
# dir of mounted /$MOUNTDIR/live
14
MOUNTDIR=livecd
15
 
16
# source functions
17
. /$MOUNTDIR/live/liblinuxlive
18
. /etc/init.d/functions
19
 
20
 
21
### -----------------------------------------------------------
22
### Get boot parameters
23
### -----------------------------------------------------------
24
 
25
# start afs?
26
AFS=$( cmdline_parameter afs )
27
CELL=$( cmdline_value cell )
28
 
29
# or force no afs
30
[ $( cmdline_parameter noafs ) ] && AFS=""
31
 
32
# start ssh server?
33
SSH=$( cmdline_parameter ssh )
34
 
35
# root on NFS?
36
NFSROOT=$( cmdline_value nfsroot )
37
 
38
# PSI setup?
39
PSI=$( cmdline_parameter psi )
40
 
41
# do not start network
42
NONET=$( cmdline_parameter nonet )
43
 
44
# Are PXE/TFTP and NFS Server the same host ? not uesed any more
45
ONEMASTER=$( cmdline_parameter onemaster )
46
 
47
# static IP
48
IPADDR=$( cmdline_value ip )
49
 
50
# gateway
51
GATEWAY=$( cmdline_value gw )
52
 
53
# netmask
54
NETMASK=$( cmdline_value netmask )
55
 
56
# fast booting ?
57
FASTBOOT=$( cmdline_parameter fastboot )
58
 
59
# if run=rdesktop, we do fast boot
60
if [ "$( cmdline_value run )" = "rdesktop" ]; then
61
    FASTBOOT="fastboot"
62
fi
63
 
64
# start ntpd ?
65
NTPD=$( cmdline_parameter ntpd )
66
 
67
# services on/off
68
SERVICEON=$( cmdline_value serviceon )
69
SERVICEOFF=$( cmdline_value serviceoff )
70
 
71
 
72
### -----------------------------------------------------------
73
### Main
74
### -----------------------------------------------------------
75
 
76
### disable rpcidmapd, if LiveCD mounted over NFS
77
if [ $NFSROOT ]; then
78
    chkconfig rpcidmapd off
79
fi
80
 
81
### restore blacklist (modified in runveryfirst)
82
if [ $NFSROOT ]; then
83
    [ -e /etc/hotplug/blacklist ] && BLACKLIST_FILE=/etc/hotplug/blacklist
84
    [ -e /etc/modprobe.d/blacklist ] && BLACKLIST_FILE=/etc/modprobe.d/blacklist
85
    mv -f ${BLACKLIST_FILE}.backup ${BLACKLIST_FILE}
86
fi
87
 
88
### get resolv.conf
89
# if we have the LiveCD mounted over NFS
90
if [ $NFSROOT ]; then
91
    cp -f /$MOUNTDIR/live/etc/resolv.conf /etc/
92
fi
93
 
94
### disable shutdown of network and nfs, 
95
# if we have the LiveCD mounted over NFS
96
if [ $NFSROOT ]; then
97
    if [ $ONEMASTER ]; then
98
        # "network off" is only necessary, 
99
        # if PXE/TFTP and NTS server is on same machine
100
	chkconfig network off
101
    fi
102
 
103
    rm -f /etc/rc.d/rc6.d/K75netfs
104
    rm -f /etc/rc.d/rc6.d/K86nfslock
105
    rm -f /etc/rc.d/rc6.d/K87portmap
106
    rm -f /etc/rc.d/rc6.d/K90network
107
 
108
    rm -f /etc/rc.d/rc0.d/K75netfs
109
    rm -f /etc/rc.d/rc0.d/K86nfslock
110
    rm -f /etc/rc.d/rc0.d/K87portmap
111
    rm -f /etc/rc.d/rc0.d/K90network
112
fi
113
 
114
### create AFS mount point
115
mkdir -p /afs
116
 
117
### enable AFS during start up, if given by boot parameter
118
if [ $AFS ]; then
119
    chkconfig afs on
120
fi
121
 
122
### disable some services for fast booting
123
if [ $FASTBOOT ]; then    
124
    echo "Fast booting enabled"
125
    chkconfig vpnclient_init off
126
    chkconfig haldaemon off
127
    chkconfig pcmcia off
128
    chkconfig ntpd off
129
    chkconfig atd off
130
    chkconfig cpuspeed off
131
    chkconfig gpm off
132
    chkconfig messagebus off
133
    rm -rf /etc/rc.d/rc3.d/S04kudzu-auto
134
    rm -rf /etc/rc.d/rc5.d/S04kudzu-auto
135
fi
136
 
137
### enable ntpd?
138
if [ $NTPD ]; then
139
    chkconfig ntpd on
140
fi
141
 
142
### enable SSH server during start up, if given by boot parameter
143
if [ $SSH ]; then
144
    chkconfig sshd on
145
fi
146
 
147
### services on
148
if [ -n $SERVICEON ]; then
149
    for service in `echo "$SERVICEON" | tr ':' ' '`; do
150
	if [ -f /etc/init.d/$service ]; then
151
	    chkconfig $service on
152
	fi
153
    done
154
fi
155
 
156
### services off
157
if [ -n $SERVICEOFF ]; then
158
    for service in `echo "$SERVICEOFF" | tr ':' ' '`; do
159
	if [ -f /etc/init.d/$service ]; then
160
	    chkconfig $service off
161
	fi
162
    done
163
fi
164
 
165
### fix perm of /tmp
166
chmod 1777 /tmp
167
 
168
### link /opt -> /usr/opt !
169
ln -s /usr/opt /opt
170
 
171
### create home
172
mkdir -p /home
173
 
174
### create /scratch
175
mkdir -p /scratch
176
chmod 1777 /scratch
177
 
178
### create /data
179
if [ $PSI ]; then
180
    mkdir -p /data
181
    chmod 1777 /data
182
fi
183
 
184
### add PSI master
185
if [ $PSI ]; then
186
    mkdir -p /mnt/master
187
    echo "pxeserv01:/master       /mnt/master             nfs     nfsvers=2,noauto,nolock,ro 0 0" >> /etc/fstab
188
fi
189
 
190
### set afs cell, if given by boot parameter
191
if [ $CELL ]; then
192
    echo $CELL > /usr/vice/etc/ThisCell
193
fi
194
 
195
### do not activate network during bootup, if "nonet"
196
if [ $NONET ]; then
197
    for iface in eth0 eth1 eth2 eth3; do
198
	for file in networking/profiles/default/ifcfg \
199
	            networking/devices/ifcfg \
200
                    network-scripts/ifcfg; do
201
	  if [ -e /etc/sysconfig/${file}-${iface} ]; then
202
	      sed -i "s/ONBOOT=.*/ONBOOT=no/" /etc/sysconfig/${file}-${iface}
203
	  fi
204
	done
205
    done
206
fi
207
 
208
### define static IP and gateway, netmask
209
if [ $IPADDR ]; then    
210
    if [ ! $GATEWAY ]; then
211
	# default gatway x.y.z.1
212
	GATEWAY=$( echo $IPADDR | awk -F"." '{ print $1"."$2"."$3".1" }' )
213
	if [ ! $NETMASK ]; then
214
	    NETMASK=255.255.255.0
215
	fi
216
    fi
217
    # create config files for eth0
218
    for iface in eth0; do
219
	for file in networking/profiles/default/ifcfg \
220
	            networking/devices/ifcfg \
221
	            network-scripts/ifcfg; do
222
	  sed -i "s/BOOTPROTO=.*/BOOTPROTO=none/" /etc/sysconfig/${file}-${iface}
223
	  echo "IPADDR=$IPADDR" > /etc/sysconfig/${file}-${iface}
224
	  echo "NETMASK=$NETMASK" > /etc/sysconfig/${file}-${iface}
225
	  echo "GATEWAY=$GATEWAY" > /etc/sysconfig/${file}-${iface}
226
	done
227
    done
228
fi