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