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