rev |
line source |
pankso@70
|
1 #!/bin/sh
|
pankso@70
|
2 # slitaz-installer - SliTaz GNU/Linux installer.
|
pankso@70
|
3 #
|
pankso@70
|
4 # So this is SliTaz installer using dialog boxes. All the comments are in
|
pascal@205
|
5 # English but displayed messages are in French. The script starts with a
|
MikeDSmith25@252
|
6 # few main variables, then all the functions and then a sequence of functions.
|
pankso@70
|
7 #
|
paul@319
|
8 # (C) 2007-2008 SliTaz - GNU General Public License v3.
|
pankso@70
|
9 #
|
pankso@70
|
10 # Author : Christophe Lincoln <pankso@slitaz.org>
|
pankso@70
|
11 #
|
pankso@70
|
12 VERSION=1.0
|
pankso@236
|
13
|
pankso@236
|
14 if [ "$1" = "gui" ]; then
|
pankso@236
|
15 : ${DIALOG=tazdialog}
|
pankso@236
|
16 else
|
pankso@236
|
17 : ${DIALOG=dialog}
|
pankso@236
|
18 fi
|
pankso@70
|
19
|
pankso@70
|
20 # Installer actions can be specified on cmdline (install or upgrade).
|
pankso@236
|
21 if [ "$1" = "upgrade" ]; then
|
pankso@70
|
22 ACTION=$1
|
pankso@70
|
23 else
|
pankso@70
|
24 ACTION=install
|
pankso@70
|
25 fi
|
pankso@70
|
26
|
pankso@70
|
27 # We need to know cdrom device and kernel version string to copy files.
|
pankso@70
|
28 DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3`
|
pankso@70
|
29 CDROM=/dev/$DRIVE_NAME
|
pankso@70
|
30 KERNEL=vmlinuz-`uname -r`
|
pankso@70
|
31 TARGET_ROOT=/mnt/target
|
pankso@70
|
32 LOG=/var/log/slitaz-installer.log
|
pankso@70
|
33 BACKLIST="SliTaz GNU/Linux installer"
|
pankso@70
|
34
|
pankso@70
|
35 #######################
|
pankso@70
|
36 # Installer functions #
|
pankso@70
|
37 #######################
|
pankso@70
|
38
|
paul@319
|
39 # Messages language setting.
|
pascal@205
|
40 set_messages()
|
pascal@205
|
41 {
|
pankso@288
|
42 case $LANG in
|
pankso@288
|
43 de*)
|
pankso@288
|
44 . /usr/share/slitaz-tools/installer/de.msg ;;
|
pankso@288
|
45 fr*)
|
pankso@288
|
46 . /usr/share/slitaz-tools/installer/fr.msg ;;
|
pankso@288
|
47 *)
|
pankso@288
|
48 . /usr/share/slitaz-tools/installer/en.msg ;;
|
pankso@288
|
49 esac
|
pascal@205
|
50 }
|
pascal@205
|
51
|
pankso@70
|
52 # Display error message.
|
pankso@70
|
53 error_message()
|
pankso@70
|
54 {
|
paul@153
|
55 $DIALOG --title " Error " \
|
pankso@70
|
56 --colors --backtitle "$BACKLIST" \
|
pankso@70
|
57 --clear --msgbox "\n$ERROR_MSG" 18 70
|
pankso@70
|
58 }
|
pankso@70
|
59
|
pankso@70
|
60 # Exit install if user is not root.
|
pankso@70
|
61 check_root()
|
pankso@70
|
62 {
|
pankso@70
|
63 if test $(id -u) != 0 ; then
|
pankso@70
|
64 ERROR_MSG="\
|
pankso@148
|
65 [\Z6en\Zn] You must be root administrator to start SliTaz installer, please \
|
pankso@148
|
66 use 'su' to get a root SHell and restart installation.\n\n
|
pankso@70
|
67 [\Z6fr\Zn] Vous devez être root pour installer SLiTaz GNU/Linux. Vous pouvez \
|
pankso@70
|
68 utiliser 'su' suivi du mot de passe administrateur pour devenir root \
|
pankso@148
|
69 et relancer l'installation."
|
pankso@70
|
70 error_message
|
pankso@70
|
71 exit 0
|
pankso@70
|
72 fi
|
pankso@70
|
73 }
|
pankso@70
|
74
|
pankso@70
|
75 # This function is used after each screen to contine or abort install.
|
pankso@70
|
76 check_retval()
|
pankso@70
|
77 {
|
pankso@94
|
78 case $retval in
|
pankso@94
|
79 0)
|
pankso@94
|
80 continue ;;
|
pankso@94
|
81 1)
|
paul@153
|
82 echo -e "\nVoluntary exit.\n" && exit 0 ;;
|
pankso@94
|
83 3)
|
pankso@94
|
84 continue ;;
|
pankso@94
|
85 255)
|
pankso@94
|
86 echo -e "ESC pressed.\n" && exit 0 ;;
|
pankso@94
|
87 esac
|
pankso@70
|
88 }
|
pankso@70
|
89
|
MikeDSmith25@252
|
90 # Start install with basic information.
|
pankso@94
|
91 start_installer()
|
pankso@70
|
92 {
|
pankso@148
|
93 $DIALOG --title " Install or Upgrade " \
|
pankso@70
|
94 --backtitle "$BACKLIST" \
|
pankso@94
|
95 --extra-button --extra-label "Upgrade" \
|
pankso@94
|
96 --yes-label "Install" \
|
pankso@94
|
97 --no-label "Quit" \
|
pankso@70
|
98 --clear --colors --yesno "$START_INSTALL_MSG" 18 70
|
pankso@70
|
99 retval=$?
|
pankso@94
|
100 case $retval in
|
pankso@94
|
101 0)
|
pankso@94
|
102 ACTION=install ;;
|
pankso@94
|
103 1)
|
paul@153
|
104 echo -e "\nVoluntary exit.\n" && exit 0 ;;
|
pankso@94
|
105 3)
|
pankso@94
|
106 ACTION=upgrade ;;
|
pankso@94
|
107 255)
|
pankso@94
|
108 echo -e "ESC pressed.\n" && exit 0 ;;
|
pankso@94
|
109 esac
|
pankso@94
|
110 echo "start_installer: `date`" > $LOG
|
pankso@70
|
111 }
|
pankso@70
|
112
|
paul@319
|
113 # Mount cdrom and verify if it's really SliTaz CD.
|
pankso@70
|
114 mount_cdrom()
|
pankso@70
|
115 {
|
pankso@70
|
116 ERROR_MSG=""
|
pankso@70
|
117 (
|
pankso@70
|
118 echo "XXX" && echo 30
|
pankso@148
|
119 echo -e "\nCreating mount point (/media/cdrom)..."
|
pankso@198
|
120 echo "XXX"
|
pankso@70
|
121 mkdir -p /media/cdrom
|
pankso@70
|
122 sleep 1
|
pankso@70
|
123 echo "XXX" && echo 60
|
paul@153
|
124 echo -e "\nMounting cdrom ($CDROM)..."
|
pankso@70
|
125 echo "XXX"
|
pankso@70
|
126 mount -t iso9660 $CDROM /media/cdrom 2>>$LOG
|
pankso@70
|
127 echo "XXX" && echo 90
|
pankso@148
|
128 echo -e "\nChecking installation media..."
|
pankso@70
|
129 echo "XXX"
|
pankso@70
|
130 sleep 2
|
pankso@70
|
131 ) |
|
paul@153
|
132 $DIALOG --title " Mounting cdrom " \
|
pankso@70
|
133 --backtitle "$BACKLIST" \
|
pankso@148
|
134 --gauge "Preparing the installation media..." 18 70 0
|
paul@319
|
135 # Exit with error msg if no rootfs.gz found.
|
pankso@70
|
136 if [ ! -f /media/cdrom/boot/rootfs.gz ]; then
|
pankso@148
|
137 ERROR_MSG="$MOUNT_CDROM_ERROR_MSG"
|
pankso@70
|
138 error_message
|
pankso@70
|
139 echo "missing: /media/cdrom/boot/rootfs.gz" >>$LOG
|
pankso@70
|
140 exit 1
|
pankso@70
|
141 fi
|
pankso@70
|
142 }
|
pankso@70
|
143
|
MikeDSmith25@252
|
144 # Display a list of available partitions.
|
pankso@70
|
145 fdisk_list()
|
pankso@70
|
146 {
|
pankso@70
|
147 LIST_PARTITIONS=`fdisk -l | grep ^/dev | sed s/'e Win95'/'e'/g`
|
paul@153
|
148 $DIALOG --title " Partition tables " \
|
pankso@70
|
149 --backtitle "$BACKLIST" \
|
pankso@70
|
150 --clear --msgbox "\n
|
paul@153
|
151 Available partitions :\n\n
|
pankso@70
|
152 $LIST_PARTITIONS" 18 70
|
pankso@70
|
153 }
|
pankso@70
|
154
|
MikeDSmith25@252
|
155 # We need a partition to install to (inputbox).
|
pankso@70
|
156 ask_for_target_dev()
|
pankso@70
|
157 {
|
pankso@70
|
158 exec 3>&1
|
paul@319
|
159 TARGET_DEV=`$DIALOG --title " Root Partition " \
|
pankso@70
|
160 --backtitle "$BACKLIST" --clear \
|
pankso@70
|
161 --extra-label "List" --extra-button \
|
pankso@149
|
162 --colors --inputbox "$ASK_FOR_TARGET_DEV_MSG" 18 70 2>&1 1>&3`
|
pankso@70
|
163 retval=$?
|
pankso@70
|
164 exec 3>&-
|
pankso@70
|
165 check_retval
|
MikeDSmith25@252
|
166 # Display list and come back.
|
pankso@70
|
167 if [ "$retval" = "3" ]; then
|
pankso@70
|
168 fdisk_list
|
pankso@70
|
169 ask_for_target_dev
|
pankso@70
|
170 fi
|
pankso@70
|
171 # Empty value.
|
pankso@70
|
172 if [ -z $TARGET_DEV ]; then
|
pankso@70
|
173 ask_for_target_dev
|
pankso@70
|
174 fi
|
pascal@205
|
175 set_messages
|
MikeDSmith25@252
|
176 # Check if specified device exists in /proc/partitions.
|
pankso@70
|
177 DEV_NAME=${TARGET_DEV#/dev/}
|
pankso@70
|
178 if cat /proc/partitions | grep -q $DEV_NAME; then
|
pascal@273
|
179 if [ "$DEV_NAME" = "$TARGET_DEV" ]; then
|
pascal@273
|
180 TARGET_DEV="/dev/$DEV_NAME"
|
pascal@273
|
181 fi
|
pankso@70
|
182 echo "ask_for_target_dev: $TARGET_DEV" >>$LOG
|
pankso@70
|
183 else
|
paul@153
|
184 ERROR_MSG="Partition \Z2$TARGET_DEV\Zn doesn't exist."
|
pankso@70
|
185 error_message
|
pankso@70
|
186 ask_for_target_dev
|
pankso@70
|
187 fi
|
pankso@70
|
188 }
|
pankso@70
|
189
|
pankso@70
|
190 # Mkfs if needed/wanted.
|
pankso@70
|
191 ask_for_mkfs_target_dev()
|
pankso@70
|
192 {
|
pankso@149
|
193 $DIALOG --title " Format " \
|
pankso@70
|
194 --backtitle "$BACKLIST" \
|
pankso@149
|
195 --clear --colors --yesno "$ASK_FOR_MKFS_TARGET_DEV_MSG" 18 70
|
pankso@70
|
196 retval=$?
|
pankso@70
|
197 case $retval in
|
pankso@70
|
198 0)
|
pankso@70
|
199 MKFS_TARGET_DEV="ext3"
|
pankso@70
|
200 echo "mkfs_target_dev: ext3" >>$LOG ;;
|
pankso@70
|
201 1)
|
pankso@70
|
202 CLEAN="clean"
|
pankso@70
|
203 echo "mkfs_target_dev: clean" >>$LOG ;;
|
pankso@70
|
204 255)
|
pankso@70
|
205 echo -e "ESC pressed.\n" && exit 0 ;;
|
pankso@70
|
206 esac
|
pankso@198
|
207
|
pankso@70
|
208 }
|
pankso@70
|
209
|
pankso@70
|
210 # Mount and mkfs with progress.
|
pankso@70
|
211 prepare_target_dev()
|
pankso@70
|
212 {
|
pankso@70
|
213 (
|
pankso@70
|
214 echo "XXX" && echo 30
|
pankso@149
|
215 echo -e "\nPreparing target partition..."
|
pankso@70
|
216 echo "XXX"
|
pankso@70
|
217 # Mount point can be already used.
|
pankso@70
|
218 if mount | grep -q $TARGET_ROOT; then
|
pankso@70
|
219 umount $TARGET_ROOT 2>$LOG
|
pankso@70
|
220 fi
|
pankso@70
|
221 sleep 2
|
pankso@198
|
222
|
pankso@70
|
223 if [ "$MKFS_TARGET_DEV" == "ext3" ]; then
|
pankso@70
|
224 echo "XXX" && echo 60
|
pankso@149
|
225 echo -e "\nExecuting mkfs.ext3 on $TARGET_DEV"
|
pankso@198
|
226 echo "XXX"
|
pankso@70
|
227 mkfs.ext3 $TARGET_DEV >>$LOG 2>>$LOG
|
pankso@70
|
228 else
|
pankso@70
|
229 echo "XXX" && echo 60
|
pankso@149
|
230 echo -e "\nThe partition ($TARGET_DEV) will be cleaned..."
|
pankso@70
|
231 echo "XXX"
|
pankso@70
|
232 sleep 2
|
pankso@70
|
233 fi
|
pankso@198
|
234
|
pankso@70
|
235 echo "XXX" && echo 90
|
pankso@149
|
236 echo -e "\nCreating mount point: $TARGET_ROOT"
|
pankso@198
|
237 echo "XXX"
|
pankso@70
|
238 mkdir -p $TARGET_ROOT
|
pankso@70
|
239 sleep 2
|
pankso@198
|
240
|
pankso@70
|
241 ) |
|
paul@319
|
242 $DIALOG --title " Prepare the target " \
|
pankso@70
|
243 --backtitle "$BACKLIST" \
|
pankso@70
|
244 --gauge "Target in preparation..." 18 70 0
|
paul@319
|
245 # Mount target.
|
pankso@70
|
246 mount $TARGET_DEV $TARGET_ROOT >>$LOG 2>>$LOG
|
pankso@70
|
247 }
|
pankso@70
|
248
|
MikeDSmith25@252
|
249 # Ask for hostname before installing files.
|
pankso@70
|
250 ask_for_hostname()
|
pankso@70
|
251 {
|
pankso@70
|
252 exec 3>&1
|
pankso@70
|
253 HOSTNAME=`$DIALOG --title " Hostname " \
|
pankso@70
|
254 --backtitle "$BACKLIST" --clear \
|
pankso@149
|
255 --colors --inputbox "$ASK_FOR_HOSTNAME_MSG" 18 70 "slitaz" 2>&1 1>&3`
|
pankso@70
|
256 retval=$?
|
pankso@70
|
257 exec 3>&-
|
pankso@70
|
258 check_retval
|
pankso@70
|
259 # Empty value.
|
pankso@70
|
260 if [ -z $HOSTNAME ]; then
|
pankso@70
|
261 HOSTNAME="slitaz"
|
pankso@70
|
262 fi
|
pankso@70
|
263 }
|
pankso@70
|
264
|
pankso@70
|
265 # Get a clean target device (15%).
|
pankso@70
|
266 clean_target()
|
pankso@70
|
267 {
|
pankso@70
|
268 if [ "$CLEAN" == "clean" ]; then
|
pankso@70
|
269 echo "XXX" && echo 15
|
paul@319
|
270 echo -e "\nCleaning the root partition ($TARGET_DEV)..."
|
pankso@70
|
271 echo "XXX"
|
pankso@94
|
272 # Keep /home in case of reinstall.
|
pankso@70
|
273 cd $TARGET_ROOT
|
pankso@94
|
274 for dir in *
|
pankso@70
|
275 do
|
pankso@94
|
276 case "$dir" in
|
pankso@70
|
277 home)
|
erjo@77
|
278 mv $TARGET_ROOT/home $TARGET_ROOT/home.bak
|
pankso@70
|
279 echo "keeping /home found on: $TARGET_DEV" >>$LOG ;;
|
pankso@70
|
280 lost+found)
|
pankso@94
|
281 continue ;;
|
pankso@70
|
282 *)
|
pankso@94
|
283 echo "removing target: $dir" >>$LOG
|
erjo@77
|
284 rm -rf $dir 2>>$LOG ;;
|
pankso@70
|
285 esac
|
pankso@70
|
286 done
|
pankso@70
|
287 if [ -d $TARGET_ROOT/mklost+found ]; then
|
pankso@70
|
288 mklost+found 2>>$LOG
|
pankso@70
|
289 fi
|
pankso@70
|
290 fi
|
pankso@70
|
291 sleep 2
|
pankso@70
|
292 }
|
pankso@70
|
293
|
MikeDSmith25@252
|
294 # Kernel is renamed to standard vmlinuz-$VERSION.
|
pankso@70
|
295 install_kernel()
|
pankso@70
|
296 {
|
pankso@70
|
297 mkdir -p $TARGET_ROOT/boot
|
pankso@70
|
298 cp /media/cdrom/boot/bzImage $TARGET_ROOT/boot/$KERNEL
|
pankso@94
|
299 echo "install_kernel: $KERNEL" >> $LOG
|
pankso@70
|
300 sleep 2
|
pankso@70
|
301 }
|
pankso@70
|
302
|
pankso@70
|
303 # Copy isolinux r/w files (not syslinux, some files are read only).
|
pankso@70
|
304 copy_bootloaders()
|
pankso@70
|
305 {
|
pankso@70
|
306 if [ -d "/media/cdrom/boot/isolinux" ]; then
|
pankso@70
|
307 mkdir -p $TARGET_ROOT/boot/isolinux
|
pankso@70
|
308 cp -a /media/cdrom/boot/isolinux/*.cfg $TARGET_ROOT/boot/isolinux
|
pankso@70
|
309 cp -a /media/cdrom/boot/isolinux/*.kbd $TARGET_ROOT/boot/isolinux
|
pankso@70
|
310 cp -a /media/cdrom/boot/isolinux/*.txt $TARGET_ROOT/boot/isolinux
|
pankso@70
|
311 cp -a /media/cdrom/boot/isolinux/*.bin $TARGET_ROOT/boot/isolinux
|
pankso@70
|
312 cp -a /media/cdrom/boot/isolinux/*.msg $TARGET_ROOT/boot/isolinux
|
pankso@70
|
313 cp -a /media/cdrom/boot/isolinux/*.lss $TARGET_ROOT/boot/isolinux
|
pankso@70
|
314 cp -a /media/cdrom/boot/isolinux/*.c32 $TARGET_ROOT/boot/isolinux
|
pankso@70
|
315 fi
|
pankso@70
|
316 }
|
pankso@70
|
317
|
pankso@70
|
318 # Extract lzma'ed or gziped rootfs.
|
pankso@70
|
319 extract_rootfs()
|
pankso@70
|
320 {
|
pankso@70
|
321 cd $TARGET_ROOT
|
pankso@94
|
322 (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so || \
|
pascal@186
|
323 cat rootfs.gz) 2>>$LOG | cpio -id 2>>$LOG > /dev/null
|
pascal@71
|
324 rm -f rootfs.gz
|
pankso@94
|
325 # unpack /usr (double check...)
|
pankso@94
|
326 if ls etc/tazlito | grep -q ".extract"; then
|
pankso@94
|
327 for i in etc/tazlito/*.extract; do
|
pascal@186
|
328 [ -f "$i" ] && . $i /media/cdrom
|
pankso@94
|
329 done
|
pankso@94
|
330 fi
|
pankso@70
|
331 }
|
pankso@70
|
332
|
pankso@70
|
333 # /etc/skel (60%)
|
pankso@70
|
334 gen_etc_skel()
|
pankso@70
|
335 {
|
paul@319
|
336 # Maybe we don't have /home/hacker directory.
|
pankso@70
|
337 if [ -d $TARGET_ROOT/home/hacker ]; then
|
pankso@70
|
338 echo "XXX" && echo 60
|
paul@319
|
339 echo -e "\nCopying default user files (/etc/skel)..."
|
pankso@70
|
340 echo "XXX"
|
pankso@70
|
341 cp -a $TARGET_ROOT/home/hacker $TARGET_ROOT/etc/skel
|
pankso@70
|
342 else
|
pankso@70
|
343 echo "XXX" && echo 60
|
paul@319
|
344 echo -e "\nCreating directory (/etc/skel)..."
|
pankso@70
|
345 echo "XXX"
|
pankso@70
|
346 mkdir -p $TARGET_ROOT/etc/skel \
|
pankso@70
|
347 $TARGET_ROOT/etc/Documents \
|
pankso@70
|
348 $TARGET_ROOT/etc/skel/Images \
|
pankso@70
|
349 $TARGET_ROOT/etc/skel/.local/bin \
|
pankso@70
|
350 $TARGET_ROOT/etc/skel/.local/share
|
pankso@70
|
351 fi
|
pankso@70
|
352 sleep 2
|
pankso@70
|
353 }
|
pankso@70
|
354
|
pankso@70
|
355 # Pre configure freshly installed system (70 - 90%).
|
pankso@70
|
356 pre_config_system()
|
pankso@70
|
357 {
|
pankso@70
|
358 cd $TARGET_ROOT
|
MikeDSmith25@252
|
359 # Restore backup of existing /home if exists.
|
pankso@70
|
360 # (created by prepare_target_dev)
|
pankso@70
|
361 if [ -d home.bak ]; then
|
pankso@70
|
362 echo "XXX" && echo 75
|
paul@319
|
363 echo -e "\nThe restore directory: /home..."
|
pankso@70
|
364 echo "XXX"
|
pankso@70
|
365 rm -rf home
|
pankso@70
|
366 mv home.bak home
|
pankso@70
|
367 sleep 2
|
pankso@70
|
368 fi
|
pankso@198
|
369 # Add root device to CHECK_FS in rcS.conf to check filesystem
|
pankso@70
|
370 # on each boot.
|
pankso@70
|
371 echo "XXX" && echo 80
|
paul@319
|
372 echo -e "\nAdding $TARGET_DEV and CHECK_FS to file /etc/rcS.conf..."
|
pankso@70
|
373 echo "XXX"
|
pankso@70
|
374 sed -i s#'CHECK_FS=\"\"'#"CHECK_FS=\"$TARGET_DEV\""# etc/rcS.conf
|
pankso@70
|
375 sleep 2
|
pankso@70
|
376 # Set hostname.
|
pankso@70
|
377 echo "XXX" && echo 85
|
paul@319
|
378 echo -e "\nConfiguring host name: $HOSTNAME"
|
pankso@70
|
379 echo "XXX"
|
pankso@70
|
380 echo $HOSTNAME > etc/hostname
|
pankso@70
|
381 sleep 2
|
pankso@70
|
382 }
|
pankso@70
|
383
|
MikeDSmith25@252
|
384 # Determine GRUB partition number and GRUB disk number.
|
pankso@70
|
385 grub_config()
|
pankso@70
|
386 {
|
pankso@70
|
387 DISK_LETTER=${TARGET_DEV#/dev/[h-s]d}
|
pankso@70
|
388 DISK_LETTER=${DISK_LETTER%[0-9]}
|
pankso@70
|
389 GRUB_PARTITION=$((${TARGET_DEV#/dev/[h-s]d[a-z]}-1))
|
pankso@70
|
390 for disk in a b c d e f g h
|
pankso@70
|
391 do
|
pankso@70
|
392 nb=$(($nb+1))
|
pankso@70
|
393 if [ "$disk" = "$DISK_LETTER" ]; then
|
pankso@70
|
394 GRUB_DISK=$(($nb-1))
|
pankso@70
|
395 break
|
pankso@70
|
396 fi
|
pankso@70
|
397 done
|
pankso@70
|
398 GRUB_ROOT="(hd${GRUB_DISK},${GRUB_PARTITION})"
|
MikeDSmith25@252
|
399 # Create the target GRUB configuration.
|
pankso@70
|
400 mkdir -p $TARGET_ROOT/boot/grub
|
pankso@70
|
401 cat > $TARGET_ROOT/boot/grub/menu.lst << _EOF_
|
pankso@70
|
402 # /boot/grub/menu.lst: GRUB boot loader configuration.
|
pankso@70
|
403 #
|
pankso@70
|
404
|
pankso@70
|
405 # By default, boot the first entry.
|
pankso@70
|
406 default 0
|
pankso@70
|
407
|
pankso@70
|
408 # Boot automatically after 8 secs.
|
pankso@70
|
409 timeout 8
|
pankso@70
|
410
|
pankso@70
|
411 # Change the colors.
|
pankso@70
|
412 color yellow/brown light-green/black
|
pankso@70
|
413
|
pankso@70
|
414 # For booting SliTaz from : $TARGET_DEV
|
pankso@70
|
415 #
|
pankso@70
|
416 title SliTaz GNU/Linux (cooking) (Kernel $KERNEL)
|
pankso@70
|
417 root $GRUB_ROOT
|
pankso@70
|
418 kernel /boot/$KERNEL root=$TARGET_DEV
|
pankso@70
|
419
|
pankso@70
|
420 _EOF_
|
pankso@70
|
421 # log
|
pankso@70
|
422 echo "grub_config: $TARGET_ROOT/boot/grub/menu.lst" >>$LOG
|
pankso@70
|
423 sleep 2
|
pankso@70
|
424 }
|
pankso@70
|
425
|
pankso@70
|
426 # Files install with gauge, calling for functions or with cmds.
|
pankso@70
|
427 install_files()
|
pankso@70
|
428 {
|
pankso@70
|
429 (
|
pankso@198
|
430
|
pankso@70
|
431 echo "XXX" && echo 10
|
paul@319
|
432 echo -e "\nCleaning the root partition if necessary..."
|
pankso@70
|
433 echo "XXX"
|
pankso@70
|
434 clean_target
|
pankso@198
|
435
|
pankso@70
|
436 echo "XXX" && echo 20
|
paul@319
|
437 echo -e "\nInstalling the kernel ($KERNEL)..."
|
pankso@70
|
438 echo "XXX"
|
pankso@70
|
439 install_kernel
|
pankso@198
|
440
|
pankso@70
|
441 echo "XXX" && echo 30
|
paul@319
|
442 echo -e "\nCopying the bootloader syslinux/isolinux..."
|
pankso@70
|
443 echo "XXX"
|
pankso@70
|
444 copy_bootloaders
|
pankso@198
|
445
|
pankso@70
|
446 echo "XXX" && echo 40
|
paul@319
|
447 echo -e "\nCopying the compressed system (rootfs.gz)..."
|
pankso@70
|
448 echo "XXX"
|
pankso@70
|
449 cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT
|
pankso@70
|
450 sleep 2
|
pankso@198
|
451
|
pankso@70
|
452 echo "XXX" && echo 50
|
paul@319
|
453 echo -e "\nExtracting the root system..."
|
pankso@70
|
454 echo "XXX"
|
pankso@70
|
455 extract_rootfs
|
pankso@198
|
456
|
pankso@70
|
457 echo "XXX" && echo 60
|
paul@319
|
458 echo -e "\nCopying the default user files (/etc/skel)..."
|
pankso@70
|
459 echo "XXX"
|
pankso@70
|
460 gen_etc_skel
|
pankso@70
|
461 sleep 2
|
pankso@198
|
462
|
pankso@70
|
463 echo "XXX" && echo 70
|
paul@319
|
464 echo -e "\nPreconfiguring the system..."
|
pankso@70
|
465 echo "XXX"
|
pankso@70
|
466 pre_config_system
|
pankso@198
|
467
|
pankso@70
|
468 echo "XXX" && echo 90
|
paul@319
|
469 echo -e "\nCreating the configuration file for GRUB (menu.lst)..."
|
pankso@70
|
470 echo "XXX"
|
pankso@70
|
471 grub_config
|
pankso@198
|
472
|
pankso@70
|
473 echo "XXX" && echo 100
|
paul@319
|
474 echo -e "\nFinishing the files installation..."
|
pankso@70
|
475 echo "XXX"
|
pankso@70
|
476 echo "install_files: OK" >>$LOG
|
pankso@70
|
477 sleep 4
|
pankso@198
|
478
|
pankso@70
|
479 ) |
|
paul@319
|
480 $DIALOG --title " Install files " \
|
pankso@70
|
481 --backtitle "$BACKLIST" \
|
pankso@70
|
482 --gauge "Starting to install files..." 18 70 0
|
pankso@70
|
483 }
|
pankso@70
|
484
|
paul@319
|
485 # GRUB info with disk name used for grub-install.
|
pankso@70
|
486 grub_install()
|
pankso@70
|
487 {
|
pankso@70
|
488 TARGET_DISK=`echo $TARGET_DEV | sed s/"[0-9]"/''/`
|
pascal@205
|
489 set_messages
|
pankso@70
|
490 $DIALOG --title " GRUB install " \
|
pankso@70
|
491 --backtitle "$BACKLIST" \
|
pankso@149
|
492 --clear --colors --yesno "$GRUB_INSTALL_MSG" 18 70
|
pankso@70
|
493 retval=$?
|
pankso@70
|
494 case $retval in
|
pankso@70
|
495 0)
|
pankso@70
|
496 (
|
pankso@70
|
497 echo "XXX" && echo 50
|
paul@319
|
498 echo -e "\nRunning grub-install on : $TARGET_DISK..."
|
pankso@198
|
499 echo "XXX"
|
pankso@70
|
500 grub-install --no-floppy \
|
pankso@70
|
501 --root-directory=$TARGET_ROOT $TARGET_DISK 2>>$LOG
|
pankso@70
|
502 echo "XXX" && echo 100
|
paul@319
|
503 echo -e "\nFinished installation..."
|
pankso@70
|
504 echo "XXX"
|
pankso@70
|
505 sleep 2
|
pankso@70
|
506 ) |
|
pankso@70
|
507 $DIALOG --title " GRUB install " \
|
pankso@70
|
508 --backtitle "$BACKLIST" \
|
paul@319
|
509 --gauge "Installating GRUB..." 18 70 0 ;;
|
pankso@70
|
510 1)
|
pankso@70
|
511 echo "grub_install: NO" >>$LOG ;;
|
pankso@70
|
512 255)
|
pankso@70
|
513 echo -e "ESC pressed.\n" && exit 0 ;;
|
pankso@70
|
514 esac
|
pankso@70
|
515 }
|
pankso@70
|
516
|
paul@319
|
517 # Copy log file, umount target and eject cdrom.
|
pankso@70
|
518 umount_devices()
|
pankso@70
|
519 {
|
pankso@70
|
520 (
|
pankso@70
|
521 echo "XXX" && echo 25
|
paul@319
|
522 echo -e "\nCopying the log files ($LOG)..."
|
pankso@70
|
523 echo "XXX"
|
pankso@70
|
524 cp -a $LOG $TARGET_ROOT/var/log
|
pankso@70
|
525 sleep 2
|
pankso@70
|
526 echo "XXX" && echo 50
|
paul@319
|
527 echo -e "\nUnmounting the target ($TARGET_DEV)..."
|
pankso@198
|
528 echo "XXX"
|
pankso@70
|
529 if mount | grep -q $TARGET_ROOT; then
|
pankso@70
|
530 umount $TARGET_ROOT 2>/dev/null
|
pankso@70
|
531 fi
|
pankso@70
|
532 echo "XXX" && echo 75
|
paul@319
|
533 echo -e "\nUnmounting and ejecting the cdrom..."
|
pankso@70
|
534 echo "XXX"
|
pankso@70
|
535 if mount | grep -q /media/cdrom; then
|
pankso@70
|
536 umount /media/cdrom
|
pascal@186
|
537 grep -q slitaz-loram-cdrom /etc/init.d/rcS || eject
|
pankso@70
|
538 fi
|
pankso@70
|
539 sleep 2
|
pankso@70
|
540 echo "XXX" && echo 100
|
pankso@70
|
541 echo -e "\n$TITLE..."
|
pankso@70
|
542 echo "XXX"
|
pankso@70
|
543 sleep 2
|
pankso@70
|
544 ) |
|
pankso@70
|
545 $DIALOG --title " $TITLE " \
|
pankso@70
|
546 --backtitle "$BACKLIST" \
|
pankso@70
|
547 --gauge "$TITLE starting..." 18 70 0
|
pankso@70
|
548 }
|
pankso@70
|
549
|
paul@319
|
550 # End of installation.
|
pankso@70
|
551 end_of_install()
|
pankso@70
|
552 {
|
pankso@70
|
553 echo "end_of_install: `date`" >>$LOG
|
paul@319
|
554 $DIALOG --title " Installation complete " \
|
pankso@70
|
555 --backtitle "$BACKLIST" \
|
pankso@70
|
556 --yes-label "Exit" \
|
pankso@70
|
557 --no-label "Reboot" \
|
pankso@149
|
558 --clear --colors --yesno "$END_OF_INSTALL_MSG" 18 70
|
pankso@70
|
559 retval=$?
|
pankso@70
|
560 case $retval in
|
pankso@70
|
561 0)
|
pankso@70
|
562 TITLE="Exiting"
|
pankso@70
|
563 umount_devices ;;
|
pankso@70
|
564 1)
|
pankso@70
|
565 TITLE="Rebooting"
|
pankso@70
|
566 umount_devices
|
pankso@70
|
567 reboot || reboot -f ;;
|
pankso@70
|
568 255)
|
pankso@70
|
569 echo -e "ESC pressed.\n" && exit 0 ;;
|
pankso@70
|
570 esac
|
pankso@70
|
571 }
|
pankso@70
|
572
|
pankso@70
|
573 #####################
|
pankso@70
|
574 # Upgrade functions #
|
pankso@70
|
575 #####################
|
pankso@70
|
576
|
pankso@94
|
577 # We need a partition to upgrade SliTaz.
|
pankso@94
|
578 ask_for_upgrade_dev()
|
pankso@70
|
579 {
|
pankso@94
|
580 exec 3>&1
|
paul@319
|
581 UPGRADE_DEV=`$DIALOG --title " Target to upgrade " \
|
pankso@94
|
582 --backtitle "$BACKLIST" --clear \
|
pankso@94
|
583 --extra-label "List" --extra-button \
|
pankso@94
|
584 --colors --inputbox "\n
|
paul@319
|
585 The installer will upgrade the target by saving all configuration files and \
|
paul@319
|
586 the list of installed packages. Then, it will clean the partition and install the \
|
paul@319
|
587 version of SliTaz contained on the cdrom, restore the configuration files and \
|
paul@319
|
588 reinstall all packages which are not present on the cdrom. You will need an active \
|
paul@319
|
589 internet connection before upgrading.\n\n
|
paul@319
|
590 \Z2Partition containing the system upgrade:\Zn" 18 70 2>&1 1>&3`
|
pankso@94
|
591 retval=$?
|
pankso@94
|
592 exec 3>&-
|
pankso@94
|
593 check_retval
|
MikeDSmith25@252
|
594 # Display list and come back.
|
pankso@94
|
595 if [ "$retval" = "3" ]; then
|
pankso@94
|
596 fdisk_list
|
pankso@94
|
597 ask_for_upgrade_dev
|
pankso@94
|
598 fi
|
pankso@94
|
599 # Empty value.
|
pankso@94
|
600 if [ -z $UPGRADE_DEV ]; then
|
pankso@94
|
601 ask_for_upgrade_dev
|
pankso@94
|
602 fi
|
MikeDSmith25@252
|
603 # Check if specified device exists in /proc/partitions.
|
pankso@94
|
604 DEV_NAME=${UPGRADE_DEV#/dev/}
|
pankso@94
|
605 if cat /proc/partitions | grep -q $DEV_NAME; then
|
pankso@94
|
606 echo "ask_for_target_dev: $TARGET_DEV" >>$LOG
|
pankso@94
|
607 else
|
paul@319
|
608 ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't seem to exist."
|
pankso@94
|
609 error_message
|
pankso@94
|
610 ask_for_upgrade_dev
|
pankso@94
|
611 fi
|
pankso@94
|
612 echo "partition to upgrade: $UPGRADE_DEV" >>$LOG
|
pankso@94
|
613 }
|
pankso@94
|
614
|
paul@319
|
615 # Prepare the partition to upgrade, backup, install, restore configs
|
pankso@94
|
616 # and reinstall pkgs.
|
pankso@94
|
617 upgrade_process()
|
pankso@94
|
618 {
|
pankso@94
|
619 (
|
pankso@94
|
620 echo "XXX" && echo 5
|
paul@319
|
621 echo -e "\nPreparing the target partition..."
|
pankso@94
|
622 echo "XXX"
|
pankso@94
|
623 # Mount point can be already used.
|
pankso@94
|
624 if mount | grep -q $TARGET_ROOT; then
|
pankso@94
|
625 umount $TARGET_ROOT 2>$LOG
|
pankso@94
|
626 fi
|
pankso@94
|
627 mkdir -p $TARGET_ROOT && sleep 2
|
paul@319
|
628 # Mount target.
|
pankso@94
|
629 mount $UPGRADE_DEV $TARGET_ROOT >>$LOG 2>>$LOG
|
pankso@94
|
630 cd $TARGET_ROOT
|
pankso@94
|
631 TARGET_DEV=$UPGRADE_DEV
|
pascal@205
|
632 set_messages
|
pankso@198
|
633
|
pankso@94
|
634 echo "XXX" && echo 10
|
paul@319
|
635 echo -e "\nSearch for /etc/slitaz-release"
|
pankso@94
|
636 echo "XXX"
|
pankso@94
|
637 if [ -f etc/slitaz-release ]; then
|
pankso@94
|
638 release=`cat etc/slitaz-release`
|
pankso@94
|
639 echo "XXX" && echo 15
|
pankso@94
|
640 echo -e "\nSliTaz release: $release"
|
pankso@94
|
641 echo "XXX"
|
pankso@94
|
642 else
|
paul@319
|
643 ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't appear to contain \
|
paul@319
|
644 a SliTaz system, the file: /etc/slitaz-release doesn't exist."
|
pankso@94
|
645 error_message
|
pankso@94
|
646 exit 0
|
pankso@94
|
647 fi && sleep 2
|
pankso@198
|
648
|
pankso@94
|
649 echo "XXX" && echo 20
|
paul@319
|
650 echo -e "\nBackup /etc, /home and the packages list..."
|
pankso@94
|
651 echo "XXX"
|
paul@319
|
652 # Backup target packages list.
|
pankso@94
|
653 ls -1 var/lib/tazpkg/installed > home/packages-selection.list
|
pankso@94
|
654 for dir in *
|
pankso@94
|
655 do
|
pankso@94
|
656 case "$dir" in
|
pankso@94
|
657 boot)
|
MikeDSmith25@252
|
658 # Upgrade doesn't prompt for grub install, so backup and
|
MikeDSmith25@252
|
659 # create a new grub menu.lst.
|
pankso@94
|
660 rm -rf $TARGET_ROOT/boot/vmlinuz-*
|
pankso@94
|
661 mv $TARGET_ROOT/boot/grub/menu.lst \
|
pankso@94
|
662 $TARGET_ROOT/boot/grub/menu.lst.bak 2>/dev/null
|
pankso@94
|
663 grub_config ;;
|
pankso@94
|
664 home)
|
pankso@94
|
665 mv $TARGET_ROOT/home $TARGET_ROOT/home.bak
|
pankso@94
|
666 echo "keeping /home found on: $UPGRADE_DEV" >>$LOG ;;
|
pankso@94
|
667 etc)
|
pankso@94
|
668 tar czf $TARGET_ROOT/etc.tar.gz etc
|
pankso@94
|
669 mv $TARGET_ROOT/etc $TARGET_ROOT/etc.bak
|
pankso@94
|
670 echo "keeping /etc found on: $UPGRADE_DEV" >>$LOG ;;
|
pankso@94
|
671 var)
|
pankso@94
|
672 if [ -d $TARGET_ROOT/var/www ]; then
|
pankso@94
|
673 mv $TARGET_ROOT/var/www $TARGET_ROOT/www.bak
|
pankso@94
|
674 fi
|
pankso@94
|
675 rm -rf $TARGET_ROOT/var ;;
|
pankso@94
|
676 lost+found)
|
pankso@94
|
677 continue ;;
|
pankso@94
|
678 *)
|
pankso@94
|
679 echo "removing target: $dir" >>$LOG
|
pankso@94
|
680 rm -rf $TARGET_ROOT/$dir 2>>$LOG ;;
|
pankso@94
|
681 esac
|
pankso@94
|
682 done
|
pankso@94
|
683 if [ -d $TARGET_ROOT/mklost+found ]; then
|
pankso@94
|
684 mklost+found 2>>$LOG
|
pankso@94
|
685 fi
|
pankso@94
|
686 sleep 2
|
pankso@198
|
687
|
pankso@94
|
688 echo "XXX" && echo 25
|
paul@319
|
689 echo -e "\nInstalling the kernel ($KERNEL)..."
|
pankso@94
|
690 echo "XXX"
|
pankso@94
|
691 install_kernel
|
pankso@198
|
692
|
pankso@94
|
693 echo "XXX" && echo 30
|
paul@319
|
694 echo -e "\nCopying the bootloader syslinux/isolinux..."
|
pankso@94
|
695 echo "XXX"
|
pankso@94
|
696 copy_bootloaders
|
pankso@198
|
697
|
pankso@94
|
698 echo "XXX" && echo 35
|
paul@319
|
699 echo -e "\nCopying the compressed system (rootfs.gz)..."
|
pankso@94
|
700 echo "XXX"
|
pankso@94
|
701 cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT
|
pankso@94
|
702 sleep 2
|
pankso@198
|
703
|
pankso@94
|
704 echo "XXX" && echo 40
|
paul@319
|
705 echo -e "\nExtracting the root system..."
|
pankso@94
|
706 echo "XXX"
|
pankso@94
|
707 extract_rootfs
|
pankso@198
|
708
|
pankso@94
|
709 # Restore backups.
|
pankso@94
|
710 echo "XXX" && echo 42
|
paul@319
|
711 echo -e "\nRestoring configuration files..."
|
pankso@94
|
712 echo "XXX"
|
pankso@94
|
713 rm -rf $TARGET_ROOT/home
|
pankso@94
|
714 mv $TARGET_ROOT/home.bak $TARGET_ROOT/home
|
pankso@94
|
715 rm -rf $TARGET_ROOT/etc
|
pankso@94
|
716 mv $TARGET_ROOT/etc.bak $TARGET_ROOT/etc
|
pankso@94
|
717 if [ -d $TARGET_ROOT/www.bak ]; then
|
pankso@94
|
718 rm -rf $TARGET_ROOT/var/www
|
pankso@94
|
719 mv $TARGET_ROOT/www.bak $TARGET_ROOT/var/www
|
pankso@94
|
720 fi
|
pankso@94
|
721 echo "backups restored: `date`" >> $LOG
|
pankso@198
|
722
|
pankso@94
|
723 # /var/lib/slitaz-installer
|
pankso@94
|
724 mkdir $TARGET_ROOT/var/lib/slitaz-installer
|
pankso@94
|
725 mv $TARGET_ROOT/etc.tar.gz $TARGET_ROOT/var/lib/slitaz-installer
|
pankso@94
|
726 mv $TARGET_ROOT/home/packages-selection.list $TARGET_ROOT/var/lib/slitaz-installer
|
pankso@94
|
727 cd $TARGET_ROOT/var/lib/slitaz-installer
|
pankso@198
|
728
|
pankso@94
|
729 # LiveCD packages list.
|
pankso@94
|
730 echo "XXX" && echo 46
|
paul@319
|
731 echo -e "\nCreating package lists..."
|
pankso@94
|
732 echo "XXX"
|
pankso@94
|
733 ls -1 $TARGET_ROOT/var/lib/tazpkg/installed > packages-cdrom.list || exit 1
|
pankso@94
|
734 echo "packages-cdrom.list: done" >> $LOG
|
pankso@94
|
735 # Diff
|
pankso@94
|
736 diff packages-cdrom.list packages-selection.list | \
|
pankso@94
|
737 grep ^+[a-z] | sed s/^+// > packages-selection.diff
|
pankso@94
|
738 echo "packages-selection.diff: done" >> $LOG
|
pankso@94
|
739 # Get mirror list.
|
pankso@94
|
740 tazpkg recharge >>$LOG 2>>$LOG
|
pankso@94
|
741 if [ ! -f /var/lib/tazpkg/packages.list ]; then
|
paul@319
|
742 ERROR_MSG="The list of available packages on the mirror could not be \
|
paul@319
|
743 downloaded. No missing packages will be reinstalled now, but \
|
paul@319
|
744 you can do so later by looking at the following list: \n\n
|
pankso@94
|
745
|
pankso@94
|
746 /var/lib/slitaz-installer/packages-selection.diff"
|
pankso@94
|
747 error_message
|
pankso@94
|
748 fi
|
pankso@94
|
749 sleep 2
|
pankso@198
|
750
|
paul@319
|
751 # Check if the pkg is on the mirror.
|
pankso@94
|
752 echo "XXX" && echo 48
|
paul@319
|
753 echo -e "\nChecking the availability of packages..."
|
pankso@94
|
754 echo "XXX"
|
pankso@94
|
755 touch packages-to-install.list
|
pankso@94
|
756 packages=0
|
pankso@94
|
757 diff=`cat packages-selection.diff | sort`
|
pankso@94
|
758 for pkg in $diff
|
pankso@94
|
759 do
|
pankso@94
|
760 if grep -q ^$pkg-[0-9] /var/lib/tazpkg/packages.list; then
|
pankso@94
|
761 packages=$(($packages+1))
|
pankso@94
|
762 echo "$pkg" >> packages-to-install.list
|
pankso@94
|
763 fi
|
pankso@94
|
764 done
|
pankso@198
|
765
|
MikeDSmith25@252
|
766 # Calculate the percent for one package and install.
|
pankso@94
|
767 echo "XXX" && echo 50
|
paul@319
|
768 echo -e "\nInstalling any packages..."
|
pankso@94
|
769 echo "XXX"
|
pankso@94
|
770 sleep 2
|
pankso@198
|
771 if [ "$packages" == "0" ]; then
|
pankso@94
|
772 echo "packages to install: 0" >> $LOG
|
pankso@94
|
773 else
|
pankso@94
|
774 onepkg=$((48/$packages))
|
pankso@94
|
775 pct=50
|
pankso@94
|
776 # Get-install all missing pkgs.
|
pankso@94
|
777 for pkg in `cat packages-to-install.list`
|
pankso@94
|
778 do
|
pankso@94
|
779 pct=$(($pct+$onepkg))
|
pankso@94
|
780 echo "XXX" && echo $pct
|
paul@319
|
781 echo -e "\nInstallation of: $pkg..."
|
pankso@94
|
782 echo "XXX"
|
pankso@94
|
783 # Log please.
|
pankso@94
|
784 echo "get-install: $pkg" >>$LOG
|
MikeDSmith25@252
|
785 # Get install package and answer yes in case of dependencies.
|
pankso@94
|
786 pkgname=`grep ^$pkg /var/lib/tazpkg/packages.list`
|
pankso@94
|
787 tazpkg get $pkg >/dev/null 2>/dev/null
|
pankso@94
|
788 yes "" | tazpkg install $pkgname.tazpkg --root=$TARGET_ROOT >/dev/null 2>/dev/null
|
pankso@94
|
789 rm -f $pkgname.tazpkg
|
pankso@94
|
790 done
|
pankso@94
|
791 fi
|
pankso@94
|
792 echo "XXX" && echo 100
|
paul@319
|
793 echo -e "\nInstallation of packages complete..."
|
pankso@94
|
794 echo "XXX"
|
pankso@94
|
795 sleep 2
|
pankso@94
|
796 ) |
|
paul@319
|
797 $DIALOG --title " Processing system upgrade " \
|
pankso@70
|
798 --backtitle "$BACKLIST" \
|
pankso@94
|
799 --gauge "Target in preparation..." 18 70 0
|
pankso@94
|
800 }
|
pankso@94
|
801
|
paul@319
|
802 # End of system upgrade.
|
pankso@94
|
803 end_of_upgrade()
|
pankso@94
|
804 {
|
pankso@94
|
805 TARGET_DEV=$UPGRADE_DEV
|
pascal@205
|
806 set_messages
|
pankso@94
|
807 pkgscd=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-cdrom.list | wc -l`
|
pankso@94
|
808 pkginst=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-to-install.list | wc -l`
|
pankso@94
|
809 echo "end_of_upgrade: `date`" >>$LOG
|
paul@319
|
810 $DIALOG --title " Upgrade completed " \
|
pankso@94
|
811 --backtitle "$BACKLIST" \
|
pankso@94
|
812 --yes-label "Exit" \
|
pankso@94
|
813 --no-label "Reboot" \
|
pankso@70
|
814 --clear --colors --yesno "\n
|
paul@319
|
815 Upgrade finished. You can know restart (reboot) \
|
paul@319
|
816 from your SliTaz GNU/Linux system.\n\n
|
paul@319
|
817 Packages on the cdrom : $pkgscd\n
|
paul@319
|
818 Packages installed from the mirror : $pkginst\n" 18 70
|
pankso@70
|
819 retval=$?
|
pankso@94
|
820 case $retval in
|
pankso@94
|
821 0)
|
pankso@94
|
822 TITLE="Exiting"
|
pankso@94
|
823 umount_devices ;;
|
pankso@94
|
824 1)
|
pankso@94
|
825 TITLE="Rebooting"
|
pankso@94
|
826 umount_devices
|
pankso@94
|
827 reboot || reboot -f ;;
|
pankso@94
|
828 255)
|
pankso@94
|
829 echo -e "ESC pressed.\n" && exit 0 ;;
|
pankso@94
|
830 esac
|
pankso@70
|
831 }
|
pankso@70
|
832
|
pankso@70
|
833 ######################
|
pankso@70
|
834 # Installer sequence #
|
pankso@70
|
835 ######################
|
pankso@70
|
836
|
pascal@205
|
837 set_messages
|
pankso@94
|
838 check_root
|
pankso@94
|
839 start_installer
|
pankso@94
|
840
|
pankso@70
|
841 case $ACTION in
|
pankso@70
|
842 upgrade)
|
paul@319
|
843 BACKLIST="$BACKLIST (Upgrade)"
|
pankso@94
|
844 mount_cdrom
|
pankso@94
|
845 ask_for_upgrade_dev
|
pankso@94
|
846 upgrade_process
|
pankso@94
|
847 end_of_upgrade
|
pankso@70
|
848 ;;
|
pankso@70
|
849 install|*)
|
pankso@70
|
850 mount_cdrom
|
pankso@70
|
851 ask_for_target_dev
|
pankso@70
|
852 ask_for_mkfs_target_dev
|
pankso@70
|
853 prepare_target_dev
|
pankso@70
|
854 ask_for_hostname
|
pankso@70
|
855 install_files
|
pankso@70
|
856 grub_install
|
pankso@70
|
857 end_of_install
|
pankso@70
|
858 ;;
|
pankso@70
|
859 esac
|
pankso@70
|
860
|
pankso@70
|
861 exit 0
|