Subversion Repositories livecd

Rev

Rev 316 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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