Subversion Repositories livecd

Rev

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

Rev 45 Rev 46
1
#!/bin/bash
1
#!/bin/bash
2
#
2
#
3
###############################################################
3
###############################################################
4
#
4
#
5
# Installes the LiveCD on local harddisk
5
# Installes the LiveCD on local harddisk
6
# 
6
# 
7
# Boot LiveCD and run this script as root
7
# Boot LiveCD and run this script as root
8
#
8
#
9
# Urs Beyerle, PSI
9
# Urs Beyerle, PSI
10
#
10
#
11
###############################################################
11
###############################################################
12
 
12
 
13
 
13
 
14
###############################################################
14
###############################################################
15
# Definitions
15
# Definitions
16
###############################################################
16
###############################################################
17
 
17
 
18
# set PATH
18
# set PATH
19
PATH="/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin"
19
PATH="/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin"
20
 
20
 
21
# RPMs that are no longer needed and can break future udpates
21
# RPMs that are no longer needed and can break future udpates
22
RPMS_TO_REMOVE="kernel-module-squashfs \
22
RPMS_TO_REMOVE="kernel-module-squashfs \
23
                kernel-module-unionfs \
23
                kernel-module-unionfs \
24
                kernel-module-aufs \
24
                kernel-module-aufs \
25
                unionfs-.* \
25
                unionfs-.* \
26
                aufs-.* \
26
                aufs-.* \
27
                squashfs-.*"
27
                squashfs-.*"
28
 
28
 
29
# RPMs that can break future Scientific Linux updates
29
# RPMs that can break future Scientific Linux updates
30
# because there are not part of Scientific Linux
30
# because there are not part of Scientific Linux
31
RPMS_TO_REMOVE_SL="kernel-module-ntfs \
31
RPMS_TO_REMOVE_SL="kernel-module-ntfs \
32
                   nvidia.*psi"
32
                   nvidia.*psi"
33
                   
33
                   
34
# RPMs that can break future PSI SL updates
34
# RPMs that can break future PSI SL updates
35
# because there are not part of PSI Scientific Linux
35
# because there are not part of PSI Scientific Linux
36
RPMS_TO_REMOVE_PSI=""
36
RPMS_TO_REMOVE_PSI=""
37
                   
37
                   
38
# files which should be restored from .ori files
38
# files which should be restored from .ori files
39
FILES_RESTORE="/etc/init.d/netfs \
39
FILES_RESTORE="/etc/init.d/netfs \
40
           /etc/init.d/autofs \
40
           /etc/init.d/autofs \
41
           /etc/init.d/halt \
41
           /etc/init.d/halt \
42
           /etc/init.d/network
42
           /etc/init.d/network
43
           /etc/init.d/functions \
43
           /etc/init.d/functions \
44
           /etc/rc.d/rc.sysinit \
44
           /etc/rc.d/rc.sysinit \
45
           /etc/sysconfig/afs \
45
           /etc/sysconfig/afs \
46
           /etc/motd \
46
           /etc/motd \
47
           /etc/redhat-release \
47
           /etc/redhat-release \
48
	   /etc/rc.d/rc.local"
48
	   /etc/rc.d/rc.local"
49
 
49
 
50
# LiveCD init scripts will be removed
50
# LiveCD init scripts will be removed
51
LIVECD_INIT_SCRIPTS="runfirst \
51
LIVECD_INIT_SCRIPTS="runfirst \
52
                    runveryfirst \
52
                    runveryfirst \
53
                    runlast \
53
                    runlast \
54
                    kudzu-auto \
54
                    kudzu-auto \
55
                    login"
55
                    login"
56
 
56
 
57
# Main directories which should be not be copied
57
# Main directories which should be not be copied
58
DIR_NOT_COPY="/proc \
58
DIR_NOT_COPY="/proc \
59
              /dev \
59
              /dev \
60
              /livecd \
60
              /livecd \
61
              /boot \
61
              /boot \
62
              /afs \
62
              /afs \
63
              /sys \
63
              /sys \
64
              /mnt \
64
              /mnt \
65
              /media \
65
              /media \
66
              /initrd"
66
              /initrd"
67
 
67
 
68
# Mount point of the new SL system
68
# Mount point of the new SL system
69
NEW=/mnt/harddisk
69
NEW=/mnt/harddisk
70
 
70
 
71
# Name of the script
71
# Name of the script
72
SCRIPTNAME=$( basename $0 )
72
SCRIPTNAME=$( basename $0 )
73
 
73
 
74
 
74
 
75
 
75
 
76
 
76
 
77
###############################################################
77
###############################################################
78
# Functions
78
# Functions
79
###############################################################
79
###############################################################
80
 
80
 
81
function usage() {
81
function usage() {
82
 
82
 
83
   ## Usage
83
   ## Usage
84
   # ----------------------------------------------------------
84
   # ----------------------------------------------------------
85
 
85
 
86
   cat <<EOF
86
   cat <<EOF
87
   
87
   
88
  $SCRIPTNAME [OPTIONS] -mbr=[DEVICE] [PARTITION]
88
  $SCRIPTNAME [OPTIONS] -mbr=[DEVICE] [PARTITION]
89
 
89
 
90
    Installes LiveCD on PARTITION and the bootloader grub into 
90
    Installes LiveCD on PARTITION and the bootloader grub into 
91
    the Master Boot Record (MBR) of DEVICE. The MBR will be 
91
    the Master Boot Record (MBR) of DEVICE. The MBR will be 
92
    backed up to PARTITION.
92
    backed up to PARTITION.
93
 
93
 
94
  OPTIONS:
94
  OPTIONS:
95
 
95
 
96
    -h   --help       : Print this screen
96
    -h   --help       : Print this screen
97
    -swap=[partition] : Use [partition] as swap
97
    -swap=[partition] : Use [partition] as swap
98
    -win=[partition]  : Your active Windows partition. If not given, 
98
    -win=[partition]  : Your active Windows partition. If not given, 
99
                        $SCRIPTNAME tries to find it
99
                        $SCRIPTNAME tries to find it
100
    -nogrub           : Do not install grub. You have to install 
100
    -nogrub           : Do not install grub. You have to install 
101
                        manually a bootloader (not recommended)
101
                        manually a bootloader (not recommended)
102
    -floppy           : Needed, if grub should be installed on floppy
102
    -floppy           : Needed, if grub should be installed on floppy
103
                        In this case use -mbr=/dev/fd0 -floppy
103
                        In this case use -mbr=/dev/fd0 -floppy
104
    -norpmremove      : Do not remove RPMs that can break future 
104
    -norpmremove      : Do not remove RPMs that can break future 
105
                        updates (not recommended)
105
                        updates (not recommended)
106
    -y                : Answer all questions with yes
106
    -y                : Answer all questions with yes
107
 
107
 
108
  Example:
108
  Example:
109
 
109
 
110
  $SCRIPTNAME -swap=/dev/sda3 -mbr=/dev/sda /dev/sda2
110
  $SCRIPTNAME -swap=/dev/sda3 -mbr=/dev/sda /dev/sda2
111
 
111
 
112
    Will install LiveCD on /dev/sda2 (= second partition on 
112
    Will install LiveCD on /dev/sda2 (= second partition on 
113
    first SATA disk). All data on /dev/sda2 will be deleted.
113
    first SATA disk). All data on /dev/sda2 will be deleted.
114
    /dev/sda3 has to be a Linux Swap partion. GRUB will be 
114
    /dev/sda3 has to be a Linux Swap partion. GRUB will be 
115
    installed in the MBR of /dev/sda (= first SATA disk).
115
    installed in the MBR of /dev/sda (= first SATA disk).
116
   
116
   
117
  Remarks:
117
  Remarks:
118
 
118
 
119
    To display your hard disk partitions, user 'fdisk -l'.
119
    To display your hard disk partitions, user 'fdisk -l'.
120
    Use fdisk, qtparted or parted to create an empty Linux
120
    Use fdisk, qtparted or parted to create an empty Linux
121
    partition.
121
    partition.
122
 
122
 
123
EOF
123
EOF
124
}
124
}
125
 
125
 
126
 
126
 
127
function exit_now() {
127
function exit_now() {
128
 
128
 
129
    local exitcode=$1
129
    local exitcode=$1
130
    umount $INSTALL_PART 2>/dev/null
130
    umount $INSTALL_PART 2>/dev/null
131
    exit $exitcode
131
    exit $exitcode
132
}
132
}
133
 
133
 
134
 
134
 
135
 
135
 
136
###############################################################
136
###############################################################
137
# Main
137
# Main
138
###############################################################
138
###############################################################
139
 
139
 
140
### are we root?
140
### are we root?
141
### -----------------------------------------------------------
141
### -----------------------------------------------------------
142
if [ "$( whoami )" != "root" ]; then
142
if [ "$( whoami )" != "root" ]; then
143
    echo; echo "Please run this script as root: 'su - -c $SCRIPTNAME'"; echo
143
    echo; echo "Please run this script as root: 'su - -c $SCRIPTNAME'"; echo
144
    exit_now 1
144
    exit_now 1
145
fi
145
fi
146
 
146
 
147
 
147
 
148
### read options from command-line
148
### read options from command-line
149
### -----------------------------------------------------------
149
### -----------------------------------------------------------
150
while [ $# -gt 0 ]; do
150
while [ $# -gt 0 ]; do
151
 
151
 
152
    case "$1" in
152
    case "$1" in
153
       -h)
153
       -h)
154
            usage; exit_now;;
154
            usage; exit_now;;
155
 
155
 
156
       --help)
156
       --help)
157
            usage; exit_now;;
157
            usage; exit_now;;
158
 
158
 
159
       -swap*)
159
       -swap*)
160
           if echo $1 | grep -q '=' ; then
160
           if echo $1 | grep -q '=' ; then
161
	       SWAP_PART=$( echo $1 | sed 's/^-swap=//' )
161
	       SWAP_PART=$( echo $1 | sed 's/^-swap=//' )
162
	   else
162
	   else
163
	       shift
163
	       shift
164
               SWAP_PART=$1
164
               SWAP_PART=$1
165
	   fi
165
	   fi
166
	   ;;
166
	   ;;
167
 
167
 
168
       -mbr*)
168
       -mbr*)
169
           if echo $1 | grep -q '=' ; then
169
           if echo $1 | grep -q '=' ; then
170
	       MBR_DEV=$( echo $1 | sed 's/^-mbr=//' )
170
	       MBR_DEV=$( echo $1 | sed 's/^-mbr=//' )
171
	   else
171
	   else
172
	       shift
172
	       shift
173
               MBR_DEV=$1
173
               MBR_DEV=$1
174
	   fi
174
	   fi
175
	   ;;
175
	   ;;
176
 
176
 
177
       -win*)
177
       -win*)
178
           if echo $1 | grep -q '=' ; then
178
           if echo $1 | grep -q '=' ; then
179
	       WIN_PART=$( echo $1 | sed 's/^-win=//' )
179
	       WIN_PART=$( echo $1 | sed 's/^-win=//' )
180
	   else
180
	   else
181
	       shift
181
	       shift
182
               WIN_PART=$1
182
               WIN_PART=$1
183
	   fi
183
	   fi
184
	   ;;
184
	   ;;
185
 
185
 
186
       -nogrub)
186
       -nogrub)
187
            NOGRUB=$1;;
187
            NOGRUB=$1;;
188
 
188
 
189
       -norpmremove)
189
       -norpmremove)
190
            NORPMREMOVE=$1;;
190
            NORPMREMOVE=$1;;
191
 
191
 
192
       -floppy)
192
       -floppy)
193
            FLOPPY=$1;;
193
            FLOPPY=$1;;
194
 
194
 
195
       -y)
195
       -y)
196
            YES=$1;;
196
            YES=$1;;
197
 
197
 
198
       *)
198
       *)
199
            INSTALL_PART=$1;;
199
            INSTALL_PART=$1;;
200
    esac
200
    esac
201
 
201
 
202
    shift
202
    shift
203
 
203
 
204
done
204
done
205
echo
205
echo
206
 
206
 
207
 
207
 
208
### display fdisk -l
208
### display fdisk -l
209
### -----------------------------------------------------------
209
### -----------------------------------------------------------
210
echo "Output of 'fdisk -l' ..."
210
echo "Output of 'fdisk -l' ..."
211
fdisk -l
211
fdisk -l
212
echo
212
echo
213
 
213
 
214
 
214
 
215
### test if $INSTALL_PART is defined
215
### test if $INSTALL_PART is defined
216
### -----------------------------------------------------------
216
### -----------------------------------------------------------
217
if [ ! $INSTALL_PART ]; then
217
if [ ! $INSTALL_PART ]; then
218
    echo "No partition defined for installation"
218
    echo "No partition defined for installation"
219
    echo "Please see '$SCRIPTNAME -h'"; echo
219
    echo "Please see '$SCRIPTNAME -h'"; echo
220
    exit_now 1
220
    exit_now 1
221
fi
221
fi
222
 
222
 
223
 
223
 
224
### test if MBR_DEV is given
224
### test if MBR_DEV is given
225
### -----------------------------------------------------------
225
### -----------------------------------------------------------
226
if [ ! $NOGRUB ]; then
226
if [ ! $NOGRUB ]; then
227
    if [ ! $MBR_DEV ]; then
227
    if [ ! $MBR_DEV ]; then
228
	echo "No MBR device defined."
228
	echo "No MBR device defined."
229
	echo "Please see '$SCRIPTNAME -h'"; echo
229
	echo "Please see '$SCRIPTNAME -h'"; echo
230
	exit_now 1
230
	exit_now 1
231
    fi
231
    fi
232
fi
232
fi
233
 
233
 
234
 
234
 
235
### test if $INSTALL_PART exists
235
### test if $INSTALL_PART exists
236
### -----------------------------------------------------------
236
### -----------------------------------------------------------
237
fdisk -l | cut -d" " -f1 | grep -q "^${INSTALL_PART}$"
237
fdisk -l | cut -d" " -f1 | grep -q "^${INSTALL_PART}$"
238
if [ "$?" != "0" ]; then
238
if [ "$?" != "0" ]; then
239
    echo "Partition $INSTALL_PART not found! See 'fdisk -l'"
239
    echo "Partition $INSTALL_PART not found! See 'fdisk -l'"
240
    echo "Or you have to reboot first to make the partition table active"; echo
240
    echo "Or you have to reboot first to make the partition table active"; echo
241
    exit_now 1
241
    exit_now 1
242
fi
242
fi
243
 
243
 
244
 
244
 
245
### test if $INSTALL_PART is a Linux partition
245
### test if $INSTALL_PART is a Linux partition
246
### -----------------------------------------------------------
246
### -----------------------------------------------------------
247
fdisk -l | grep "Linux$" | cut -d" " -f1 | grep -q "^${INSTALL_PART}$"
247
fdisk -l | grep "Linux$" | cut -d" " -f1 | grep -q "^${INSTALL_PART}$"
248
if [ "$?" != "0" ]; then
248
if [ "$?" != "0" ]; then
249
    echo "Partition $INSTALL_PART is not a Linux partition! (see 'fdisk -l')"
249
    echo "Partition $INSTALL_PART is not a Linux partition! (see 'fdisk -l')"
250
    echo "Use fdisk and/or qtparted to create a Linux partition!"
250
    echo "Use fdisk and/or qtparted to create a Linux partition!"
251
    echo "You have to reboot first to make the partition table active"; echo
251
    echo "You have to reboot first to make the partition table active"; echo
252
    exit_now 1
252
    exit_now 1
253
fi
253
fi
254
 
254
 
255
 
255
 
256
### test if $SWAP_PART exists and is a Linux Swap partition
256
### test if $SWAP_PART exists and is a Linux Swap partition
257
### -----------------------------------------------------------
257
### -----------------------------------------------------------
258
if [ $SWAP_PART ]; then
258
if [ $SWAP_PART ]; then
259
    fdisk -l | cut -d" " -f1 | grep -q "^${SWAP_PART}$"
259
    fdisk -l | cut -d" " -f1 | grep -q "^${SWAP_PART}$"
260
    if [ "$?" != "0" ]; then
260
    if [ "$?" != "0" ]; then
261
	echo "Swap partition $SWAP_PART not found! (see 'fdisk -l')"
261
	echo "Swap partition $SWAP_PART not found! (see 'fdisk -l')"
262
	echo "Or you have to reboot first to make the partition table active"; echo
262
	echo "Or you have to reboot first to make the partition table active"; echo
263
	exit_now 1
263
	exit_now 1
264
    fi
264
    fi
265
    fdisk -l | grep "Linux swap" | cut -d" " -f1 | grep -q "^${SWAP_PART}$"
265
    fdisk -l | grep "Linux swap" | cut -d" " -f1 | grep -q "^${SWAP_PART}$"
266
    if [ "$?" != "0" ]; then
266
    if [ "$?" != "0" ]; then
267
	echo "Partition $SWAP_PART is not a Linux swap partition! (see 'fdisk -l')"
267
	echo "Partition $SWAP_PART is not a Linux swap partition! (see 'fdisk -l')"
268
	echo "Use fdisk and/or qtparted to create a Linux Swap partition!"
268
	echo "Use fdisk and/or qtparted to create a Linux Swap partition!"
269
	echo "You have to reboot first to make the partition table active"; echo
269
	echo "You have to reboot first to make the partition table active"; echo
270
	exit_now 1
270
	exit_now 1
271
    fi
271
    fi
272
fi
272
fi
273
 
273
 
274
 
274
 
275
### set $INSTALL_DEV (eg. /dev/sda)
275
### set $INSTALL_DEV (eg. /dev/sda)
276
### -----------------------------------------------------------
276
### -----------------------------------------------------------
277
INSTALL_DEV=$( echo "$INSTALL_PART" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' )
277
INSTALL_DEV=$( echo "$INSTALL_PART" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' )
278
INSTALL_PART_NR=$( echo "$INSTALL_PART" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' )
278
INSTALL_PART_NR=$( echo "$INSTALL_PART" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' )
279
 
279
 
280
 
280
 
281
### print warning
281
### print warning
282
### -----------------------------------------------------------
282
### -----------------------------------------------------------
283
echo                     "------------------------------------------------------------"
283
echo                     "------------------------------------------------------------"
284
echo                     "   LiveCD will be installed on partition $INSTALL_PART"
284
echo                     "   LiveCD will be installed on partition $INSTALL_PART"
285
[ "$SWAP_PART" ] && echo " Partition $SWAP_PART will be used as swap partition."
285
[ "$SWAP_PART" ] && echo " Partition $SWAP_PART will be used as swap partition."
286
[ ! $NOGRUB ]    && echo " GRUB will be installed in Master Boot Record of $MBR_DEV"
286
[ ! $NOGRUB ]    && echo " GRUB will be installed in Master Boot Record of $MBR_DEV"
287
echo                     "       !! All data on $INSTALL_PART will be lost !!"
287
echo                     "       !! All data on $INSTALL_PART will be lost !!"
288
echo                     "------------------------------------------------------------"
288
echo                     "------------------------------------------------------------"
289
echo
289
echo
290
 
290
 
291
 
291
 
292
### continue?
292
### continue?
293
### -----------------------------------------------------------
293
### -----------------------------------------------------------
294
if [ ! $YES ]; then
294
if [ ! $YES ]; then
295
    echo -n "Continue (y/N)? "
295
    echo -n "Continue (y/N)? "
296
    read key
296
    read key
297
    echo
297
    echo
298
    [ "$key" != "y" ] && exit_now 0
298
    [ "$key" != "y" ] && exit_now 0
299
fi
299
fi
300
 
300
 
301
 
301
 
302
### format $SWAP_PART
302
### format $SWAP_PART
303
### -----------------------------------------------------------
303
### -----------------------------------------------------------
304
if [ $SWAP_PART ]; then
304
if [ $SWAP_PART ]; then
305
    echo "Make swap on $SWAP_PART ..."
305
    echo "Make swap on $SWAP_PART ..."
306
    mkswap $SWAP_PART
306
    mkswap $SWAP_PART
307
    echo
307
    echo
308
fi
308
fi
309
 
309
 
310
 
310
 
311
### format $INSTALL_PART
311
### format $INSTALL_PART
312
### -----------------------------------------------------------
312
### -----------------------------------------------------------
313
echo -n "Format $INSTALL_PART, please wait ... " 
313
echo -n "Format $INSTALL_PART, please wait ... " 
314
mkfs.ext3 -q $INSTALL_PART || exit_now 1
314
mkfs.ext3 -q $INSTALL_PART || exit_now 1
315
echo "done."; echo
315
echo "done."; echo
316
 
316
 
317
 
317
 
318
### mount $INSTALL_PART
318
### mount $INSTALL_PART
319
### -----------------------------------------------------------
319
### -----------------------------------------------------------
320
echo -n "Try to mount $INSTALL_PART to $NEW ... "
320
echo -n "Try to mount $INSTALL_PART to $NEW ... "
321
mkdir -p $NEW
321
mkdir -p $NEW
322
mount $INSTALL_PART $NEW || exit_now 1
322
mount $INSTALL_PART $NEW || exit_now 1
323
echo "done."; echo
323
echo "done."; echo
324
 
324
 
325
 
325
 
326
### copy root dirs
326
### copy root dirs
327
### -----------------------------------------------------------
327
### -----------------------------------------------------------
328
echo "Copy Live System to $INSTALL_PART ..."
328
echo "Copy Live System to $INSTALL_PART ..."
329
root_dirs=$( ls / )
329
root_dirs=$( ls / )
330
for dir in $root_dirs; do
330
for dir in $root_dirs; do
331
    # check if dir is not in $DIR_NOT_COPY
331
    # check if dir is not in $DIR_NOT_COPY
332
    do_not_copy=""
332
    do_not_copy=""
333
    for not_dir in $DIR_NOT_COPY; do
333
    for not_dir in $DIR_NOT_COPY; do
334
	if [ "$not_dir" = "/$dir" ]; then 
334
	if [ "$not_dir" = "/$dir" ]; then 
335
	    do_not_copy="yes"
335
	    do_not_copy="yes"
336
	    break
336
	    break
337
	fi
337
	fi
338
    done
338
    done
339
    # do not copy links
339
    # do not copy links
340
    [ -L /$dir ] && do_not_copy="yes"
340
    [ -L /$dir ] && do_not_copy="yes"
341
 
341
 
342
    fail=""
342
    fail=""
343
    if [ ! $do_not_copy ]; then
343
    if [ ! $do_not_copy ]; then
344
	echo -n "  * Copy  /$dir ... "
344
	echo -n "  * Copy  /$dir ... "
345
	cp -a /$dir $NEW || fail=true
345
	cp -a /$dir $NEW || fail=true
346
	echo "done."
346
	echo "done."
347
    fi
347
    fi
348
done
348
done
349
echo
349
echo
350
if [ $fail ]; then
350
if [ $fail ]; then
351
    echo "ERROR: Not everything was copied to $INSTALL_PART"
351
    echo "ERROR: Not everything was copied to $INSTALL_PART"
352
    exit_now 1
352
    exit_now 1
353
fi
353
fi
354
 
354
 
355
 
355
 
356
### move /usr/opt back to /opt
356
### move /usr/opt back to /opt
357
### -----------------------------------------------------------
357
### -----------------------------------------------------------
358
if [ -d $NEW/usr/opt ]; then
358
if [ -d $NEW/usr/opt ]; then
359
    echo -n "Move /opt back ... "
359
    echo -n "Move /opt back ... "
360
    mv $NEW/usr/opt $NEW/
360
    mv $NEW/usr/opt $NEW/
361
    echo "done."; echo
361
    echo "done."; echo
362
fi
362
fi
363
 
363
 
364
 
364
 
365
### create dirs which were not copied
365
### create dirs which were not copied
366
### -----------------------------------------------------------
366
### -----------------------------------------------------------
367
for dir in $DIR_NOT_COPY; do
367
for dir in $DIR_NOT_COPY; do
368
    mkdir $NEW/$dir
368
    mkdir $NEW/$dir
369
done
369
done
370
# we do not need this directories
370
# we do not need this directories
371
rmdir $NEW/livecd
371
rmdir $NEW/livecd
372
# if not yet existing, create
372
# if not yet existing, create
373
mkdir -p $NEW/srv
373
mkdir -p $NEW/srv
374
mkdir -p $NEW/selinux
374
mkdir -p $NEW/selinux
375
 
375
 
376
 
376
 
377
### copy back original files
377
### copy back original files
378
### -----------------------------------------------------------
378
### -----------------------------------------------------------
379
echo -n "Restore original files ... " 
379
echo -n "Restore original files ... " 
380
for file in $FILES_RESTORE; do
380
for file in $FILES_RESTORE; do
381
    [ -r $NEW/${file}.ori ] && mv -f $NEW/${file}.ori $NEW/${file} 
381
    [ -r $NEW/${file}.ori ] && mv -f $NEW/${file}.ori $NEW/${file} 
382
done
382
done
383
echo "done."; echo
383
echo "done."; echo
384
 
384
 
385
 
385
 
386
### define kernel version
386
### define kernel version
387
### -----------------------------------------------------------
387
### -----------------------------------------------------------
388
rpm --quiet -q kernel     && UP_installed=true
388
rpm --quiet -q kernel     && UP_installed=true
389
rpm --quiet -q kernel-smp && SMP_installed=true
389
rpm --quiet -q kernel-smp && SMP_installed=true
390
[ $UP_installed ]  && KERNEL_VERSION=$( rpm -q --qf "%{V}-%{R}" kernel 2>/dev/null )
390
[ $UP_installed ]  && KERNEL_VERSION=$( rpm -q --qf "%{V}-%{R}" kernel 2>/dev/null )
391
[ $SMP_installed ] && KERNEL_VERSION=$( rpm -q --qf "%{V}-%{R}" kernel-smp  2>/dev/null )
391
[ $SMP_installed ] && KERNEL_VERSION=$( rpm -q --qf "%{V}-%{R}" kernel-smp  2>/dev/null )
392
if [ ! $KERNEL_VERSION ]; then
392
if [ ! $KERNEL_VERSION ]; then
393
    echo "ERROR: Kernel version could not be determined - installation failed"; echo
393
    echo "ERROR: Kernel version could not be determined - installation failed"; echo
394
    exit_now 1
394
    exit_now 1
395
fi    
395
fi    
396
 
396
 
397
 
397
 
398
 
398
 
399
if [ ! $NOGRUB ]; then
399
if [ ! $NOGRUB ]; then
400
 
400
 
401
    ### Backup Master Boot Record MBR
401
    ### Backup Master Boot Record MBR
402
    ### -----------------------------------------------------------
402
    ### -----------------------------------------------------------
403
    if [ ! $NOGRUB ]; then
403
    if [ ! $NOGRUB ]; then
404
	# do we have already a backup?
404
	# do we have already a backup?
405
	MBR_FILENAME="MBR$( echo $MBR_DEV | tr / _ ).bak"
405
	MBR_FILENAME="MBR$( echo $MBR_DEV | tr / _ ).bak"
406
	if [ ! -e /tmp/$MBR_FILENAME ]; then
406
	if [ ! -e /tmp/$MBR_FILENAME ]; then
407
	    echo "Backup Master Boot Record (MBR) of $MBR_DEV ..."
407
	    echo "Backup Master Boot Record (MBR) of $MBR_DEV ..."
408
	    dd if=$MBR_DEV of=/tmp/$MBR_FILENAME bs=512 count=1
408
	    dd if=$MBR_DEV of=/tmp/$MBR_FILENAME bs=512 count=1
409
	fi
409
	fi
410
	cp -a /tmp/$MBR_FILENAME $NEW/$MBR_FILENAME
410
	cp -a /tmp/$MBR_FILENAME $NEW/$MBR_FILENAME
411
	echo "MBR saved as $MBR_FILENAME on $INSTALL_PART and on /tmp"
411
	echo "MBR saved as $MBR_FILENAME on $INSTALL_PART and on /tmp"
412
	echo
412
	echo
413
    fi
413
    fi
414
 
414
 
415
 
415
 
416
    ### install grub
416
    ### install grub
417
    ### -----------------------------------------------------------
417
    ### -----------------------------------------------------------
418
    echo "Run grub-install ... "
418
    echo "Run grub-install ... "
419
    mkdir -p $NEW/boot/grub
419
    mkdir -p $NEW/boot/grub
420
    if [ $FLOPPY ]; then
420
    if [ $FLOPPY ]; then
421
	grub-install --root-directory=$NEW $MBR_DEV
421
	grub-install --root-directory=$NEW $MBR_DEV
422
    else
422
    else
423
	grub-install --no-floppy --root-directory=$NEW $MBR_DEV
423
	grub-install --no-floppy --root-directory=$NEW $MBR_DEV
424
    fi
424
    fi
425
    echo "done."; echo
425
    echo "done."; echo
426
 
426
 
427
 
427
 
428
    ### check for device.map file 
428
    ### check for device.map file 
429
    ### -----------------------------------------------------------
429
    ### -----------------------------------------------------------
430
    DEVICE_MAP=$NEW/boot/grub/device.map
430
    DEVICE_MAP=$NEW/boot/grub/device.map
431
    if [ ! -e $NEW/boot/grub/device.map ]; then
431
    if [ ! -e $NEW/boot/grub/device.map ]; then
432
	echo "ERROR: $NEW/boot/grub/device.map not found"
432
	echo "ERROR: $NEW/boot/grub/device.map not found"
433
	exit_now 1
433
	exit_now 1
434
    fi
434
    fi
435
 
435
 
436
 
436
 
437
    ### convert dev syntax to grub syntax
437
    ### convert dev syntax to grub syntax
438
    ### -----------------------------------------------------------
438
    ### -----------------------------------------------------------
439
    GRUB_INSTALL_DEV=$( grep $INSTALL_DEV $DEVICE_MAP | awk '{ print $1 }' )
439
    GRUB_INSTALL_DEV=$( grep $INSTALL_DEV $DEVICE_MAP | awk '{ print $1 }' )
440
    GRUB_ROOT_PART=$( echo "$GRUB_INSTALL_DEV" | sed "s%)$%,`expr $INSTALL_PART_NR - 1`)%" )
440
    GRUB_ROOT_PART=$( echo "$GRUB_INSTALL_DEV" | sed "s%)$%,`expr $INSTALL_PART_NR - 1`)%" )
441
 
441
 
442
 
442
 
443
    ### find active Windows partition
443
    ### find active Windows partition
444
    ### -----------------------------------------------------------
444
    ### -----------------------------------------------------------
445
    if [ ! $WIN_PART ]; then
445
    if [ ! $WIN_PART ]; then
446
        # try to find active Windows partition
446
        # try to find active Windows partition
447
	WIN_PART=$( fdisk -l 2>/dev/null | awk '{ if ($2 == "*" && $7 ~ "NTFS") print $1 }' | head -1 )
447
	WIN_PART=$( fdisk -l 2>/dev/null | awk '{ if ($2 == "*" && $7 ~ "NTFS") print $1 }' | head -1 )
448
    fi
448
    fi
449
 
449
 
450
    if [ $WIN_PART ]; then
450
    if [ $WIN_PART ]; then
451
	WIN_installed=true
451
	WIN_installed=true
452
	WIN_DISK=$( echo "$WIN_PART" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' )
452
	WIN_DISK=$( echo "$WIN_PART" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' )
453
	WIN_PART_NR=$( echo "$WIN_PART" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' )
453
	WIN_PART_NR=$( echo "$WIN_PART" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' )
454
        # convert dev syntax to grub syntax
454
        # convert dev syntax to grub syntax
455
	GRUB_WIN_DEV=$( grep $WIN_DISK $DEVICE_MAP | awk '{ print $1 }' )
455
	GRUB_WIN_DEV=$( grep $WIN_DISK $DEVICE_MAP | awk '{ print $1 }' )
456
	GRUB_WIN_PART=$( echo "$GRUB_WIN_DEV" | sed "s%)$%,`expr $WIN_PART_NR - 1`)%" )
456
	GRUB_WIN_PART=$( echo "$GRUB_WIN_DEV" | sed "s%)$%,`expr $WIN_PART_NR - 1`)%" )
457
 
457
 
458
        # $GRUB_WIN_PART should be something like (hd0,0)
458
        # $GRUB_WIN_PART should be something like (hd0,0)
459
	echo "Found active Windows partition ( $WIN_PART = $GRUB_WIN_PART )" 
459
	echo "Found active Windows partition ( $WIN_PART = $GRUB_WIN_PART )" 
460
	echo "Will add entry for Windows in GRUB."
460
	echo "Will add entry for Windows in GRUB."
461
	echo
461
	echo
462
    fi
462
    fi
463
 
463
 
464
 
464
 
465
    ### create grub.conf file
465
    ### create grub.conf file
466
    ### -----------------------------------------------------------
466
    ### -----------------------------------------------------------
467
    echo "Create grub.conf ..."
467
    echo "Create grub.conf ..."
468
 
468
 
469
    TITLE="Linux"
469
    TITLE="Linux"
470
    [ -e $NEW//etc/redhat-release ] && TITLE=$( cat $NEW/etc/redhat-release )
470
    [ -e $NEW//etc/redhat-release ] && TITLE=$( cat $NEW/etc/redhat-release )
471
 
471
 
472
    cat > $NEW/boot/grub/grub.conf <<EOF
472
    cat > $NEW/boot/grub/grub.conf <<EOF
473
# grub.conf generated by $SCRIPTNAME
473
# grub.conf generated by $SCRIPTNAME
474
default=0
474
default=0
475
timeout=5
475
timeout=5
476
splashimage=$GRUB_ROOT_PART/boot/grub/splash.xpm.gz
476
splashimage=$GRUB_ROOT_PART/boot/grub/splash.xpm.gz
477
#hiddenmenu
477
#hiddenmenu
478
EOF
478
EOF
479
 
479
 
480
    if [ $UP_installed ]; then
480
    if [ $UP_installed ]; then
481
	echo "Add entry for UP kernel into grub.conf"
481
	echo "Add entry for UP kernel into grub.conf"
482
	cat >> $NEW/boot/grub/grub.conf <<EOF
482
	cat >> $NEW/boot/grub/grub.conf <<EOF
483
title $TITLE (${KERNEL_VERSION})
483
title $TITLE (${KERNEL_VERSION})
484
        root $GRUB_ROOT_PART
484
        root $GRUB_ROOT_PART
485
	kernel /boot/vmlinuz-$KERNEL_VERSION ro root=$INSTALL_PART
485
	kernel /boot/vmlinuz-$KERNEL_VERSION ro root=$INSTALL_PART
486
	initrd /boot/initrd-$KERNEL_VERSION.img
486
	initrd /boot/initrd-$KERNEL_VERSION.img
487
EOF
487
EOF
488
    fi
488
    fi
489
 
489
 
490
    if [ $SMP_installed ]; then
490
    if [ $SMP_installed ]; then
491
	echo "Add entry for SMP kernel into grub.conf"
491
	echo "Add entry for SMP kernel into grub.conf"
492
	cat >> $NEW/boot/grub/grub.conf <<EOF
492
	cat >> $NEW/boot/grub/grub.conf <<EOF
493
title $TITLE (${KERNEL_VERSION}smp)
493
title $TITLE (${KERNEL_VERSION}smp)
494
        root $GRUB_ROOT_PART
494
        root $GRUB_ROOT_PART
495
	kernel /boot/vmlinuz-${KERNEL_VERSION}smp ro root=$INSTALL_PART
495
	kernel /boot/vmlinuz-${KERNEL_VERSION}smp ro root=$INSTALL_PART
496
	initrd /boot/initrd-${KERNEL_VERSION}smp.img
496
	initrd /boot/initrd-${KERNEL_VERSION}smp.img
497
EOF
497
EOF
498
    fi
498
    fi
499
 
499
 
500
    if [ $WIN_installed ]; then
500
    if [ $WIN_installed ]; then
501
	echo "Add entry for Windows into grub.conf"
501
	echo "Add entry for Windows into grub.conf"
502
	cat >> $NEW/boot/grub/grub.conf <<EOF
502
	cat >> $NEW/boot/grub/grub.conf <<EOF
503
title Windows
503
title Windows
504
        rootnoverify $GRUB_WIN_PART
504
        rootnoverify $GRUB_WIN_PART
505
        chainloader +1
505
        chainloader +1
506
EOF
506
EOF
507
    fi
507
    fi
508
 
508
 
509
    chmod 600 $NEW/boot/grub/grub.conf
509
    chmod 600 $NEW/boot/grub/grub.conf
510
    ln -s ../boot/grub/grub.conf $NEW/etc/grub.conf
510
    ln -s ../boot/grub/grub.conf $NEW/etc/grub.conf
511
    ln -s ./grub.conf $NEW/boot/grub/menu.lst
511
    ln -s ./grub.conf $NEW/boot/grub/menu.lst
512
    echo "done."; echo
512
    echo "done."; echo
513
 
513
 
514
fi
514
fi
515
 
515
 
516
 
516
 
517
### install kernel and other files into /boot
517
### install kernel and other files into /boot
518
### -----------------------------------------------------------
518
### -----------------------------------------------------------
519
echo "Install kernel(s) ..."
519
echo "Install kernel(s) ..."
520
 
520
 
521
[ -e /boot/vmlinuz ]      && BOOT_DIR=/boot
521
[ -e /boot/vmlinuz ]      && BOOT_DIR=/boot
522
[ -e /boot/boot/vmlinuz ] && BOOT_DIR=/boot/boot
522
[ -e /boot/boot/vmlinuz ] && BOOT_DIR=/boot/boot
523
 
523
 
524
if [ ! $BOOT_DIR ]; then
524
if [ ! $BOOT_DIR ]; then
525
    echo "ERROR: No kernel found - installation failed"; echo
525
    echo "ERROR: No kernel found - installation failed"; echo
526
    exit_now 1
526
    exit_now 1
527
fi
527
fi
528
 
528
 
529
cp -a $BOOT_DIR/vmlinuz            $NEW/boot/vmlinuz-${KERNEL_VERSION}
529
cp -a $BOOT_DIR/vmlinuz            $NEW/boot/vmlinuz-${KERNEL_VERSION}
530
cp -a $BOOT_DIR/vmlinuzs           $NEW/boot/vmlinuz-${KERNEL_VERSION}smp  2>/dev/null
530
cp -a $BOOT_DIR/vmlinuzs           $NEW/boot/vmlinuz-${KERNEL_VERSION}smp  2>/dev/null
531
cp -a $BOOT_DIR/System.map-*       $NEW/boot/
531
cp -a $BOOT_DIR/System.map-*       $NEW/boot/
532
cp -a $BOOT_DIR/config-*           $NEW/boot/
532
cp -a $BOOT_DIR/config-*           $NEW/boot/
533
cp -a $BOOT_DIR/symvers-*.gz       $NEW/boot/        2>/dev/null
533
cp -a $BOOT_DIR/symvers-*.gz       $NEW/boot/        2>/dev/null
534
cp -a $BOOT_DIR/grub/splash.xpm.gz $NEW/boot/grub/
534
cp -a $BOOT_DIR/grub/splash.xpm.gz $NEW/boot/grub/
535
cp -a $BOOT_DIR/message.ja         $NEW/boot/        2>/dev/null
535
cp -a $BOOT_DIR/message.ja         $NEW/boot/        2>/dev/null
536
cp -a $BOOT_DIR/message            $NEW/boot/        2>/dev/null
536
cp -a $BOOT_DIR/message            $NEW/boot/        2>/dev/null
537
 
537
 
538
echo "done."; echo
538
echo "done."; echo
539
 
539
 
540
 
540
 
541
### create /etc/fstab
541
### create /etc/fstab
542
### -----------------------------------------------------------
542
### -----------------------------------------------------------
543
cat > $NEW/etc/fstab <<EOF
543
cat > $NEW/etc/fstab <<EOF
544
$INSTALL_PART         /                    ext3    defaults        1 1
544
$INSTALL_PART         /                    ext3    defaults        1 1
545
devpts            /dev/pts             devpts  gid=5,mode=620  0 0
545
devpts            /dev/pts             devpts  gid=5,mode=620  0 0
546
tmpfs             /dev/shm             tmpfs   defaults        0 0
546
tmpfs             /dev/shm             tmpfs   defaults        0 0
547
proc              /proc                proc    defaults        0 0
547
proc              /proc                proc    defaults        0 0
548
sysfs             /sys                 sysfs   defaults        0 0
548
sysfs             /sys                 sysfs   defaults        0 0
549
EOF
549
EOF
550
if [ $SWAP_PART ]; then
550
if [ $SWAP_PART ]; then
551
    echo "$SWAP_PART         swap                 swap    defaults        0 0" >> $NEW/etc/fstab
551
    echo "$SWAP_PART         swap                 swap    defaults        0 0" >> $NEW/etc/fstab
552
fi
552
fi
553
 
553
 
554
 
554
 
555
### make initrd 
555
### make initrd 
556
### (needs $NEW/etc/fstab to find correct modules for root filesystem !!)
556
### (needs $NEW/etc/fstab to find correct modules for root filesystem !!)
557
### -----------------------------------------------------------
557
### -----------------------------------------------------------
558
echo "Create initrd(s) ..."
558
echo "Create initrd(s) ..."
559
# initrd should not be build on tmpfs (we take $NEW/tmp instead of /tmp)
559
# initrd should not be build on tmpfs (we take $NEW/tmp instead of /tmp)
560
sed -i "s|^TMPDIR=.*|TMPDIR=\"$NEW/tmp\"|" /usr/sbin/livecd-mkinitrd
560
sed -i "s|^TMPDIR=.*|TMPDIR=\"$NEW/tmp\"|" /usr/sbin/livecd-mkinitrd
561
 
561
 
562
if [ $UP_installed ]; then
562
if [ $UP_installed ]; then
563
    depmod -a ${KERNEL_VERSION}
563
    depmod -a ${KERNEL_VERSION}
564
    /usr/sbin/livecd-mkinitrd --fstab=$NEW/etc/fstab \
564
    /usr/sbin/livecd-mkinitrd --fstab=$NEW/etc/fstab \
565
                    $NEW//boot/initrd-${KERNEL_VERSION}.img ${KERNEL_VERSION}
565
                    $NEW//boot/initrd-${KERNEL_VERSION}.img ${KERNEL_VERSION}
566
    if [ ! -e $NEW/boot/initrd-${KERNEL_VERSION}.img ]; then
566
    if [ ! -e $NEW/boot/initrd-${KERNEL_VERSION}.img ]; then
567
	echo "ERROR: Failed to create $NEW/boot/initrd-${KERNEL_VERSION}.img"
567
	echo "ERROR: Failed to create $NEW/boot/initrd-${KERNEL_VERSION}.img"
568
	exit_now 1
568
	exit_now 1
569
    fi
569
    fi
570
fi
570
fi
571
if [ $SMP_installed ]; then
571
if [ $SMP_installed ]; then
572
    depmod -a ${KERNEL_VERSION}smp
572
    depmod -a ${KERNEL_VERSION}smp
573
    /usr/sbin/livecd-mkinitrd --fstab=$NEW/etc/fstab \
573
    /usr/sbin/livecd-mkinitrd --fstab=$NEW/etc/fstab \
574
                    $NEW/boot/initrd-${KERNEL_VERSION}smp.img ${KERNEL_VERSION}smp
574
                    $NEW/boot/initrd-${KERNEL_VERSION}smp.img ${KERNEL_VERSION}smp
575
    if [ ! -e $NEW/boot/initrd-${KERNEL_VERSION}smp.img ]; then
575
    if [ ! -e $NEW/boot/initrd-${KERNEL_VERSION}smp.img ]; then
576
	echo "ERROR: Failed to create $NEW/boot/initrd-${KERNEL_VERSION}smp.img"
576
	echo "ERROR: Failed to create $NEW/boot/initrd-${KERNEL_VERSION}smp.img"
577
	exit_now 1
577
	exit_now 1
578
    fi
578
    fi
579
fi
579
fi
580
echo "done."; echo
580
echo "done."; echo
581
 
581
 
582
 
582
 
583
### remove LiveCD init.d scripts
583
### remove LiveCD init.d scripts
584
### -----------------------------------------------------------
584
### -----------------------------------------------------------
585
for file in $LIVECD_INIT_SCRIPTS; do
585
for file in $LIVECD_INIT_SCRIPTS; do
586
    rm -f $NEW/etc/rc.d/init.d/$file
586
    rm -f $NEW/etc/rc.d/init.d/$file
587
    for n in 0 1 2 3 4 5 6; do
587
    for n in 0 1 2 3 4 5 6; do
588
	rm -f $NEW/etc/rc.d/rc${n}.d/*$file
588
	rm -f $NEW/etc/rc.d/rc${n}.d/*$file
589
    done
589
    done
590
done
590
done
591
 
591
 
592
 
592
 
593
### restore cronjobs
593
### restore cronjobs
594
### -----------------------------------------------------------
594
### -----------------------------------------------------------
595
mv $NEW/etc/cron_backup/sysstat $NEW/etc/cron.d/ 2>/dev/null
595
mv $NEW/etc/cron_backup/sysstat $NEW/etc/cron.d/ 2>/dev/null
596
mv $NEW/etc/cron_backup/00-makewhatis.cron.weekly $NEW/etc/cron.weekly/00-makewhatis.cron 2>/dev/null
596
mv $NEW/etc/cron_backup/00-makewhatis.cron.weekly $NEW/etc/cron.weekly/00-makewhatis.cron 2>/dev/null
597
mv $NEW/etc/cron_backup/* $NEW/etc/cron.daily/
597
mv $NEW/etc/cron_backup/* $NEW/etc/cron.daily/
598
 
598
 
599
 
599
 
600
### prepare chroot to $NEW
600
### prepare chroot to $NEW
601
### -----------------------------------------------------------
601
### -----------------------------------------------------------
602
mount --bind /dev $NEW/dev
602
mount --bind /dev $NEW/dev
603
mount --bind /sys $NEW/sys
603
mount --bind /sys $NEW/sys
604
mount -t proc proc $NEW/proc
604
mount -t proc proc $NEW/proc
605
 
605
 
606
 
606
 
607
### turn on kudzu again
607
### turn on kudzu again
608
### -----------------------------------------------------------
608
### -----------------------------------------------------------
609
chroot $NEW chkconfig kudzu on
609
chroot $NEW chkconfig kudzu on
610
 
610
 
611
 
611
 
612
### remove RPMs that can break future updates  
612
### remove RPMs that can break future updates  
613
### -----------------------------------------------------------
613
### -----------------------------------------------------------
614
if [ ! $NORPMREMOVE ]; then
614
if [ ! $NORPMREMOVE ]; then
615
    echo "Remove RPMs that may break future updates ..."
615
    echo "Remove RPMs that may break future updates ..."
616
    chroot $NEW rpm -qa 2>/dev/null > /tmp/rpmlist
616
    chroot $NEW rpm -qa 2>/dev/null > /tmp/rpmlist
617
 
617
 
618
    # Scientific Linux RPMs
618
    # Scientific Linux RPMs
619
    RPMSTOREMOVE="$RPMS_TO_REMOVE $RPMS_TO_REMOVE_SL"
619
    RPMSTOREMOVE="$RPMS_TO_REMOVE $RPMS_TO_REMOVE_SL"
620
 
620
 
621
    # PSI Scientific Linux RPMs
621
    # PSI Scientific Linux RPMs
622
    if [ -e /etc/sysconfig/cfengine ]; then
622
    if [ -e /etc/sysconfig/cfengine ]; then
623
	RPMSTOREMOVE="$RPMS_TO_REMOVE $RPMS_TO_REMOVE_PSI"
623
	RPMSTOREMOVE="$RPMS_TO_REMOVE $RPMS_TO_REMOVE_PSI"
624
    fi
624
    fi
625
 
625
 
626
    for rpm in $RPMSTOREMOVE; do
626
    for rpm in $RPMSTOREMOVE; do
627
	rpms_remove=$( cat /tmp/rpmlist | grep "^$rpm" )
627
	rpms_remove=$( cat /tmp/rpmlist | grep "^$rpm" )
628
	for rpm_remove in $rpms_remove; do	
628
	for rpm_remove in $rpms_remove; do	
629
	    chroot $NEW rpm -e --nodeps $rpm_remove 2>/dev/null
629
	    chroot $NEW rpm -e --nodeps $rpm_remove 2>/dev/null
630
	    [ "$?" = "0" ] && echo "$rpm_remove removed"
630
	    [ "$?" = "0" ] && echo " removing $rpm_remove"
631
	done
631
	done
632
    done
632
    done
633
    echo "done."; echo
633
    echo "done."; echo
634
fi
634
fi
635
 
635
 
636
 
636
 
637
### disable nvidia driver 
637
### disable nvidia driver 
638
### -----------------------------------------------------------
638
### -----------------------------------------------------------
639
# not in case of a PSI installation
639
# not in case of a PSI installation
640
if [ ! -e /etc/sysconfig/cfengine ]; then
640
if [ ! -e /etc/sysconfig/cfengine ]; then
641
    if [ -e $new/etc/X11/xorg.conf.nv_SAVED ]; then
641
    if [ -e $new/etc/X11/xorg.conf.nv_SAVED ]; then
642
        # copy back original xorg.conf
642
        # copy back original xorg.conf
643
	mv $new/etc/X11/xorg.conf.nv_SAVED $new/etc/X11/xorg.conf
643
	mv $new/etc/X11/xorg.conf.nv_SAVED $new/etc/X11/xorg.conf
644
        # disable nvidia libs
644
        # disable nvidia libs
645
	LIB=lib
645
	LIB=lib
646
	[ $( arch ) = "x86_64" ] && LIB=lib64
646
	[ $( arch ) = "x86_64" ] && LIB=lib64
647
	mv $new/usr/X11R6/$LIB/modules/extensions/xxx.libGLcore.a.saved_by_nvidia $new/usr/X11R6/$LIB/modules/extensions/libGLcore.a
647
	mv $new/usr/X11R6/$LIB/modules/extensions/xxx.libGLcore.a.saved_by_nvidia $new/usr/X11R6/$LIB/modules/extensions/libGLcore.a
648
	mv $new/usr/X11R6/$LIB/modules/extensions/xxx.libglx.a.saved_by_nvidia $new/usr/X11R6/$LIB/modules/extensions/libglx.a
648
	mv $new/usr/X11R6/$LIB/modules/extensions/xxx.libglx.a.saved_by_nvidia $new/usr/X11R6/$LIB/modules/extensions/libglx.a
649
	rm -f $new/usr/X11R6/$LIB/libGL.so*
649
	rm -f $new/usr/X11R6/$LIB/libGL.so*
650
	rm -f $new/usr/$LIB/libGLcore.so
650
	rm -f $new/usr/$LIB/libGLcore.so
651
    fi
651
    fi
652
fi
652
fi
653
 
653
 
654
 
654
 
655
### umount $INSTALL_PART
655
### umount $INSTALL_PART
656
### -----------------------------------------------------------
656
### -----------------------------------------------------------
657
umount $NEW/dev
657
umount $NEW/dev
658
umount $NEW/sys
658
umount $NEW/sys
659
umount $NEW/proc
659
umount $NEW/proc
660
umount $INSTALL_PART
660
umount $INSTALL_PART
661
 
661
 
662
 
662
 
663
### print summary
663
### print summary
664
### -----------------------------------------------------------
664
### -----------------------------------------------------------
665
echo                     "--------------------------------------------------------------"
665
echo                     "--------------------------------------------------------------"
666
echo                     "  LiveCD installed on partition $INSTALL_PART"
666
echo                     "  LiveCD installed on partition $INSTALL_PART"
667
[ "$SWAP_PART" ] && echo "  Partition $SWAP_PART will be used as swap partition"
667
[ "$SWAP_PART" ] && echo "  Partition $SWAP_PART will be used as swap partition"
668
echo
668
echo
669
[ ! $NOGRUB ]    && echo "  GRUB installed in Master Boot Record (MBR) of $MBR_DEV"
669
[ ! $NOGRUB ]    && echo "  GRUB installed in Master Boot Record (MBR) of $MBR_DEV"
670
[ ! $NOGRUB ]    && echo "  MBR saved as $MBR_FILENAME on $INSTALL_PART and in /tmp"
670
[ ! $NOGRUB ]    && echo "  MBR saved as $MBR_FILENAME on $INSTALL_PART and in /tmp"
671
[ ! $NOGRUB ]    && echo "  If you have to restore MBR, execute under Linux:"
671
[ ! $NOGRUB ]    && echo "  If you have to restore MBR, execute under Linux:"
672
[ ! $NOGRUB ]    && echo "  # dd if=$MBR_FILENAME of=$MBR_DEV bs=512 count=1"
672
[ ! $NOGRUB ]    && echo "  # dd if=$MBR_FILENAME of=$MBR_DEV bs=512 count=1"
673
echo 
673
echo 
674
[ $WIN_PART ]    && echo "  Entry created in grub.conf for Windows partition $WIN_PART"
674
[ $WIN_PART ]    && echo "  Entry created in grub.conf for Windows partition $WIN_PART"
675
echo                     "--------------------------------------------------------------"
675
echo                     "--------------------------------------------------------------"
676
echo                     "End of $SCRIPTNAME"
676
echo                     "End of $SCRIPTNAME"
677
echo
677
echo