Subversion Repositories livecd

Rev

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

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