Subversion Repositories livecd

Rev

Rev 359 | Rev 377 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 359 Rev 372
1
########################################################################
1
########################################################################
2
#
2
#
3
# sl6rolling-live-base.ks
3
# sl6rolling-live-base.ks
4
#
4
#
5
# Defines the basics for all kickstarts of sl6rolling-live
5
# Defines the basics for all kickstarts of sl6rolling-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/6rolling/$basearch/os/
18
repo --name=base      --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/os/
19
repo --name=security  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/updates/security/
19
repo --name=security  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/updates/security/
20
repo --name=sl-addons --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/addons/
20
repo --name=sl-addons --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$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/6rolling/$basearch/os/
23
#repo --name=base      --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6rolling/$basearch/os/
24
#repo --name=security  --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6rolling/$basearch/updates/security/
24
#repo --name=security  --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6rolling/$basearch/updates/security/
25
 
25
 
26
# fastbugs is disabled
26
# fastbugs is disabled
27
#repo --name=fastbugs  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/updates/fastbugs/
27
#repo --name=fastbugs  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$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
else
-
 
360
    # set empty password
-
 
361
    sed -i "s|^root:[^:]*:|root::|"                       /etc/shadow
-
 
362
    sed -i "s|^\\\$LIVECD_USER:[^:]*:|\\\$LIVECD_USER::|" /etc/shadow
359
fi
363
fi
360
 
364
 
361
### enable auto-login
365
### enable auto-login
362
if [ ! "\\\$( cmdline_parameter noautologin )" ]; then
366
if [ ! "\\\$( cmdline_parameter noautologin )" ]; then
363
    cat >> /etc/gdm/custom.conf << FOE
367
    cat >> /etc/gdm/custom.conf << FOE
364
[daemon]
368
[daemon]
365
TimedLoginEnable=true
369
TimedLoginEnable=true
366
TimedLogin=LIVECD_USER
370
TimedLogin=LIVECD_USER
367
TimedLoginDelay=\\\$LOGIN_DELAY
371
TimedLoginDelay=\\\$LOGIN_DELAY
368
FOE
372
FOE
369
    sed -i "s|LIVECD_USER|\\\$LIVECD_USER|" /etc/gdm/custom.conf
373
    sed -i "s|LIVECD_USER|\\\$LIVECD_USER|" /etc/gdm/custom.conf
370
fi
374
fi
371
 
375
 
372
### add keyboard and display configuration utilities to the desktop
376
### add keyboard and display configuration utilities to the desktop
373
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
377
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
374
cp /usr/share/applications/gnome-keyboard.desktop           /home/\\\$LIVECD_USER/Desktop/
378
cp /usr/share/applications/gnome-keyboard.desktop           /home/\\\$LIVECD_USER/Desktop/
375
cp /usr/share/applications/gnome-display-properties.desktop /home/\\\$LIVECD_USER/Desktop/
379
cp /usr/share/applications/gnome-display-properties.desktop /home/\\\$LIVECD_USER/Desktop/
376
 
380
 
377
### disable screensaver locking
381
### 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
382
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool   /apps/gnome-screensaver/lock_enabled "false" >/dev/null
379
 
383
 
380
### don't do packagekit checking by default
384
### 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
385
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
386
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
387
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
388
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
389
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
390
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
391
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
392
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
393
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
394
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
395
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
 
396
 
393
### start system-config-firewall with su 
397
### start system-config-firewall with su 
394
#  (bugfix: system-config-firewall does not work when root has no password)
398
#  (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
399
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
400
sed -i "s|^Terminal=.*|Terminal=true|"                            /usr/share/applications/system-config-firewall.desktop
397
 
401
 
398
### don't use prelink on a running live image
402
### don't use prelink on a running live image
399
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null
403
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null
400
 
404
 
401
 
405
 
402
###-----------------------------------------------------------------------
406
###-----------------------------------------------------------------------
403
# detecting disk partitions and logical volumes (disabled by default)
407
# detecting disk partitions and logical volumes (disabled by default)
404
# use boot parameter automount to enable it
408
# use boot parameter automount to enable it
405
###-----------------------------------------------------------------------
409
###-----------------------------------------------------------------------
406
 
410
 
407
CreateDesktopIconHD()
411
CreateDesktopIconHD()
408
{
412
{
409
cat > /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop << EOF_HDicon
413
cat > /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop << EOF_HDicon
410
[Desktop Entry]
414
[Desktop Entry]
411
Encoding=UTF-8
415
Encoding=UTF-8
412
Version=1.0
416
Version=1.0
413
Type=Link
417
Type=Link
414
Name=Local hard drives
418
Name=Local hard drives
415
Name[en_US]=Local hard drives
419
Name[en_US]=Local hard drives
416
Name[fr_CA]=Disques durs locaux
420
Name[fr_CA]=Disques durs locaux
417
URL=/mnt/disc
421
URL=/mnt/disc
418
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
422
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
419
EOF_HDicon
423
EOF_HDicon
420
 
424
 
421
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop
425
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop
422
}
426
}
423
 
427
 
424
CreateDesktopIconLVM()
428
CreateDesktopIconLVM()
425
{
429
{
426
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
430
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
427
 
431
 
428
cat > /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop << EOF_LVMicon
432
cat > /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop << EOF_LVMicon
429
[Desktop Entry]
433
[Desktop Entry]
430
Encoding=UTF-8
434
Encoding=UTF-8
431
Version=1.0
435
Version=1.0
432
Type=Link
436
Type=Link
433
Name=Local logical volumes
437
Name=Local logical volumes
434
Name[en_US]=Local logical volumes
438
Name[en_US]=Local logical volumes
435
Name[fr_CA]=Volumes logiques locaux
439
Name[fr_CA]=Volumes logiques locaux
436
URL=/mnt/lvm
440
URL=/mnt/lvm
437
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
441
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
438
EOF_LVMicon
442
EOF_LVMicon
439
 
443
 
440
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop
444
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop
441
}
445
}
442
 
446
 
443
# mount disk partitions if 'automount' is given as a boot option
447
# mount disk partitions if 'automount' is given as a boot option
444
if [ "\\\$( cmdline_parameter automount )" ]; then
448
if [ "\\\$( cmdline_parameter automount )" ]; then
445
	MOUNTOPTION="rw"
449
	MOUNTOPTION="rw"
446
	HARD_DISKS=\\\`egrep "[sh]d.\\\$" /proc/partitions | tr -s ' ' | sed 's/^  *//' | cut -d' ' -f4\\\`
450
	HARD_DISKS=\\\`egrep "[sh]d.\\\$" /proc/partitions | tr -s ' ' | sed 's/^  *//' | cut -d' ' -f4\\\`
447
 
451
 
448
	echo "Mounting hard disk partitions... "
452
	echo "Mounting hard disk partitions... "
449
	for DISK in \\\$HARD_DISKS; do
453
	for DISK in \\\$HARD_DISKS; do
450
	    # Get the device and system info from fdisk (but only for fat and linux partitions).
454
	    # 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-\\\`
455
	    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
456
	    for FDISK_ENTRY in \\\$FDISK_INFO; do
453
		PARTITION=\\\`echo \\\$FDISK_ENTRY | cut -d':' -f1\\\`
457
		PARTITION=\\\`echo \\\$FDISK_ENTRY | cut -d':' -f1\\\`
454
		MOUNTPOINT="/mnt/disc/\\\${PARTITION##/dev/}"
458
		MOUNTPOINT="/mnt/disc/\\\${PARTITION##/dev/}"
455
		mkdir -p \\\$MOUNTPOINT
459
		mkdir -p \\\$MOUNTPOINT
456
		MOUNTED=FALSE
460
		MOUNTED=FALSE
457
 
461
 
458
		# get the partition type
462
		# get the partition type
459
		case \\\`echo \\\$FDISK_ENTRY | cut -d':' -f2-\\\` in
463
		case \\\`echo \\\$FDISK_ENTRY | cut -d':' -f2-\\\` in
460
		*fat*) 
464
		*fat*) 
461
		    FSTYPES="vfat"
465
		    FSTYPES="vfat"
462
		    EXTRAOPTIONS=",uid=500";;
466
		    EXTRAOPTIONS=",uid=500";;
463
		*)
467
		*)
464
		    FSTYPES="ext4 ext3 ext2"
468
		    FSTYPES="ext4 ext3 ext2"
465
		    EXTRAOPTIONS="";;
469
		    EXTRAOPTIONS="";;
466
		esac
470
		esac
467
 
471
 
468
		# try to mount the partition
472
		# try to mount the partition
469
		for FSTYPE in \\\$FSTYPES; do
473
		for FSTYPE in \\\$FSTYPES; do
470
		    if mount -o "\\\${MOUNTOPTION}\\\${EXTRAOPTIONS}" -t \\\$FSTYPE \\\$PARTITION \\\$MOUNTPOINT &>/dev/null; then
474
		    if mount -o "\\\${MOUNTOPTION}\\\${EXTRAOPTIONS}" -t \\\$FSTYPE \\\$PARTITION \\\$MOUNTPOINT &>/dev/null; then
471
			echo "\\\$PARTITION \\\$MOUNTPOINT \\\$FSTYPE noauto,\\\${MOUNTOPTION}\\\${EXTRAOPTIONS} 0 0" >> /etc/fstab
475
			echo "\\\$PARTITION \\\$MOUNTPOINT \\\$FSTYPE noauto,\\\${MOUNTOPTION}\\\${EXTRAOPTIONS} 0 0" >> /etc/fstab
472
			echo -n "\\\$PARTITION "
476
			echo -n "\\\$PARTITION "
473
			MOUNTED=TRUE
477
			MOUNTED=TRUE
474
			CreateDesktopIconHD
478
			CreateDesktopIconHD
475
		    fi
479
		    fi
476
		done
480
		done
477
		[ \\\$MOUNTED = "FALSE" ] && rmdir \\\$MOUNTPOINT
481
		[ \\\$MOUNTED = "FALSE" ] && rmdir \\\$MOUNTPOINT
478
	    done
482
	    done
479
	done
483
	done
480
	echo
484
	echo
481
fi
485
fi
482
 
486
 
483
# mount logical volumes if 'automount' is given as a boot option
487
# mount logical volumes if 'automount' is given as a boot option
484
if [ "\\\$( cmdline_parameter automount )" ]; then
488
if [ "\\\$( cmdline_parameter automount )" ]; then
485
        MOUNTOPTION="rw"
489
        MOUNTOPTION="rw"
486
	FSTYPES="ext4 ext3 ext2"
490
	FSTYPES="ext4 ext3 ext2"
487
	echo "Scanning for logical volumes..."
491
	echo "Scanning for logical volumes..."
488
	if ! lvm vgscan 2>&1 | grep "No volume groups"; then
492
	if ! lvm vgscan 2>&1 | grep "No volume groups"; then
489
	    echo "Activating logical volumes ..."
493
	    echo "Activating logical volumes ..."
490
	    modprobe dm_mod >/dev/null
494
	    modprobe dm_mod >/dev/null
491
	    lvm vgchange -ay
495
	    lvm vgchange -ay
492
	    LOGICAL_VOLUMES=\\\`lvm lvdisplay -c | sed "s/^  *//" | cut -d: -f1\\\`
496
	    LOGICAL_VOLUMES=\\\`lvm lvdisplay -c | sed "s/^  *//" | cut -d: -f1\\\`
493
	    if [ ! -z "\\\$LOGICAL_VOLUMES" ]; then
497
	    if [ ! -z "\\\$LOGICAL_VOLUMES" ]; then
494
		echo "Making device nodes ..."
498
		echo "Making device nodes ..."
495
		lvm vgmknodes
499
		lvm vgmknodes
496
		echo -n "Mounting logical volumes ... "
500
		echo -n "Mounting logical volumes ... "
497
		for VOLUME_NAME in \\\$LOGICAL_VOLUMES; do
501
		for VOLUME_NAME in \\\$LOGICAL_VOLUMES; do
498
		    VG_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f3\\\`
502
		    VG_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f3\\\`
499
		    LV_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f4\\\`
503
		    LV_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f4\\\`
500
		    MOUNTPOINT="/mnt/lvm/\\\${VG_NAME}-\\\${LV_NAME}"
504
		    MOUNTPOINT="/mnt/lvm/\\\${VG_NAME}-\\\${LV_NAME}"
501
		    mkdir -p \\\$MOUNTPOINT
505
		    mkdir -p \\\$MOUNTPOINT
502
 
506
 
503
		    MOUNTED=FALSE
507
		    MOUNTED=FALSE
504
		    for FSTYPE in \\\$FSTYPES; do
508
		    for FSTYPE in \\\$FSTYPES; do
505
			if mount -o \\\$MOUNTOPTION -t \\\$FSTYPE \\\$VOLUME_NAME \\\$MOUNTPOINT &>/dev/null; then
509
			if mount -o \\\$MOUNTOPTION -t \\\$FSTYPE \\\$VOLUME_NAME \\\$MOUNTPOINT &>/dev/null; then
506
			    echo "\\\$VOLUME_NAME \\\$MOUNTPOINT \\\$FSTYPE defaults,\\\${MOUNTOPTION} 0 0" >> /etc/fstab
510
			    echo "\\\$VOLUME_NAME \\\$MOUNTPOINT \\\$FSTYPE defaults,\\\${MOUNTOPTION} 0 0" >> /etc/fstab
507
			    echo -n "\\\$VOLUME_NAME "
511
			    echo -n "\\\$VOLUME_NAME "
508
			    MOUNTED=TRUE
512
			    MOUNTED=TRUE
509
			    CreateDesktopIconLVM
513
			    CreateDesktopIconLVM
510
			    break
514
			    break
511
			fi
515
			fi
512
		    done
516
		    done
513
		    [ \\\$MOUNTED = FALSE ] && rmdir \\\$MOUNTPOINT
517
		    [ \\\$MOUNTED = FALSE ] && rmdir \\\$MOUNTPOINT
514
		done
518
		done
515
		echo
519
		echo
516
 
520
 
517
	    else
521
	    else
518
		echo "No logical volumes found"
522
		echo "No logical volumes found"
519
	    fi
523
	    fi
520
	fi
524
	fi
521
fi
525
fi
522
 
526
 
523
### give back ownership to the default user
527
### give back ownership to the default user
524
chown -R \\\$LIVECD_USER:\\\$LIVECD_USER /home/\\\$LIVECD_USER
528
chown -R \\\$LIVECD_USER:\\\$LIVECD_USER /home/\\\$LIVECD_USER
525
 
529
 
526
EOF_initscript
530
EOF_initscript
527
#***********************************************************************
531
#***********************************************************************
528
# End of livesys script
532
# End of livesys script
529
#***********************************************************************
533
#***********************************************************************
530
 
534
 
531
 
535
 
532
#***********************************************************************
536
#***********************************************************************
533
# Create the livesys init script - /etc/rc.d/init.d/livesys-late
537
# Create the livesys init script - /etc/rc.d/init.d/livesys-late
534
#***********************************************************************
538
#***********************************************************************
535
 
539
 
536
echo "Creating the livesys init script - livesys-late"
540
echo "Creating the livesys init script - livesys-late"
537
 
541
 
538
cat > /etc/rc.d/init.d/livesys-late << EOF_lateinitscript
542
cat > /etc/rc.d/init.d/livesys-late << EOF_lateinitscript
539
#!/bin/bash
543
#!/bin/bash
540
#
544
#
541
# live: Late init script for live image
545
# live: Late init script for live image
542
#
546
#
543
# chkconfig: 345 99 01
547
# chkconfig: 345 99 01
544
# description: Late init script for live image.
548
# description: Late init script for live image.
545
 
549
 
546
. /etc/init.d/functions
550
. /etc/init.d/functions
547
. /etc/livesys.conf
551
. /etc/livesys.conf
548
. /etc/init.d/livesys.functions
552
. /etc/init.d/livesys.functions
549
 
553
 
550
# exit if not running from LiveCD
554
# exit if not running from LiveCD
551
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
555
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
552
    exit 0
556
    exit 0
553
fi
557
fi
554
 
558
 
555
touch /.liveimg-late-configured
559
touch /.liveimg-late-configured
556
 
560
 
557
# read boot parameters out of /proc/cmdline
561
# read boot parameters out of /proc/cmdline
558
ks=\\\$( cmdline_value ks )
562
ks=\\\$( cmdline_value ks )
559
xdriver=\\\$( cmdline_value xdriver )
563
xdriver=\\\$( cmdline_value xdriver )
560
kb=\\\$( cmdline_value kb )
564
kb=\\\$( cmdline_value kb )
561
 
565
 
562
# if liveinst or textinst is given, start anaconda
566
# if liveinst or textinst is given, start anaconda
563
if [ "\\\$( cmdline_parameter liveinst )" ]; then
567
if [ "\\\$( cmdline_parameter liveinst )" ]; then
564
   plymouth --quit
568
   plymouth --quit
565
   /usr/sbin/liveinst \\\$ks
569
   /usr/sbin/liveinst \\\$ks
566
   /sbin/reboot
570
   /sbin/reboot
567
fi
571
fi
568
if [ "\\\$( cmdline_parameter textinst )" ] ; then
572
if [ "\\\$( cmdline_parameter textinst )" ] ; then
569
   plymouth --quit
573
   plymouth --quit
570
   /usr/sbin/liveinst --text \\\$ks
574
   /usr/sbin/liveinst --text \\\$ks
571
   /sbin/reboot
575
   /sbin/reboot
572
fi
576
fi
573
 
577
 
574
# configure X, allowing user to override xdriver 
578
# configure X, allowing user to override xdriver 
575
# (does not work in SL6 with xorg 7.4)
579
# (does not work in SL6 with xorg 7.4)
576
# if [ -n "\\\$xdriver" ]; then
580
# if [ -n "\\\$xdriver" ]; then
577
#   cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
581
#   cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
578
# Section "Device"
582
# Section "Device"
579
#        Identifier      "Videocard0"
583
#        Identifier      "Videocard0"
580
#        Driver          "\\\$xdriver"
584
#        Driver          "\\\$xdriver"
581
# EndSection
585
# EndSection
582
# FOE
586
# FOE
583
# fi
587
# fi
584
 
588
 
585
# configure X, allowing user to override xdriver
589
# configure X, allowing user to override xdriver
586
# (does not work in SL6 because system-config-display is missing)
590
# (does not work in SL6 because system-config-display is missing)
587
if [ -n "\\\$xdriver" ]; then
591
if [ -n "\\\$xdriver" ]; then
588
   exists system-config-display --noui --reconfig --set-depth=24 \\\$xdriver
592
   exists system-config-display --noui --reconfig --set-depth=24 \\\$xdriver
589
fi
593
fi
590
 
594
 
591
# configure keyboard
595
# configure keyboard
592
# (does not work in SL6 because system-config-keyboard is missing)
596
# (does not work in SL6 because system-config-keyboard is missing)
593
if [ "\\\$kb" ]; then
597
if [ "\\\$kb" ]; then
594
    exists system-config-keyboard --noui \\\$kb 
598
    exists system-config-keyboard --noui \\\$kb 
595
fi
599
fi
596
 
600
 
597
 
601
 
598
EOF_lateinitscript
602
EOF_lateinitscript
599
#***********************************************************************
603
#***********************************************************************
600
# End of livesys-late script
604
# End of livesys-late script
601
#***********************************************************************
605
#***********************************************************************
602
 
606
 
603
 
607
 
604
#***********************************************************************
608
#***********************************************************************
605
# Create /sbin/halt.local
609
# Create /sbin/halt.local
606
#***********************************************************************
610
#***********************************************************************
607
 
611
 
608
echo "Creating /sbin/halt.local"
612
echo "Creating /sbin/halt.local"
609
 
613
 
610
cat > /sbin/halt.local << EOF_haltlocal
614
cat > /sbin/halt.local << EOF_haltlocal
611
#!/bin/bash
615
#!/bin/bash
612
#
616
#
613
# Ejects LiveCD/DVD, if boot parameter eject is given 
617
# Ejects LiveCD/DVD, if boot parameter eject is given 
614
#
618
#
615
 
619
 
616
. /etc/init.d/functions
620
. /etc/init.d/functions
617
. /etc/livesys.conf
621
. /etc/livesys.conf
618
. /etc/init.d/livesys.functions
622
. /etc/init.d/livesys.functions
619
 
623
 
620
# exit if not running from LiveCD
624
# exit if not running from LiveCD
621
if [ ! "\\\$( cmdline_parameter liveimg )" ]; then
625
if [ ! "\\\$( cmdline_parameter liveimg )" ]; then
622
    exit 0
626
    exit 0
623
fi
627
fi
624
if [ "\\\$( cmdline_parameter eject )" ]; then
628
if [ "\\\$( cmdline_parameter eject )" ]; then
625
    echo "Eject CD/DVD ..."
629
    echo "Eject CD/DVD ..."
626
    /usr/sbin/eject -p -m \\\$(readlink -f /dev/live) >/dev/null 2>&1
630
    /usr/sbin/eject -p -m \\\$(readlink -f /dev/live) >/dev/null 2>&1
627
fi
631
fi
628
 
632
 
629
EOF_haltlocal
633
EOF_haltlocal
630
#***********************************************************************
634
#***********************************************************************
631
# End of /sbin/halt.local script
635
# End of /sbin/halt.local script
632
#***********************************************************************
636
#***********************************************************************
633
chmod 755 /sbin/halt.local
637
chmod 755 /sbin/halt.local
634
 
638
 
635
 
639
 
636
#***********************************************************************
640
#***********************************************************************
637
# Configure the LiveCD
641
# Configure the LiveCD
638
# Everything configured here will survive LiveCD install to harddisk !
642
# Everything configured here will survive LiveCD install to harddisk !
639
#***********************************************************************
643
#***********************************************************************
640
 
644
 
641
echo "Configure the LiveCD"
645
echo "Configure the LiveCD"
642
 
646
 
643
chmod 755 /etc/rc.d/init.d/livesys
647
chmod 755 /etc/rc.d/init.d/livesys
644
/sbin/restorecon /etc/rc.d/init.d/livesys
648
/sbin/restorecon /etc/rc.d/init.d/livesys
645
/sbin/chkconfig --add livesys
649
/sbin/chkconfig --add livesys
646
 
650
 
647
chmod 755 /etc/rc.d/init.d/livesys-late
651
chmod 755 /etc/rc.d/init.d/livesys-late
648
/sbin/restorecon /etc/rc.d/init.d/livesys-late
652
/sbin/restorecon /etc/rc.d/init.d/livesys-late
649
/sbin/chkconfig --add livesys-late
653
/sbin/chkconfig --add livesys-late
650
 
654
 
651
# go ahead and pre-make the man -k cache (#455968)
655
# go ahead and pre-make the man -k cache (#455968)
652
/usr/sbin/makewhatis -w
656
/usr/sbin/makewhatis -w
653
 
657
 
654
# save a little bit of space at least...
658
# save a little bit of space at least...
655
rm -f /var/lib/rpm/__db*
659
rm -f /var/lib/rpm/__db*
656
rm -f /boot/initrd*
660
rm -f /boot/initrd*
657
rm -f /boot/initramfs*
661
rm -f /boot/initramfs*
658
# make sure there aren't core files lying around
662
# make sure there aren't core files lying around
659
rm -f /core*
663
rm -f /core*
660
 
664
 
661
# convince readahead not to collect
665
# convince readahead not to collect
662
rm -f /.readahead_collect
666
rm -f /.readahead_collect
663
touch /var/lib/readahead/early.sorted
667
touch /var/lib/readahead/early.sorted
664
 
668
 
665
# workaround clock syncing on shutdown that we don't want (#297421)
669
# 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
670
sed -i -e 's/hwclock/no-such-hwclock/g' /etc/rc.d/init.d/halt
667
 
671
 
668
# import RPM GPG keys
672
# import RPM GPG keys
669
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
673
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
670
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
674
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
671
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl6
675
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl6
672
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
676
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
673
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl
677
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl
674
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
678
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
675
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
679
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
676
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
680
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
677
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
681
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
678
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
682
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
679
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-fabian
683
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-fabian
680
 
684
 
681
# evolution is in the gnome launch panel (bad workaround to start thunderbird instead)
685
# 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
686
[ ! -e /usr/bin/evolution ] && ln -s /usr/bin/thunderbird /usr/bin/evolution
683
 
687
 
684
# clean up yum
688
# clean up yum
685
yum clean all
689
yum clean all
686
 
690
 
687
# workaround avahi segfault (#279301)
691
# workaround avahi segfault (#279301)
688
touch /etc/resolv.conf
692
touch /etc/resolv.conf
689
/sbin/restorecon /etc/resolv.conf
693
/sbin/restorecon /etc/resolv.conf
690
 
694
 
691
# create locate db
695
# create locate db
692
/etc/cron.daily/mlocate.cron
696
/etc/cron.daily/mlocate.cron
693
 
697
 
694
# list kernel just for debugging
698
# list kernel just for debugging
695
rpm -q kernel
699
rpm -q kernel
696
 
700
 
697
EOF_post
701
EOF_post
698
 
702
 
699
# run post-install script
703
# run post-install script
700
/bin/bash -x /root/post-install 2>&1 | tee /root/post-install.log
704
/bin/bash -x /root/post-install 2>&1 | tee /root/post-install.log
701
 
705
 
702
%end
706
%end
703
 
707
 
704
 
708
 
705
########################################################################
709
########################################################################
706
#
710
#
707
#  LiveCD post no chroot install 
711
#  LiveCD post no chroot install 
708
#
712
#
709
########################################################################
713
########################################################################
710
%post --nochroot
714
%post --nochroot
711
 
715
 
712
#***********************************************************************
716
#***********************************************************************
713
# Create /root/postnochroot-install
717
# Create /root/postnochroot-install
714
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
718
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
715
#***********************************************************************
719
#***********************************************************************
716
 
720
 
717
cat > /root/postnochroot-install << EOF_postnochroot
721
cat > /root/postnochroot-install << EOF_postnochroot
718
#!/bin/bash
722
#!/bin/bash
719
 
723
 
720
# Copy licensing information
724
# Copy licensing information
721
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL
725
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL
722
 
726
 
723
# customize boot menu entries
727
# customize boot menu entries
724
grep -B4 'menu default'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/default.txt
728
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
729
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
730
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
731
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
732
grep -A2 'label local'             \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/localboot.txt
729
 
733
 
730
sed "s/label linux0/label linuxtext0/"   \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textboot.txt
734
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
735
sed -i "s/Boot/Boot (Text Mode)/"                                           \$LIVE_ROOT/isolinux/textboot.txt
732
sed -i "s/liveimg/liveimg 3/"                                               \$LIVE_ROOT/isolinux/textboot.txt
736
sed -i "s/liveimg/liveimg 3/"                                               \$LIVE_ROOT/isolinux/textboot.txt
733
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textboot.txt
737
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textboot.txt
734
 
738
 
735
sed "s/label linux0/label install0/"     \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/install.txt
739
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
740
sed -i "s/Boot/Install/"                                                    \$LIVE_ROOT/isolinux/install.txt
737
sed -i "s/liveimg/liveimg liveinst noswap/"                                 \$LIVE_ROOT/isolinux/install.txt
741
sed -i "s/liveimg/liveimg liveinst noswap/"                                 \$LIVE_ROOT/isolinux/install.txt
738
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/install.txt
742
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/install.txt
739
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/install.txt
743
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/install.txt
740
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/install.txt
744
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/install.txt
741
 
745
 
742
sed "s/label linux0/label textinstall0/" \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textinstall.txt
746
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
747
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
748
sed -i "s/liveimg/liveimg textinst noswap/"                                 \$LIVE_ROOT/isolinux/textinstall.txt
745
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/textinstall.txt
749
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/textinstall.txt
746
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/textinstall.txt
750
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/textinstall.txt
747
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textinstall.txt
751
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textinstall.txt
748
 
752
 
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
753
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
 
754
 
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
755
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
 
756
 
753
cat \$LIVE_ROOT/isolinux/cleaned.txt      \
757
cat \$LIVE_ROOT/isolinux/cleaned.txt      \
754
    \$LIVE_ROOT/isolinux/default.txt      \
758
    \$LIVE_ROOT/isolinux/default.txt      \
755
    \$LIVE_ROOT/isolinux/textboot.txt     \
759
    \$LIVE_ROOT/isolinux/textboot.txt     \
756
    \$LIVE_ROOT/isolinux/basicvideo.txt   \
760
    \$LIVE_ROOT/isolinux/basicvideo.txt   \
757
    \$LIVE_ROOT/isolinux/check.txt        \
761
    \$LIVE_ROOT/isolinux/check.txt        \
758
    \$LIVE_ROOT/isolinux/install.txt      \
762
    \$LIVE_ROOT/isolinux/install.txt      \
759
    \$LIVE_ROOT/isolinux/textinstall.txt  \
763
    \$LIVE_ROOT/isolinux/textinstall.txt  \
760
    \$LIVE_ROOT/isolinux/memtest.txt      \
764
    \$LIVE_ROOT/isolinux/memtest.txt      \
761
    \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/isolinux.cfg
765
    \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/isolinux.cfg
762
rm -f \$LIVE_ROOT/isolinux/*.txt
766
rm -f \$LIVE_ROOT/isolinux/*.txt
763
 
767
 
764
EOF_postnochroot
768
EOF_postnochroot
765
 
769
 
766
# run postnochroot-install script
770
# run postnochroot-install script
767
/bin/bash -x /root/postnochroot-install 2>&1 | tee /root/postnochroot-install.log
771
/bin/bash -x /root/postnochroot-install 2>&1 | tee /root/postnochroot-install.log
768
 
772
 
769
%end
773
%end
770
 
774