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