Subversion Repositories livecd

Rev

Rev 332 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 332 Rev 333
1
########################################################################
1
########################################################################
2
#
2
#
3
# sl61-live-base.ks
3
# sl61-live-base.ks
4
#
4
#
5
# Defines the basics for all kickstarts of sl61-live
5
# Defines the basics for all kickstarts of sl61-live
6
# Kickstarts including this template can override these settings
6
# Kickstarts including this template can override these settings
7
#
7
#
8
########################################################################
8
########################################################################
9
 
9
 
10
lang en_US.UTF-8
10
lang en_US.UTF-8
11
keyboard us
11
keyboard us
12
timezone US/Eastern
12
timezone US/Eastern
13
auth --useshadow --enablemd5
13
auth --useshadow --enablemd5
14
selinux --enforcing
14
selinux --enforcing
15
firewall --enabled --service=mdns
15
firewall --enabled --service=mdns
16
 
16
 
17
# SL repositories
17
# SL repositories
18
repo --name=base      --baseurl=http://ftp.scientificlinux.org/linux/scientific/6.1/$basearch/os/
18
repo --name=base      --baseurl=http://ftp.scientificlinux.org/linux/scientific/6.1/$basearch/os/
19
repo --name=security  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6.1/$basearch/updates/security/
19
repo --name=security  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6.1/$basearch/updates/security/
20
 
20
 
21
# or use a mirror close to you
21
# or use a mirror close to you
22
#repo --name=base      --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6.1/$basearch/os/
22
#repo --name=base      --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6.1/$basearch/os/
23
#repo --name=security  --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6.1/$basearch/updates/security/
23
#repo --name=security  --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6.1/$basearch/updates/security/
24
 
24
 
25
# fastbugs is disabled
25
# fastbugs is disabled
26
#repo --name=fastbugs  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6.1/$basearch/updates/fastbugs/
26
#repo --name=fastbugs  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6.1/$basearch/updates/fastbugs/
27
 
27
 
28
xconfig --startxonboot
28
xconfig --startxonboot
29
services --enabled=NetworkManager --disabled=network,sshd
29
services --enabled=NetworkManager --disabled=network,sshd
30
 
30
 
31
 
31
 
32
########################################################################
32
########################################################################
33
#
33
#
34
# Basic software packages
34
# Basic software packages
35
#
35
#
36
########################################################################
36
########################################################################
37
 
37
 
38
%packages
38
%packages
39
syslinux
39
syslinux
40
kernel
40
kernel
41
 
41
 
42
# basic software groups
42
# basic software groups
43
@base
43
@base
44
# package added to @base
44
# package added to @base
45
squashfs-tools
45
squashfs-tools
46
@core
46
@core
47
@graphical-admin-tools
47
@graphical-admin-tools
48
@network-file-system-client
48
@network-file-system-client
49
@network-tools
49
@network-tools
50
@x11
50
@x11
51
 
51
 
52
# remote-desktop-clients
52
# remote-desktop-clients
53
rdesktop
53
rdesktop
54
tsclient
54
tsclient
55
 
55
 
56
# other usefull packages
56
# other usefull packages
57
busybox
57
busybox
58
mailx
58
mailx
59
memtest86+
59
memtest86+
60
livecd-tools
60
livecd-tools
61
fuse
61
fuse
62
wpa_supplicant
62
wpa_supplicant
63
dracut-network
63
dracut-network
64
 
64
 
65
# livecd bits to set up the livecd and be able to install
65
# livecd bits to set up the livecd and be able to install
66
anaconda
66
anaconda
67
device-mapper-multipath
67
device-mapper-multipath
68
isomd5sum
68
isomd5sum
69
 
69
 
70
%end
70
%end
71
 
71
 
72
 
72
 
73
########################################################################
73
########################################################################
74
#
74
#
75
#  LiveCD post install in chroot 
75
#  LiveCD post install in chroot 
76
#
76
#
77
########################################################################
77
########################################################################
78
%post
78
%post
79
 
79
 
80
#***********************************************************************
80
#***********************************************************************
81
# Create LiveCD configuration file and LiveCD functions
81
# Create LiveCD configuration file and LiveCD functions
82
#***********************************************************************
82
#***********************************************************************
83
 
83
 
84
cat > /etc/livesys.conf << 'EOF_livesysconf'
84
cat > /etc/livesys.conf << 'EOF_livesysconf'
85
#--------------------------------------------------------------------
85
#--------------------------------------------------------------------
86
# Configuration file for LiveCD
86
# Configuration file for LiveCD
87
#--------------------------------------------------------------------
87
#--------------------------------------------------------------------
88
 
88
 
89
# default LiveCD user
89
# default LiveCD user
90
LIVECD_DEF_USER="liveuser"
90
LIVECD_DEF_USER="liveuser"
91
 
91
 
92
# delay in seconds before auto login
92
# delay in seconds before auto login
93
LOGIN_DELAY=15
93
LOGIN_DELAY=15
94
 
94
 
95
# Services which are off (not running) on the LiveCD
95
# Services which are off (not running) on the LiveCD
96
SERVICES_OFF="mdmonitor setroubleshoot auditd crond atd readahead_early \
96
SERVICES_OFF="mdmonitor setroubleshoot auditd crond atd readahead_early \
97
              readahead_later kdump microcode_ctl openct pcscd postfix  \
97
              readahead_later kdump microcode_ctl openct pcscd postfix  \
98
	      yum-updatesd"
98
	      yum-updatesd"
99
 
99
 
100
# Services which should be on, but are not on per default
100
# Services which should be on, but are not on per default
101
SERVICES_ON=""
101
SERVICES_ON=""
102
 
102
 
103
EOF_livesysconf
103
EOF_livesysconf
104
 
104
 
105
 
105
 
106
cat > /etc/init.d/livesys.functions << 'EOF_livesysfunctions'
106
cat > /etc/init.d/livesys.functions << 'EOF_livesysfunctions'
107
#--------------------------------------------------------------------
107
#--------------------------------------------------------------------
108
# livesys functions
108
# livesys functions
109
#--------------------------------------------------------------------
109
#--------------------------------------------------------------------
110
 
110
 
111
# egrep_o is a replacement for "egrep -o". It prints only the last matching text
111
# egrep_o is a replacement for "egrep -o". It prints only the last matching text
112
egrep_o() {
112
egrep_o() {
113
   cat | egrep "$1" | sed -r "s/.*($1).*/\\1/"
113
   cat | egrep "$1" | sed -r "s/.*($1).*/\\1/"
114
}
114
}
115
 
115
 
116
# boot parameter
116
# boot parameter
117
cmdline_parameter() {
117
cmdline_parameter() {
118
   CMDLINE=/proc/cmdline
118
   CMDLINE=/proc/cmdline
119
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1(\$|=|[[:space:]]+)" | egrep_o "$1"
119
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1(\$|=|[[:space:]]+)" | egrep_o "$1"
120
}
120
}
121
 
121
 
122
# boot parameter value
122
# boot parameter value
123
cmdline_value()
123
cmdline_value()
124
{
124
{
125
   CMDLINE=/proc/cmdline
125
   CMDLINE=/proc/cmdline
126
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1=([^[:space:]]+)" | egrep_o "=.*" | cut -b 2- | tail -n 1
126
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1=([^[:space:]]+)" | egrep_o "=.*" | cut -b 2- | tail -n 1
127
}
127
}
128
 
128
 
129
exists() {
129
exists() {
130
    which $1 >/dev/null 2>&1 || return
130
    which $1 >/dev/null 2>&1 || return
131
    $*
131
    $*
132
}
132
}
133
 
133
 
134
EOF_livesysfunctions
134
EOF_livesysfunctions
135
 
135
 
136
 
136
 
137
#***********************************************************************
137
#***********************************************************************
138
# Create /root/post-install
138
# Create /root/post-install
139
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
139
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
140
#***********************************************************************
140
#***********************************************************************
141
 
141
 
142
cat > /root/post-install << EOF_post
142
cat > /root/post-install << EOF_post
143
#!/bin/bash
143
#!/bin/bash
144
 
144
 
145
#***********************************************************************
145
#***********************************************************************
146
# Create the livesys init script - /etc/rc.d/init.d/livesys
146
# Create the livesys init script - /etc/rc.d/init.d/livesys
147
#***********************************************************************
147
#***********************************************************************
148
 
148
 
149
echo "Creating the livesys init script - livesys"
149
echo "Creating the livesys init script - livesys"
150
 
150
 
151
cat > /etc/rc.d/init.d/livesys << EOF_initscript
151
cat > /etc/rc.d/init.d/livesys << EOF_initscript
152
#!/bin/bash
152
#!/bin/bash
153
#
153
#
154
# live: Init script for live image
154
# live: Init script for live image
155
#
155
#
156
# chkconfig: 345 00 99
156
# chkconfig: 345 00 99
157
# description: Init script for live image.
157
# description: Init script for live image.
158
 
158
 
159
. /etc/init.d/functions
159
. /etc/init.d/functions
160
. /etc/livesys.conf
160
. /etc/livesys.conf
161
. /etc/init.d/livesys.functions
161
. /etc/init.d/livesys.functions
162
 
162
 
163
# exit if not running from LiveCD
163
# exit if not running from LiveCD
164
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
164
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
165
    exit 0
165
    exit 0
166
fi
166
fi
167
 
167
 
168
[ -e /.liveimg-configured ] && configdone=1
168
[ -e /.liveimg-configured ] && configdone=1
169
 
169
 
170
touch /.liveimg-configured
170
touch /.liveimg-configured
171
 
171
 
172
### read boot parameters out of /proc/cmdline
172
### read boot parameters out of /proc/cmdline
173
 
173
 
174
# hostname
174
# hostname
175
hostname=\\\$( cmdline_value hostname )
175
hostname=\\\$( cmdline_value hostname )
176
 
176
 
177
# afs cell
177
# afs cell
178
CELL=\\\$( cmdline_value cell )
178
CELL=\\\$( cmdline_value cell )
179
 
179
 
180
# services to turn on / off
180
# services to turn on / off
181
SERVICEON=\\\$( cmdline_value serviceon )
181
SERVICEON=\\\$( cmdline_value serviceon )
182
SERVICEOFF=\\\$( cmdline_value serviceoff )
182
SERVICEOFF=\\\$( cmdline_value serviceoff )
183
 
183
 
184
# cups server
184
# cups server
185
CUPS=\\\$( cmdline_value cups )
185
CUPS=\\\$( cmdline_value cups )
186
 
186
 
187
# password
187
# password
188
PW=\\\$( cmdline_value pw )
188
PW=\\\$( cmdline_value pw )
189
[ ! \\\$PW ] && PW=\\\$( cmdline_value passwd )
189
[ ! \\\$PW ] && PW=\\\$( cmdline_value passwd )
190
 
190
 
191
# set livecd user
191
# set livecd user
192
LIVECD_USER=\\\$( cmdline_value user )
192
LIVECD_USER=\\\$( cmdline_value user )
193
[ ! "\\\$LIVECD_USER" ] && LIVECD_USER=\\\$LIVECD_DEF_USER
193
[ ! "\\\$LIVECD_USER" ] && LIVECD_USER=\\\$LIVECD_DEF_USER
194
 
194
 
195
 
195
 
196
### mount live image
196
### mount live image
197
if [ -b \\\`readlink -f /dev/live\\\` ]; then
197
if [ -b \\\`readlink -f /dev/live\\\` ]; then
198
   mkdir -p /mnt/live
198
   mkdir -p /mnt/live
199
   mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live
199
   mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live
200
fi
200
fi
201
 
201
 
202
livedir=\\\$( cmdline_value live_dir )
202
livedir=\\\$( cmdline_value live_dir )
203
[ ! "\\\$livedir" ] && livedir="LiveOS"
203
[ ! "\\\$livedir" ] && livedir="LiveOS"
204
 
204
 
205
### enable swaps unless requested otherwise
205
### enable swaps unless requested otherwise
206
swaps=\\\`blkid -t TYPE=swap -o device\\\`
206
swaps=\\\`blkid -t TYPE=swap -o device\\\`
207
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -n "\\\$swaps" ] ; then
207
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -n "\\\$swaps" ] ; then
208
  for s in \\\$swaps ; do
208
  for s in \\\$swaps ; do
209
    action "Enabling swap partition \\\$s" swapon \\\$s
209
    action "Enabling swap partition \\\$s" swapon \\\$s
210
  done
210
  done
211
fi
211
fi
212
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -f /mnt/live/\\\${livedir}/swap.img ] ; then
212
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -f /mnt/live/\\\${livedir}/swap.img ] ; then
213
  action "Enabling swap file" swapon /mnt/live/\\\${livedir}/swap.img
213
  action "Enabling swap file" swapon /mnt/live/\\\${livedir}/swap.img
214
fi
214
fi
215
 
215
 
216
### functions for persisten Home 
216
### functions for persisten Home 
217
mountPersistentHome() {
217
mountPersistentHome() {
218
  # support label/uuid
218
  # support label/uuid
219
  if [ "\\\${homedev##LABEL=}" != "\\\${homedev}" -o "\\\${homedev##UUID=}" != "\\\${homedev}" ]; then
219
  if [ "\\\${homedev##LABEL=}" != "\\\${homedev}" -o "\\\${homedev##UUID=}" != "\\\${homedev}" ]; then
220
    homedev=\\\`/sbin/blkid -o device -t "\\\$homedev"\\\`
220
    homedev=\\\`/sbin/blkid -o device -t "\\\$homedev"\\\`
221
  fi
221
  fi
222
 
222
 
223
  # if we're given a file rather than a blockdev, loopback it
223
  # if we're given a file rather than a blockdev, loopback it
224
  if [ "\\\${homedev##mtd}" != "\\\${homedev}" ]; then
224
  if [ "\\\${homedev##mtd}" != "\\\${homedev}" ]; then
225
    # mtd devs don't have a block device but get magic-mounted with -t jffs2
225
    # mtd devs don't have a block device but get magic-mounted with -t jffs2
226
    mountopts="-t jffs2"
226
    mountopts="-t jffs2"
227
  elif [ ! -b "\\\$homedev" ]; then
227
  elif [ ! -b "\\\$homedev" ]; then
228
    loopdev=\\\`losetup -f\\\`
228
    loopdev=\\\`losetup -f\\\`
229
    if [ "\\\${homedev##/mnt/live}" != "\\\${homedev}" ]; then
229
    if [ "\\\${homedev##/mnt/live}" != "\\\${homedev}" ]; then
230
      action "Remounting live store r/w" mount -o remount,rw /mnt/live
230
      action "Remounting live store r/w" mount -o remount,rw /mnt/live
231
    fi
231
    fi
232
    losetup \\\$loopdev \\\$homedev
232
    losetup \\\$loopdev \\\$homedev
233
    homedev=\\\$loopdev
233
    homedev=\\\$loopdev
234
  fi
234
  fi
235
 
235
 
236
  # if it's encrypted, we need to unlock it
236
  # if it's encrypted, we need to unlock it
237
  if [ "\\\$(/sbin/blkid -s TYPE -o value \\\$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
237
  if [ "\\\$(/sbin/blkid -s TYPE -o value \\\$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
238
    echo
238
    echo
239
    echo "Setting up encrypted /home device"
239
    echo "Setting up encrypted /home device"
240
    plymouth ask-for-password --command="cryptsetup luksOpen \\\$homedev EncHome"
240
    plymouth ask-for-password --command="cryptsetup luksOpen \\\$homedev EncHome"
241
    homedev=/dev/mapper/EncHome
241
    homedev=/dev/mapper/EncHome
242
  fi
242
  fi
243
 
243
 
244
  # and finally do the mount
244
  # and finally do the mount
245
  mount \\\$mountopts \\\$homedev /home
245
  mount \\\$mountopts \\\$homedev /home
246
  # if we have /home under what's passed for persistent home, then
246
  # if we have /home under what's passed for persistent home, then
247
  # we should make that the real /home.  useful for mtd device on olpc
247
  # we should make that the real /home.  useful for mtd device on olpc
248
  if [ -d /home/home ]; then mount --bind /home/home /home ; fi
248
  if [ -d /home/home ]; then mount --bind /home/home /home ; fi
249
  [ -x /sbin/restorecon ] && /sbin/restorecon /home
249
  [ -x /sbin/restorecon ] && /sbin/restorecon /home
250
  if [ -d /home/\\\$LIVECD_USER ]; then USERADDARGS="-M" ; fi
250
  if [ -d /home/\\\$LIVECD_USER ]; then USERADDARGS="-M" ; fi
251
}
251
}
252
 
252
 
253
findPersistentHome() {
253
findPersistentHome() {
254
  for arg in \\\`cat /proc/cmdline\\\` ; do
254
  for arg in \\\`cat /proc/cmdline\\\` ; do
255
    if [ "\\\${arg##persistenthome=}" != "\\\${arg}" ]; then
255
    if [ "\\\${arg##persistenthome=}" != "\\\${arg}" ]; then
256
      homedev=\\\${arg##persistenthome=}
256
      homedev=\\\${arg##persistenthome=}
257
      return
257
      return
258
    fi
258
    fi
259
  done
259
  done
260
}
260
}
261
 
261
 
262
if strstr "\\\`cat /proc/cmdline\\\`" persistenthome= ; then
262
if strstr "\\\`cat /proc/cmdline\\\`" persistenthome= ; then
263
  findPersistentHome
263
  findPersistentHome
264
elif [ -e /mnt/live/\\\${livedir}/home.img ]; then
264
elif [ -e /mnt/live/\\\${livedir}/home.img ]; then
265
  homedev=/mnt/live/\\\${livedir}/home.img
265
  homedev=/mnt/live/\\\${livedir}/home.img
266
fi
266
fi
267
 
267
 
268
### if we have a persistent /home, then we want to go ahead and mount it
268
### if we have a persistent /home, then we want to go ahead and mount it
269
if ! strstr "\\\`cat /proc/cmdline\\\`" nopersistenthome && [ -n "\\\$homedev" ] ; then
269
if ! strstr "\\\`cat /proc/cmdline\\\`" nopersistenthome && [ -n "\\\$homedev" ] ; then
270
  action "Mounting persistent /home" mountPersistentHome
270
  action "Mounting persistent /home" mountPersistentHome
271
fi
271
fi
272
 
272
 
273
### make it so that we don't do writing to the overlay for things which
273
### make it so that we don't do writing to the overlay for things which
274
### are just tmpdirs/caches
274
### are just tmpdirs/caches
275
mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum
275
mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum
276
mount -t tmpfs tmp /tmp
276
mount -t tmpfs tmp /tmp
277
mount -t tmpfs vartmp /var/tmp
277
mount -t tmpfs vartmp /var/tmp
278
[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /var/tmp >/dev/null 2>&1
278
[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /var/tmp >/dev/null 2>&1
279
 
279
 
280
### set afs cell if given by boot parameter
280
### set afs cell if given by boot parameter
281
if [ "\\\$CELL" ]; then
281
if [ "\\\$CELL" ]; then
282
    [ -e /usr/vice/etc/ThisCell ] && echo \\\$CELL > /usr/vice/etc/ThisCell
282
    [ -e /usr/vice/etc/ThisCell ] && echo \\\$CELL > /usr/vice/etc/ThisCell
283
fi
283
fi
284
 
284
 
285
### set cups server
285
### set cups server
286
if [ "\\\$CUPS" ]; then
286
if [ "\\\$CUPS" ]; then
287
    if [ -e /etc/cups/client.conf ]; then
287
    if [ -e /etc/cups/client.conf ]; then
288
        sed -i "s|.*ServerName .*|ServerName  \\\$CUPS|" /etc/cups/client.conf
288
        sed -i "s|.*ServerName .*|ServerName  \\\$CUPS|" /etc/cups/client.conf
289
        grep -q ServerName /etc/cups/client.conf || echo "ServerName  \\\$CUPS" >> /etc/cups/client.conf 
289
        grep -q ServerName /etc/cups/client.conf || echo "ServerName  \\\$CUPS" >> /etc/cups/client.conf 
290
    fi
290
    fi
291
fi
291
fi
292
 
292
 
293
### set the LiveCD hostname
293
### set the LiveCD hostname
294
[ ! "\\\$hostname" ] && hostname="livecd.localdomain"
294
[ ! "\\\$hostname" ] && hostname="livecd.localdomain"
295
sed -i -e "s|HOSTNAME=.*|HOSTNAME=\\\$hostname|g" /etc/sysconfig/network
295
sed -i -e "s|HOSTNAME=.*|HOSTNAME=\\\$hostname|g" /etc/sysconfig/network
296
/bin/hostname \\\$hostname
296
/bin/hostname \\\$hostname
297
 
297
 
298
#-----------------------------------------------------------------------
298
#-----------------------------------------------------------------------
299
# EXIT here if LiveCD has already been configured         
299
# EXIT here if LiveCD has already been configured         
300
# happens if you start the LiveCD with persistent changes 
300
# happens if you start the LiveCD with persistent changes 
301
#-----------------------------------------------------------------------
301
#-----------------------------------------------------------------------
302
 
302
 
303
[ "\\\$configdone" ] && exit 0
303
[ "\\\$configdone" ] && exit 0
304
 
304
 
305
### turn off services, which are not useful on LiveCD, to preserve resources
305
### turn off services, which are not useful on LiveCD, to preserve resources
306
if [ "\\\$SERVICES_OFF" ]; then
306
if [ "\\\$SERVICES_OFF" ]; then
307
    for service in \\\$SERVICES_OFF ; do
307
    for service in \\\$SERVICES_OFF ; do
308
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
308
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
309
    done
309
    done
310
fi
310
fi
311
 
311
 
312
### turn on services, which are off by default
312
### turn on services, which are off by default
313
if [ "\\\$SERVICES_ON" ]; then
313
if [ "\\\$SERVICES_ON" ]; then
314
    for service in \\\$SERVICES_ON ; do
314
    for service in \\\$SERVICES_ON ; do
315
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service ofn  2>/dev/null
315
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service on  2>/dev/null
316
    done
316
    done
317
fi
317
fi
318
 
318
 
319
### services off, from command line parameter (turn it off once again)
319
### services off, from command line parameter (turn it off once again)
320
if [ "\\\$SERVICEOFF" ]; then
320
if [ "\\\$SERVICEOFF" ]; then
321
    for service in \\\$( echo "\\\$SERVICEOFF" | tr ':' ' ' ); do
321
    for service in \\\$( echo "\\\$SERVICEOFF" | tr ':' ' ' ); do
322
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
322
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
323
    done
323
    done
324
fi
324
fi
325
 
325
 
326
# services on, from command line parameter (turn it ofn once again)
326
# services on, from command line parameter (turn it on once again)
327
if [ "\\\$SERVICEON" ]; then
327
if [ "\\\$SERVICEON" ]; then
328
    for service in \\\$( echo "\\\$SERVICEON" | tr ':' ' ' ); do
328
    for service in \\\$( echo "\\\$SERVICEON" | tr ':' ' ' ); do
329
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service on  2>/dev/null
329
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service on  2>/dev/null
330
    done
330
    done
331
fi
331
fi
332
 
332
 
333
### fix various bugs and issues
333
### fix various bugs and issues
334
# unmute sound card
334
# unmute sound card
335
exists alsaunmute 0 2> /dev/null
335
exists alsaunmute 0 2> /dev/null
336
 
336
 
337
# turn off firstboot for livecd boots
337
# turn off firstboot for livecd boots
338
echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot
338
echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot
339
 
339
 
340
# start afs with option -memcache (gets a kernel panic on some system - do not use it for the moment)
340
# start afs with option -memcache (gets a kernel panic on some system - do not use it for the moment)
341
# [ -e /etc/sysconfig/afs ] && sed -i "s|^OPTIONS=.*|OPTIONS=\"-memcache\"|" /etc/sysconfig/afs
341
# [ -e /etc/sysconfig/afs ] && sed -i "s|^OPTIONS=.*|OPTIONS=\"-memcache\"|" /etc/sysconfig/afs
342
 
342
 
343
# Stopgap fix for RH #217966; should be fixed in HAL instead
343
# Stopgap fix for RH #217966; should be fixed in HAL instead
344
touch /media/.hal-mtab
344
touch /media/.hal-mtab
345
 
345
 
346
### create the LiveCD default user
346
### create the LiveCD default user
347
# add default user with no password
347
# add default user with no password
348
/usr/sbin/useradd -c "LiveCD default user" \\\$LIVECD_USER
348
/usr/sbin/useradd -c "LiveCD default user" \\\$LIVECD_USER
349
/usr/bin/passwd -d \\\$LIVECD_USER > /dev/null
349
/usr/bin/passwd -d \\\$LIVECD_USER > /dev/null
350
# give default user sudo privileges
350
# give default user sudo privileges
351
# echo "\\\$LIVECD_USER     ALL=(ALL)     NOPASSWD: ALL" >> /etc/sudoers
351
# echo "\\\$LIVECD_USER     ALL=(ALL)     NOPASSWD: ALL" >> /etc/sudoers
352
 
352
 
353
### set password
353
### set password
354
if [ "\\\$PW" ]; then
354
if [ "\\\$PW" ]; then
355
    echo \\\$PW | passwd --stdin root >/dev/null
355
    echo \\\$PW | passwd --stdin root >/dev/null
356
    echo \\\$PW | passwd --stdin \\\$LIVECD_USER >/dev/null
356
    echo \\\$PW | passwd --stdin \\\$LIVECD_USER >/dev/null
357
fi
357
fi
358
 
358
 
359
### enable auto-login
359
### enable auto-login
360
if [ ! "\\\$( cmdline_parameter noautologin )" ]; then
360
if [ ! "\\\$( cmdline_parameter noautologin )" ]; then
361
    cat >> /etc/gdm/custom.conf << FOE
361
    cat >> /etc/gdm/custom.conf << FOE
362
[daemon]
362
[daemon]
363
TimedLoginEnable=true
363
TimedLoginEnable=true
364
TimedLogin=LIVECD_USER
364
TimedLogin=LIVECD_USER
365
TimedLoginDelay=\\\$LOGIN_DELAY
365
TimedLoginDelay=\\\$LOGIN_DELAY
366
FOE
366
FOE
367
    sed -i "s|LIVECD_USER|\\\$LIVECD_USER|" /etc/gdm/custom.conf
367
    sed -i "s|LIVECD_USER|\\\$LIVECD_USER|" /etc/gdm/custom.conf
368
fi
368
fi
369
 
369
 
370
### add keyboard and display configuration utilities to the desktop
370
### add keyboard and display configuration utilities to the desktop
371
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
371
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
372
cp /usr/share/applications/gnome-keyboard.desktop           /home/\\\$LIVECD_USER/Desktop/
372
cp /usr/share/applications/gnome-keyboard.desktop           /home/\\\$LIVECD_USER/Desktop/
373
cp /usr/share/applications/gnome-display-properties.desktop /home/\\\$LIVECD_USER/Desktop/
373
cp /usr/share/applications/gnome-display-properties.desktop /home/\\\$LIVECD_USER/Desktop/
374
 
374
 
375
### disable screensaver locking
375
### disable screensaver locking
376
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool   /apps/gnome-screensaver/lock_enabled "false" >/dev/null
376
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool   /apps/gnome-screensaver/lock_enabled "false" >/dev/null
377
 
377
 
378
### don't do packagekit checking by default
378
### don't do packagekit checking by default
379
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t int /apps/gnome-packagekit/update-icon/frequency_get_updates "0" >/dev/null
379
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t int /apps/gnome-packagekit/update-icon/frequency_get_updates "0" >/dev/null
380
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_updates never >/dev/null
380
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_updates never >/dev/null
381
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_upgrades never >/dev/null
381
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_upgrades never >/dev/null
382
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_refresh_cache never >/dev/null
382
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_refresh_cache never >/dev/null
383
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_available false >/dev/null
383
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_available false >/dev/null
384
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_distro_upgrades false >/dev/null
384
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_distro_upgrades false >/dev/null
385
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_firmware false >/dev/null
385
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_firmware false >/dev/null
386
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_hardware false >/dev/null
386
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_hardware false >/dev/null
387
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_codec_helper false >/dev/null
387
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_codec_helper false >/dev/null
388
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_font_helper false >/dev/null
388
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_font_helper false >/dev/null
389
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_mime_type_helper false >/dev/null
389
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_mime_type_helper false >/dev/null
390
 
390
 
391
### start system-config-firewall with su 
391
### start system-config-firewall with su 
392
#  (bugfix: system-config-firewall does not work when root has no password)
392
#  (bugfix: system-config-firewall does not work when root has no password)
393
sed -i "s|^Exec=.*|Exec=su - -c /usr/bin/system-config-firewall|" /usr/share/applications/system-config-firewall.desktop
393
sed -i "s|^Exec=.*|Exec=su - -c /usr/bin/system-config-firewall|" /usr/share/applications/system-config-firewall.desktop
394
sed -i "s|^Terminal=.*|Terminal=true|"                            /usr/share/applications/system-config-firewall.desktop
394
sed -i "s|^Terminal=.*|Terminal=true|"                            /usr/share/applications/system-config-firewall.desktop
395
 
395
 
396
### don't use prelink on a running live image
396
### don't use prelink on a running live image
397
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null
397
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null
398
 
398
 
399
 
399
 
400
###-----------------------------------------------------------------------
400
###-----------------------------------------------------------------------
401
# detecting disk partitions and logical volumes (disabled by default)
401
# detecting disk partitions and logical volumes (disabled by default)
402
# use boot parameter automount to enable it
402
# use boot parameter automount to enable it
403
###-----------------------------------------------------------------------
403
###-----------------------------------------------------------------------
404
 
404
 
405
CreateDesktopIconHD()
405
CreateDesktopIconHD()
406
{
406
{
407
cat > /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop << EOF_HDicon
407
cat > /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop << EOF_HDicon
408
[Desktop Entry]
408
[Desktop Entry]
409
Encoding=UTF-8
409
Encoding=UTF-8
410
Version=1.0
410
Version=1.0
411
Type=Link
411
Type=Link
412
Name=Local hard drives
412
Name=Local hard drives
413
Name[en_US]=Local hard drives
413
Name[en_US]=Local hard drives
414
Name[fr_CA]=Disques durs locaux
414
Name[fr_CA]=Disques durs locaux
415
URL=/mnt/disc
415
URL=/mnt/disc
416
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
416
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
417
EOF_HDicon
417
EOF_HDicon
418
 
418
 
419
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop
419
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop
420
}
420
}
421
 
421
 
422
CreateDesktopIconLVM()
422
CreateDesktopIconLVM()
423
{
423
{
424
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
424
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
425
 
425
 
426
cat > /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop << EOF_LVMicon
426
cat > /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop << EOF_LVMicon
427
[Desktop Entry]
427
[Desktop Entry]
428
Encoding=UTF-8
428
Encoding=UTF-8
429
Version=1.0
429
Version=1.0
430
Type=Link
430
Type=Link
431
Name=Local logical volumes
431
Name=Local logical volumes
432
Name[en_US]=Local logical volumes
432
Name[en_US]=Local logical volumes
433
Name[fr_CA]=Volumes logiques locaux
433
Name[fr_CA]=Volumes logiques locaux
434
URL=/mnt/lvm
434
URL=/mnt/lvm
435
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
435
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
436
EOF_LVMicon
436
EOF_LVMicon
437
 
437
 
438
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop
438
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop
439
}
439
}
440
 
440
 
441
# mount disk partitions if 'automount' is given as a boot option
441
# mount disk partitions if 'automount' is given as a boot option
442
if [ "\\\$( cmdline_parameter automount )" ]; then
442
if [ "\\\$( cmdline_parameter automount )" ]; then
443
	MOUNTOPTION="rw"
443
	MOUNTOPTION="rw"
444
	HARD_DISKS=\\\`egrep "[sh]d.\\\$" /proc/partitions | tr -s ' ' | sed 's/^  *//' | cut -d' ' -f4\\\`
444
	HARD_DISKS=\\\`egrep "[sh]d.\\\$" /proc/partitions | tr -s ' ' | sed 's/^  *//' | cut -d' ' -f4\\\`
445
 
445
 
446
	echo "Mounting hard disk partitions... "
446
	echo "Mounting hard disk partitions... "
447
	for DISK in \\\$HARD_DISKS; do
447
	for DISK in \\\$HARD_DISKS; do
448
	    # Get the device and system info from fdisk (but only for fat and linux partitions).
448
	    # Get the device and system info from fdisk (but only for fat and linux partitions).
449
	    FDISK_INFO=\\\`fdisk -l /dev/\\\$DISK | tr [A-Z] [a-z] | egrep "fat|linux" | egrep -v "swap|extended|lvm" | sed 's/*//' | tr -s ' ' | tr ' ' ':' | cut -d':' -f1,6-\\\`
449
	    FDISK_INFO=\\\`fdisk -l /dev/\\\$DISK | tr [A-Z] [a-z] | egrep "fat|linux" | egrep -v "swap|extended|lvm" | sed 's/*//' | tr -s ' ' | tr ' ' ':' | cut -d':' -f1,6-\\\`
450
	    for FDISK_ENTRY in \\\$FDISK_INFO; do
450
	    for FDISK_ENTRY in \\\$FDISK_INFO; do
451
		PARTITION=\\\`echo \\\$FDISK_ENTRY | cut -d':' -f1\\\`
451
		PARTITION=\\\`echo \\\$FDISK_ENTRY | cut -d':' -f1\\\`
452
		MOUNTPOINT="/mnt/disc/\\\${PARTITION##/dev/}"
452
		MOUNTPOINT="/mnt/disc/\\\${PARTITION##/dev/}"
453
		mkdir -p \\\$MOUNTPOINT
453
		mkdir -p \\\$MOUNTPOINT
454
		MOUNTED=FALSE
454
		MOUNTED=FALSE
455
 
455
 
456
		# get the partition type
456
		# get the partition type
457
		case \\\`echo \\\$FDISK_ENTRY | cut -d':' -f2-\\\` in
457
		case \\\`echo \\\$FDISK_ENTRY | cut -d':' -f2-\\\` in
458
		*fat*) 
458
		*fat*) 
459
		    FSTYPES="vfat"
459
		    FSTYPES="vfat"
460
		    EXTRAOPTIONS=",uid=500";;
460
		    EXTRAOPTIONS=",uid=500";;
461
		*)
461
		*)
462
		    FSTYPES="ext4 ext3 ext2"
462
		    FSTYPES="ext4 ext3 ext2"
463
		    EXTRAOPTIONS="";;
463
		    EXTRAOPTIONS="";;
464
		esac
464
		esac
465
 
465
 
466
		# try to mount the partition
466
		# try to mount the partition
467
		for FSTYPE in \\\$FSTYPES; do
467
		for FSTYPE in \\\$FSTYPES; do
468
		    if mount -o "\\\${MOUNTOPTION}\\\${EXTRAOPTIONS}" -t \\\$FSTYPE \\\$PARTITION \\\$MOUNTPOINT &>/dev/null; then
468
		    if mount -o "\\\${MOUNTOPTION}\\\${EXTRAOPTIONS}" -t \\\$FSTYPE \\\$PARTITION \\\$MOUNTPOINT &>/dev/null; then
469
			echo "\\\$PARTITION \\\$MOUNTPOINT \\\$FSTYPE noauto,\\\${MOUNTOPTION}\\\${EXTRAOPTIONS} 0 0" >> /etc/fstab
469
			echo "\\\$PARTITION \\\$MOUNTPOINT \\\$FSTYPE noauto,\\\${MOUNTOPTION}\\\${EXTRAOPTIONS} 0 0" >> /etc/fstab
470
			echo -n "\\\$PARTITION "
470
			echo -n "\\\$PARTITION "
471
			MOUNTED=TRUE
471
			MOUNTED=TRUE
472
			CreateDesktopIconHD
472
			CreateDesktopIconHD
473
		    fi
473
		    fi
474
		done
474
		done
475
		[ \\\$MOUNTED = "FALSE" ] && rmdir \\\$MOUNTPOINT
475
		[ \\\$MOUNTED = "FALSE" ] && rmdir \\\$MOUNTPOINT
476
	    done
476
	    done
477
	done
477
	done
478
	echo
478
	echo
479
fi
479
fi
480
 
480
 
481
# mount logical volumes if 'automount' is given as a boot option
481
# mount logical volumes if 'automount' is given as a boot option
482
if [ "\\\$( cmdline_parameter automount )" ]; then
482
if [ "\\\$( cmdline_parameter automount )" ]; then
483
        MOUNTOPTION="rw"
483
        MOUNTOPTION="rw"
484
	FSTYPES="ext4 ext3 ext2"
484
	FSTYPES="ext4 ext3 ext2"
485
	echo "Scanning for logical volumes..."
485
	echo "Scanning for logical volumes..."
486
	if ! lvm vgscan 2>&1 | grep "No volume groups"; then
486
	if ! lvm vgscan 2>&1 | grep "No volume groups"; then
487
	    echo "Activating logical volumes ..."
487
	    echo "Activating logical volumes ..."
488
	    modprobe dm_mod >/dev/null
488
	    modprobe dm_mod >/dev/null
489
	    lvm vgchange -ay
489
	    lvm vgchange -ay
490
	    LOGICAL_VOLUMES=\\\`lvm lvdisplay -c | sed "s/^  *//" | cut -d: -f1\\\`
490
	    LOGICAL_VOLUMES=\\\`lvm lvdisplay -c | sed "s/^  *//" | cut -d: -f1\\\`
491
	    if [ ! -z "\\\$LOGICAL_VOLUMES" ]; then
491
	    if [ ! -z "\\\$LOGICAL_VOLUMES" ]; then
492
		echo "Making device nodes ..."
492
		echo "Making device nodes ..."
493
		lvm vgmknodes
493
		lvm vgmknodes
494
		echo -n "Mounting logical volumes ... "
494
		echo -n "Mounting logical volumes ... "
495
		for VOLUME_NAME in \\\$LOGICAL_VOLUMES; do
495
		for VOLUME_NAME in \\\$LOGICAL_VOLUMES; do
496
		    VG_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f3\\\`
496
		    VG_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f3\\\`
497
		    LV_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f4\\\`
497
		    LV_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f4\\\`
498
		    MOUNTPOINT="/mnt/lvm/\\\${VG_NAME}-\\\${LV_NAME}"
498
		    MOUNTPOINT="/mnt/lvm/\\\${VG_NAME}-\\\${LV_NAME}"
499
		    mkdir -p \\\$MOUNTPOINT
499
		    mkdir -p \\\$MOUNTPOINT
500
 
500
 
501
		    MOUNTED=FALSE
501
		    MOUNTED=FALSE
502
		    for FSTYPE in \\\$FSTYPES; do
502
		    for FSTYPE in \\\$FSTYPES; do
503
			if mount -o \\\$MOUNTOPTION -t \\\$FSTYPE \\\$VOLUME_NAME \\\$MOUNTPOINT &>/dev/null; then
503
			if mount -o \\\$MOUNTOPTION -t \\\$FSTYPE \\\$VOLUME_NAME \\\$MOUNTPOINT &>/dev/null; then
504
			    echo "\\\$VOLUME_NAME \\\$MOUNTPOINT \\\$FSTYPE defaults,\\\${MOUNTOPTION} 0 0" >> /etc/fstab
504
			    echo "\\\$VOLUME_NAME \\\$MOUNTPOINT \\\$FSTYPE defaults,\\\${MOUNTOPTION} 0 0" >> /etc/fstab
505
			    echo -n "\\\$VOLUME_NAME "
505
			    echo -n "\\\$VOLUME_NAME "
506
			    MOUNTED=TRUE
506
			    MOUNTED=TRUE
507
			    CreateDesktopIconLVM
507
			    CreateDesktopIconLVM
508
			    break
508
			    break
509
			fi
509
			fi
510
		    done
510
		    done
511
		    [ \\\$MOUNTED = FALSE ] && rmdir \\\$MOUNTPOINT
511
		    [ \\\$MOUNTED = FALSE ] && rmdir \\\$MOUNTPOINT
512
		done
512
		done
513
		echo
513
		echo
514
 
514
 
515
	    else
515
	    else
516
		echo "No logical volumes found"
516
		echo "No logical volumes found"
517
	    fi
517
	    fi
518
	fi
518
	fi
519
fi
519
fi
520
 
520
 
521
### give back ownership to the default user
521
### give back ownership to the default user
522
chown -R \\\$LIVECD_USER:\\\$LIVECD_USER /home/\\\$LIVECD_USER
522
chown -R \\\$LIVECD_USER:\\\$LIVECD_USER /home/\\\$LIVECD_USER
523
 
523
 
524
EOF_initscript
524
EOF_initscript
525
#***********************************************************************
525
#***********************************************************************
526
# End of livesys script
526
# End of livesys script
527
#***********************************************************************
527
#***********************************************************************
528
 
528
 
529
 
529
 
530
#***********************************************************************
530
#***********************************************************************
531
# Create the livesys init script - /etc/rc.d/init.d/livesys-late
531
# Create the livesys init script - /etc/rc.d/init.d/livesys-late
532
#***********************************************************************
532
#***********************************************************************
533
 
533
 
534
echo "Creating the livesys init script - livesys-late"
534
echo "Creating the livesys init script - livesys-late"
535
 
535
 
536
cat > /etc/rc.d/init.d/livesys-late << EOF_lateinitscript
536
cat > /etc/rc.d/init.d/livesys-late << EOF_lateinitscript
537
#!/bin/bash
537
#!/bin/bash
538
#
538
#
539
# live: Late init script for live image
539
# live: Late init script for live image
540
#
540
#
541
# chkconfig: 345 99 01
541
# chkconfig: 345 99 01
542
# description: Late init script for live image.
542
# description: Late init script for live image.
543
 
543
 
544
. /etc/init.d/functions
544
. /etc/init.d/functions
545
. /etc/livesys.conf
545
. /etc/livesys.conf
546
. /etc/init.d/livesys.functions
546
. /etc/init.d/livesys.functions
547
 
547
 
548
# exit if not running from LiveCD
548
# exit if not running from LiveCD
549
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
549
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
550
    exit 0
550
    exit 0
551
fi
551
fi
552
 
552
 
553
touch /.liveimg-late-configured
553
touch /.liveimg-late-configured
554
 
554
 
555
# read boot parameters out of /proc/cmdline
555
# read boot parameters out of /proc/cmdline
556
ks=\\\$( cmdline_value ks )
556
ks=\\\$( cmdline_value ks )
557
xdriver=\\\$( cmdline_value xdriver )
557
xdriver=\\\$( cmdline_value xdriver )
558
kb=\\\$( cmdline_value kb )
558
kb=\\\$( cmdline_value kb )
559
 
559
 
560
# if liveinst or textinst is given, start anaconda
560
# if liveinst or textinst is given, start anaconda
561
if [ "\\\$( cmdline_parameter liveinst )" ]; then
561
if [ "\\\$( cmdline_parameter liveinst )" ]; then
562
   plymouth --quit
562
   plymouth --quit
563
   /usr/sbin/liveinst \\\$ks
563
   /usr/sbin/liveinst \\\$ks
564
   /sbin/reboot
564
   /sbin/reboot
565
fi
565
fi
566
if [ "\\\$( cmdline_parameter textinst )" ] ; then
566
if [ "\\\$( cmdline_parameter textinst )" ] ; then
567
   plymouth --quit
567
   plymouth --quit
568
   /usr/sbin/liveinst --text \\\$ks
568
   /usr/sbin/liveinst --text \\\$ks
569
   /sbin/reboot
569
   /sbin/reboot
570
fi
570
fi
571
 
571
 
572
# configure X, allowing user to override xdriver 
572
# configure X, allowing user to override xdriver 
573
# (does not work in SL6 with xorg 7.4)
573
# (does not work in SL6 with xorg 7.4)
574
# if [ -n "\\\$xdriver" ]; then
574
# if [ -n "\\\$xdriver" ]; then
575
#   cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
575
#   cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
576
# Section "Device"
576
# Section "Device"
577
#        Identifier      "Videocard0"
577
#        Identifier      "Videocard0"
578
#        Driver          "\\\$xdriver"
578
#        Driver          "\\\$xdriver"
579
# EndSection
579
# EndSection
580
# FOE
580
# FOE
581
# fi
581
# fi
582
 
582
 
583
# configure X, allowing user to override xdriver
583
# configure X, allowing user to override xdriver
584
# (does not work in SL6 because system-config-display is missing)
584
# (does not work in SL6 because system-config-display is missing)
585
if [ -n "\\\$xdriver" ]; then
585
if [ -n "\\\$xdriver" ]; then
586
   exists system-config-display --noui --reconfig --set-depth=24 \\\$xdriver
586
   exists system-config-display --noui --reconfig --set-depth=24 \\\$xdriver
587
fi
587
fi
588
 
588
 
589
# configure keyboard
589
# configure keyboard
590
# (does not work in SL6 because system-config-keyboard is missing)
590
# (does not work in SL6 because system-config-keyboard is missing)
591
if [ "\\\$kb" ]; then
591
if [ "\\\$kb" ]; then
592
    exists system-config-keyboard --noui \\\$kb 
592
    exists system-config-keyboard --noui \\\$kb 
593
fi
593
fi
594
 
594
 
595
 
595
 
596
EOF_lateinitscript
596
EOF_lateinitscript
597
#***********************************************************************
597
#***********************************************************************
598
# End of livesys-late script
598
# End of livesys-late script
599
#***********************************************************************
599
#***********************************************************************
600
 
600
 
601
 
601
 
602
#***********************************************************************
602
#***********************************************************************
603
# Configure the LiveCD
603
# Configure the LiveCD
604
# Everything configured here will survive LiveCD install to harddisk !
604
# Everything configured here will survive LiveCD install to harddisk !
605
#***********************************************************************
605
#***********************************************************************
606
 
606
 
607
echo "Configure the LiveCD"
607
echo "Configure the LiveCD"
608
 
608
 
609
chmod 755 /etc/rc.d/init.d/livesys
609
chmod 755 /etc/rc.d/init.d/livesys
610
/sbin/restorecon /etc/rc.d/init.d/livesys
610
/sbin/restorecon /etc/rc.d/init.d/livesys
611
/sbin/chkconfig --add livesys
611
/sbin/chkconfig --add livesys
612
 
612
 
613
chmod 755 /etc/rc.d/init.d/livesys-late
613
chmod 755 /etc/rc.d/init.d/livesys-late
614
/sbin/restorecon /etc/rc.d/init.d/livesys-late
614
/sbin/restorecon /etc/rc.d/init.d/livesys-late
615
/sbin/chkconfig --add livesys-late
615
/sbin/chkconfig --add livesys-late
616
 
616
 
617
# go ahead and pre-make the man -k cache (#455968)
617
# go ahead and pre-make the man -k cache (#455968)
618
/usr/sbin/makewhatis -w
618
/usr/sbin/makewhatis -w
619
 
619
 
620
# save a little bit of space at least...
620
# save a little bit of space at least...
621
rm -f /var/lib/rpm/__db*
621
rm -f /var/lib/rpm/__db*
622
rm -f /boot/initrd*
622
rm -f /boot/initrd*
623
rm -f /boot/initramfs*
623
rm -f /boot/initramfs*
624
# make sure there aren't core files lying around
624
# make sure there aren't core files lying around
625
rm -f /core*
625
rm -f /core*
626
 
626
 
627
# convince readahead not to collect
627
# convince readahead not to collect
628
rm -f /.readahead_collect
628
rm -f /.readahead_collect
629
touch /var/lib/readahead/early.sorted
629
touch /var/lib/readahead/early.sorted
630
 
630
 
631
# workaround clock syncing on shutdown that we don't want (#297421)
631
# workaround clock syncing on shutdown that we don't want (#297421)
632
sed -i -e 's/hwclock/no-such-hwclock/g' /etc/rc.d/init.d/halt
632
sed -i -e 's/hwclock/no-such-hwclock/g' /etc/rc.d/init.d/halt
633
 
633
 
634
# import RPM GPG keys
634
# import RPM GPG keys
635
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
635
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
636
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
636
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
637
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl6
637
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl6
638
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
638
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
639
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl
639
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl
640
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
640
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
641
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
641
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
642
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
642
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
643
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
643
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
644
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
644
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
645
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-fabian
645
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-fabian
646
 
646
 
647
# evolution is in the gnome launch panel (bad workaround to start thunderbird instead)
647
# evolution is in the gnome launch panel (bad workaround to start thunderbird instead)
648
[ ! -e /usr/bin/evolution ] && ln -s /usr/bin/thunderbird /usr/bin/evolution
648
[ ! -e /usr/bin/evolution ] && ln -s /usr/bin/thunderbird /usr/bin/evolution
649
 
649
 
650
# clean up yum
650
# clean up yum
651
yum clean all
651
yum clean all
652
 
652
 
653
# workaround avahi segfault (#279301)
653
# workaround avahi segfault (#279301)
654
touch /etc/resolv.conf
654
touch /etc/resolv.conf
655
/sbin/restorecon /etc/resolv.conf
655
/sbin/restorecon /etc/resolv.conf
656
 
656
 
657
# create locate db
657
# create locate db
658
/etc/cron.daily/mlocate.cron
658
/etc/cron.daily/mlocate.cron
659
 
659
 
660
EOF_post
660
EOF_post
661
 
661
 
662
# run post-install script
662
# run post-install script
663
/bin/bash -x /root/post-install 2>&1 | tee /root/post-install.log
663
/bin/bash -x /root/post-install 2>&1 | tee /root/post-install.log
664
 
664
 
665
%end
665
%end
666
 
666
 
667
 
667
 
668
########################################################################
668
########################################################################
669
#
669
#
670
#  LiveCD post no chroot install 
670
#  LiveCD post no chroot install 
671
#
671
#
672
########################################################################
672
########################################################################
673
%post --nochroot
673
%post --nochroot
674
 
674
 
675
#***********************************************************************
675
#***********************************************************************
676
# Create /root/postnochroot-install
676
# Create /root/postnochroot-install
677
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
677
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
678
#***********************************************************************
678
#***********************************************************************
679
 
679
 
680
cat > /root/postnochroot-install << EOF_postnochroot
680
cat > /root/postnochroot-install << EOF_postnochroot
681
#!/bin/bash
681
#!/bin/bash
682
 
682
 
683
# Copy licensing information
683
# Copy licensing information
684
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL
684
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL
685
 
685
 
686
# customize boot menu entries
686
# customize boot menu entries
687
grep -B4 'menu default'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/default.txt
687
grep -B4 'menu default'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/default.txt
688
grep -B3 'xdriver=vesa nomodeset'  \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/basicvideo.txt
688
grep -B3 'xdriver=vesa nomodeset'  \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/basicvideo.txt
689
grep -A3 'label check0'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/check.txt
689
grep -A3 'label check0'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/check.txt
690
grep -A2 'label memtest'           \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/memtest.txt
690
grep -A2 'label memtest'           \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/memtest.txt
691
grep -A2 'label local'             \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/localboot.txt
691
grep -A2 'label local'             \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/localboot.txt
692
 
692
 
693
sed "s/label linux0/label linuxtext0/"   \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textboot.txt
693
sed "s/label linux0/label linuxtext0/"   \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textboot.txt
694
sed -i "s/Boot/Boot (Text Mode)/"                                           \$LIVE_ROOT/isolinux/textboot.txt
694
sed -i "s/Boot/Boot (Text Mode)/"                                           \$LIVE_ROOT/isolinux/textboot.txt
695
sed -i "s/liveimg/liveimg 3/"                                               \$LIVE_ROOT/isolinux/textboot.txt
695
sed -i "s/liveimg/liveimg 3/"                                               \$LIVE_ROOT/isolinux/textboot.txt
696
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textboot.txt
696
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textboot.txt
697
 
697
 
698
sed "s/label linux0/label install0/"     \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/install.txt
698
sed "s/label linux0/label install0/"     \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/install.txt
699
sed -i "s/Boot/Install/"                                                    \$LIVE_ROOT/isolinux/install.txt
699
sed -i "s/Boot/Install/"                                                    \$LIVE_ROOT/isolinux/install.txt
700
sed -i "s/liveimg/liveimg liveinst noswap/"                                 \$LIVE_ROOT/isolinux/install.txt
700
sed -i "s/liveimg/liveimg liveinst noswap/"                                 \$LIVE_ROOT/isolinux/install.txt
701
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/install.txt
701
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/install.txt
702
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/install.txt
702
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/install.txt
703
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/install.txt
703
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/install.txt
704
 
704
 
705
sed "s/label linux0/label textinstall0/" \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textinstall.txt
705
sed "s/label linux0/label textinstall0/" \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textinstall.txt
706
sed -i "s/Boot/Install (Text Mode)/"                                        \$LIVE_ROOT/isolinux/textinstall.txt
706
sed -i "s/Boot/Install (Text Mode)/"                                        \$LIVE_ROOT/isolinux/textinstall.txt
707
sed -i "s/liveimg/liveimg textinst noswap/"                                 \$LIVE_ROOT/isolinux/textinstall.txt
707
sed -i "s/liveimg/liveimg textinst noswap/"                                 \$LIVE_ROOT/isolinux/textinstall.txt
708
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/textinstall.txt
708
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/textinstall.txt
709
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/textinstall.txt
709
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/textinstall.txt
710
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textinstall.txt
710
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textinstall.txt
711
 
711
 
712
cat \$LIVE_ROOT/isolinux/default.txt \$LIVE_ROOT/isolinux/basicvideo.txt \$LIVE_ROOT/isolinux/check.txt \$LIVE_ROOT/isolinux/memtest.txt \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/current.txt
712
cat \$LIVE_ROOT/isolinux/default.txt \$LIVE_ROOT/isolinux/basicvideo.txt \$LIVE_ROOT/isolinux/check.txt \$LIVE_ROOT/isolinux/memtest.txt \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/current.txt
713
 
713
 
714
diff \$LIVE_ROOT/isolinux/isolinux.cfg \$LIVE_ROOT/isolinux/current.txt | sed '/^[0-9][0-9]*/d; s/^. //; /^---$/d' > \$LIVE_ROOT/isolinux/cleaned.txt
714
diff \$LIVE_ROOT/isolinux/isolinux.cfg \$LIVE_ROOT/isolinux/current.txt | sed '/^[0-9][0-9]*/d; s/^. //; /^---$/d' > \$LIVE_ROOT/isolinux/cleaned.txt
715
 
715
 
716
cat \$LIVE_ROOT/isolinux/cleaned.txt      \
716
cat \$LIVE_ROOT/isolinux/cleaned.txt      \
717
    \$LIVE_ROOT/isolinux/default.txt      \
717
    \$LIVE_ROOT/isolinux/default.txt      \
718
    \$LIVE_ROOT/isolinux/textboot.txt     \
718
    \$LIVE_ROOT/isolinux/textboot.txt     \
719
    \$LIVE_ROOT/isolinux/basicvideo.txt   \
719
    \$LIVE_ROOT/isolinux/basicvideo.txt   \
720
    \$LIVE_ROOT/isolinux/check.txt        \
720
    \$LIVE_ROOT/isolinux/check.txt        \
721
    \$LIVE_ROOT/isolinux/install.txt      \
721
    \$LIVE_ROOT/isolinux/install.txt      \
722
    \$LIVE_ROOT/isolinux/textinstall.txt  \
722
    \$LIVE_ROOT/isolinux/textinstall.txt  \
723
    \$LIVE_ROOT/isolinux/memtest.txt      \
723
    \$LIVE_ROOT/isolinux/memtest.txt      \
724
    \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/isolinux.cfg
724
    \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/isolinux.cfg
725
rm -f \$LIVE_ROOT/isolinux/*.txt
725
rm -f \$LIVE_ROOT/isolinux/*.txt
726
 
726
 
727
EOF_postnochroot
727
EOF_postnochroot
728
 
728
 
729
# run postnochroot-install script
729
# run postnochroot-install script
730
/bin/bash -x /root/postnochroot-install 2>&1 | tee /root/postnochroot-install.log
730
/bin/bash -x /root/postnochroot-install 2>&1 | tee /root/postnochroot-install.log
731
 
731
 
732
%end
732
%end
733
 
733