Magellan Linux

Annotation of /alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 522 - (hide annotations) (download) (as text)
Fri Jun 27 22:43:02 2008 UTC (15 years, 10 months ago) by niro
Original Path: alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh
File MIME type: application/x-sh
File size: 11648 byte(s)
-removed unnecessary stuff and fixed grub and fstab settings

1 niro 258 #!/bin/sh
2     #
3 niro 522 # $Header: /home/cvsd/alx-cvs/alx-src/alxinstall-ng/bin/alxinstall-ng.sh,v 1.8 2008-06-27 22:43:02 niro Exp $
4 niro 258 #
5     # AutoSta_LX Installation Script
6     #
7     # Niels Rogalla <niro@magellan-linux.de>
8     # <rogalla@augusta-bochum.de>
9     #
10     #
11     # Install Navigation Gui
12     #
13    
14     #images: (get ${CDIMAGENAME})
15     source /mnt/cdrom/system/images.conf
16    
17     #Includes
18     source /usr/lib/alxinstall-ng/functions/findhdd.sh > /dev/null
19     ### bugfix ###############################
20     cdromdev="`echo $cdromdev|sed -e 's/ //'`"
21     ########################################
22    
23     ### System/Config Version
24 niro 520 VERSION="0.3"
25 niro 258 TITLE="alxinstall-ng - ${VERSION}"
26    
27     #CONFIGS_TEMPLATE="/opt/alx-config/configs"
28    
29     CDPATH="/mnt/cdrom"
30     INSTALLPATH="/mnt/magellan"
31    
32     ### WICHTIG: anzahl lines in der autosta_lx.tar.gz -1
33     CURRENTLINE=0
34     #TOTALLINES=11072 # -> now in images.conf
35    
36    
37     #################################################
38     # DIALOG BOXEN #
39     #################################################
40    
41 niro 520 die()
42     {
43 niro 258 ERROR=$1
44     RETVAL=$?
45     dialog_install_failure
46     exit 1
47     }
48    
49 niro 520 dialog_warning()
50     {
51 niro 258 dialog \
52 niro 520 --backtitle "${TITLE}" \
53 niro 258 --colors \
54     --defaultno \
55     --yesno "\Z1 !!! Achtung !!! \Zn\n\n\
56     Diese Festplatte wird unwiederruflich geloescht werden.\n\n\
57     Soll ich wirklich fortfahren ?" 10 70
58     RES=$?
59 niro 520 if [[ ${RES} -eq 1 ]]
60 niro 258 then
61     clear
62     echo "Der Vorgang wurde abgebrochen."
63     exit 1
64     fi
65     }
66    
67 niro 520 dialog_setup_hdd_info()
68     {
69     local SHDD="$(echo ${HDD} | sed 's/\/dev\///')"
70 niro 258
71     dialog \
72     --colors \
73     --title "[ Festplatten Partitionierung ]" \
74 niro 520 --backtitle "${TITLE}" \
75 niro 258 --ok-label "Weiter" \
76     --msgbox "\nBitte legen Sie 3 Partitionen an.\n\n\
77     [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit ca. 50MB\n\
78     [ \Z3${SHDD}2\Zn ] Typ: \Z3Linux Swap\Zn mit ca. 256MB\n\
79     [ \Z3${SHDD}3\Zn ] Typ: \Z3Linux \Zn mit dem Rest (min. 256MB)\n\n\
80     Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
81     }
82    
83 niro 520 dialog_setup_hdd_info_flash()
84     {
85     local SHDD="$(echo $HDD | sed 's/\/dev\///')"
86 niro 258
87 niro 280 dialog \
88     --colors \
89     --title "[ Festplatten Partitionierung ]" \
90 niro 520 --backtitle "${TITLE}" \
91 niro 280 --ok-label "Weiter" \
92     --msgbox "\nBitte legen Sie 1 Partition an.\n\n\
93     [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit dem gesamten Speicher\n\
94     Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
95     }
96    
97 niro 520 dialog_setup_system_menu()
98     {
99     local i
100 niro 280
101 niro 520 i=$(dialog \
102     --backtitle "${TITLE}" \
103 niro 258 --title "[ Festplatten Partitionierung ]" \
104     --cancel-label "Abbrechen" \
105     --ok-label "Weiter" \
106     --stdout \
107 niro 280 --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \
108     "1" "Normale IDE-Disk" \
109 niro 520 "2" "Flash-Speicher")
110 niro 258 RES=$?
111 niro 520 [[ ${RES} -eq 1 ]] && return 1
112     if [[ ${RES} -eq 0 ]]
113     then
114     case "${i}" in
115     "1") run_install_normal ;;
116     "2") run_install_flash ;;
117 niro 258 esac
118     fi
119     }
120    
121 niro 520 dialog_setup_hdd_found_manuell()
122     {
123     local i
124 niro 258
125 niro 520 [[ ! -z ${installdevs} ]] && installdevs=""
126    
127 niro 258 echo "dialog \\" > /tmp/hddtmp.sh
128 niro 520 echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
129 niro 258 echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
130     echo "--stdout \\" >> /tmp/hddtmp.sh
131     echo "--colors \\" >> /tmp/hddtmp.sh
132     echo "--msgbox \"Gefundene Hardware:\n\n \\" >> /tmp/hddtmp.sh
133     echo " Festplatten:\n \\" >> /tmp/hddtmp.sh
134    
135 niro 520 if [[ ! -z ${scsidisks} ]]
136 niro 258 then
137 niro 520 for i in ${scsidisks}
138 niro 258 do
139 niro 520 if [[ ${i} != ${cdromdev} ]]
140 niro 258 then
141 niro 520 echo " \\Z7SCSI: \\Z3${i}\\Zn\n \\" >> /tmp/hddtmp.sh
142     installdevs="${installdevs} ${i}"
143 niro 258 fi
144     done
145     fi
146    
147 niro 520 if [[ ! -z ${idedisks} ]]
148 niro 258 then
149 niro 520 for i in ${idedisks}
150 niro 258 do
151 niro 520 if [[ ${i} != ${cdromdev} ]]
152 niro 258 then
153 niro 520 echo " \\Z7IDE: \\Z3${i}\\Zn\n \\" >> /tmp/hddtmp.sh
154     installdevs="${installdevs} ${i}"
155 niro 258 fi
156     done
157     fi
158    
159 niro 520 if [[ ! -z ${cdromdev} ]]
160 niro 258 then
161     echo " \n \\" >> /tmp/hddtmp.sh
162     echo " \\Z7andere Laufwerke:\n \\" >> /tmp/hddtmp.sh
163 niro 520 echo " CDROM: \\Z3${cdromdev}\\Zn\n \\" >> /tmp/hddtmp.sh
164 niro 258 fi
165     echo " \" 13 70" >> /tmp/hddtmp.sh
166     chmod a+x /tmp/hddtmp.sh
167     /tmp/hddtmp.sh
168     }
169    
170 niro 520 dialog_setup_hdd_partitions_manuell()
171     {
172     local i
173    
174     if [[ -z ${installdevs} ]]
175 niro 258 then
176     dialog \
177 niro 520 --backtitle "${TITLE}" \
178 niro 258 --ok-label "Beenden" \
179     --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
180     exit 1
181     else
182    
183     echo "dialog \\" > /tmp/hddtmp.sh
184 niro 520 echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
185 niro 258 echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
186     echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
187     echo "--stdout \\" >> /tmp/hddtmp.sh
188     echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
189    
190 niro 520 for i in ${installdevs}
191 niro 258 do
192 niro 520 echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
193 niro 258 done
194     echo -e "\n" >> /tmp/hddtmp.sh
195    
196     chmod a+x /tmp/hddtmp.sh
197 niro 520 HDD="$(/tmp/hddtmp.sh)"
198 niro 258 RES=$?
199 niro 520 [[ ${RES} -eq 1 ]] && return 1
200     if [[ ${RES} -eq 0 ]]
201 niro 258 then
202     dialog_setup_hdd_info
203     setup_hdd_partitions_manuell
204     fi
205     fi
206     }
207    
208 niro 520 dialog_setup_hdd_partitions_manuell_flash()
209     {
210     local i
211    
212     if [[ -z ${installdevs} ]]
213 niro 280 then
214     dialog \
215 niro 520 --backtitle "${TITLE}" \
216 niro 280 --ok-label "Beenden" \
217     --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
218     exit 1
219     else
220    
221     echo "dialog \\" > /tmp/hddtmp.sh
222 niro 520 echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
223 niro 280 echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
224     echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
225     echo "--stdout \\" >> /tmp/hddtmp.sh
226     echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
227    
228 niro 520 for i in ${installdevs}
229 niro 280 do
230 niro 520 echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
231 niro 280 done
232     echo -e "\n" >> /tmp/hddtmp.sh
233    
234     chmod a+x /tmp/hddtmp.sh
235 niro 520 HDD="$(/tmp/hddtmp.sh)"
236 niro 280 RES=$?
237 niro 520 [[ ${RES} -eq 1 ]] && return 1
238     if [[ ${RES} -eq 0 ]]
239 niro 280 then
240     dialog_setup_hdd_info_flash
241     setup_hdd_partitions_manuell_flash
242     fi
243     fi
244     }
245    
246 niro 520 dialog_setup_hdd_format()
247     {
248 niro 258 dialog \
249 niro 520 --backtitle "${TITLE}" \
250 niro 258 --infobox "Erstelle Datei-Systeme ..." 3 70
251     }
252    
253 niro 520 dialog_install_settings()
254     {
255 niro 258 dialog \
256 niro 520 --backtitle "${TITLE}" \
257 niro 258 --infobox "Speichere System-Einstellungen ..." 3 70
258     }
259    
260 niro 520 dialog_install_system_image()
261     {
262 niro 258 dialog \
263 niro 520 --backtitle "${TITLE}" \
264 niro 258 --gauge "Kopiere System-Image ..." 6 80
265     }
266    
267 niro 520 dialog_install_meter()
268     {
269     while [[ ${CURRENTLINE} != ${TOTALLINES} ]]
270     do
271     CURRENTLINE=$(grep --count . /tmp/install.log)
272     PERCENT=$(expr ${CURRENTLINE} \* 100 / ${TOTALLINES})
273 niro 258 echo ${PERCENT}
274     sleep 1
275     done
276     rm -f /tmp/install.log
277     return 0
278     }
279    
280    
281 niro 520 dialog_install_bootsector()
282     {
283 niro 258 dialog \
284 niro 520 --backtitle "${TITLE}" \
285 niro 258 --infobox "Schreibe den Bootsektor ..." 3 70
286     }
287    
288 niro 520 dialog_install_successful()
289     {
290 niro 258 dialog \
291 niro 520 --backtitle "${TITLE}" \
292 niro 258 --colors \
293     --msgbox "Die Installation war \Z2erfolgreich\Zn." 5 81
294     }
295    
296 niro 520 dialog_install_failure()
297     {
298 niro 258 dialog \
299 niro 520 --backtitle "${TITLE}" \
300 niro 258 --colors \
301     --msgbox "Die Installation ist \Z1Fehlgeschlagen\Zn.\n\n\
302 niro 520 Fehler bei ${ERROR}, RetVal: ${RETVAL} \
303 niro 258 " 10 81
304     }
305    
306 niro 520 dialog_main()
307     {
308 niro 258 METHOD=0
309    
310 niro 520 while [[ ${METHOD} -le 2 ]]
311 niro 258 do
312 niro 520 METHOD=$(dialog \
313     --backtitle "${TITLE}" \
314 niro 258 --no-cancel \
315     --ok-label "Weiter" \
316     --stdout \
317     --menu "Konfiguration" 14 70 5 \
318     "1" "AutoSta_LX installieren" \
319     "2" "Uebersicht gefundener Laufwerke" \
320     "3" "Beenden und neustarten" \
321 niro 520 "4" "Beenden und eine Shell starten")
322 niro 258 RES=$?
323 niro 520 if [[ ${RES} -eq 1 ]] && exit 1
324     if [[ ${RES} -eq 0 ]]
325     then
326     case ${METHOD} in
327     "1") dialog_setup_system_menu ;;
328     "2") dialog_setup_hdd_found_manuell ;;
329     "3") install_do_reboot ;;
330     "4") /bin/bash --login -i ;;
331 niro 258 esac
332     fi
333     done
334     }
335    
336     #################################################
337     # Install Komandos #
338     #################################################
339 niro 520 setup_hdd_partitions_manuell()
340     {
341 niro 258 BOOTHDD="${HDD}1"
342     SWAPHDD="${HDD}2"
343     ROOTHDD="${HDD}3"
344    
345     ## hdds partitionieren manuell
346 niro 520 cfdisk ${HDD} || die
347 niro 258 }
348    
349 niro 520 setup_hdd_partitions_manuell_flash()
350     {
351 niro 280 ROOTHDD="${HDD}1"
352    
353     ## hdds partitionieren manuell
354 niro 520 cfdisk ${HDD} || die
355 niro 280 }
356    
357 niro 520 setup_hdd_format()
358     {
359     mkswap ${SWAPHDD} || die
360     mke2fs -j -q ${BOOTHDD} || die
361     mke2fs -j -q ${ROOTHDD} || die
362 niro 258 }
363    
364 niro 520 setup_hdd_format_flash()
365     {
366     mke2fs -j -q ${ROOTHDD} || die
367 niro 280 }
368    
369 niro 520 install_mount_rootfs()
370     {
371     swapon ${SWAPHDD} || die
372     mount ${ROOTHDD} ${INSTALLPATH} || die
373     install -d ${INSTALLPATH}/boot || die
374     mount ${BOOTHDD} ${INSTALLPATH}/boot || die
375     cd ${INSTALLPATH} || die
376 niro 258 }
377    
378 niro 520 install_mount_rootfs_flash()
379     {
380     mount ${ROOTHDD} ${INSTALLPATH} || die
381     install -d ${INSTALLPATH}/boot || die
382     cd ${INSTALLPATH} || die
383 niro 280 }
384    
385 niro 520 install_system_image()
386     {
387 niro 258 tar xvjpf ${CDPATH}/system/${CDIMAGENAME} -C ${INSTALLPATH}
388     }
389    
390 niro 520 install_bootsector_chroot()
391     {
392 niro 258 ### grubconf schreiben
393 niro 520 source ${INSTALLPATH}/boot/kernelversion
394 niro 258
395     #for alx only
396     if [ -e ${INSTALLPATH}/etc/alx_version ]
397     then
398     OLD_ALXVER="${ALXVER}"
399     source ${INSTALLPATH}/etc/alx_version
400     KRNVER="ALX-${ALXVER}"
401     ALXVER="${OLD_ALXVER}"
402     fi
403 niro 522
404 niro 520 [[ -z ${KRNVER} ]] && KRNVER="AutoSta_LX"
405     [[ -z ${KRNINITRD} ]] && KRNINITRD="initrd"
406 niro 258
407 niro 522 echo "default 0" > ${INSTALLPATH}/boot/grub/grub.conf || die
408     echo "timeout 0" >> ${INSTALLPATH}/boot/grub/grub.conf ||die
409    
410 niro 520 echo -e "\ntitle=${KRNVER}" >> ${INSTALLPATH}/boot/grub/grub.conf || die
411 niro 522 echo "root (hd0,0)" >> ${INSTALLPATH}/boot/grub/grub.conf || die
412 niro 258
413 niro 522 echo "kernel /boot/vmlinuz root=${ROOTHDD} quiet" >> ${INSTALLPATH}/boot/grub/grub.conf || die
414     echo "initrd /boot/initrd" >> ${INSTALLPATH}/boot/grub/grub.conf || die
415 niro 258
416 niro 522 # bootsector schreiben chrooted schreiben (lfs/magellan)
417     cat > ${INSTALLPATH}/root/.bashrc << CHROOTEOF
418 niro 258 /usr/sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null
419     root (hd0,0)
420     setup (hd0)
421     quit
422     EOF
423 niro 260 exit 0
424 niro 258 CHROOTEOF
425    
426 niro 522 ## enters chroot
427     mount -t proc proc ${INSTALLPATH}/proc
428     mount -t sysfs sysfs ${INSTALLPATH}/sysfs
429 niro 520 mount -o bind /dev ${INSTALLPATH}/dev
430     chroot ${INSTALLPATH} /bin/bash --rcfile /root/.bashrc -i
431     umount ${INSTALLPATH}/proc
432 niro 522 umount ${INSTALLPATH}/sys
433 niro 520 umount ${INSTALLPATH}/dev
434     rm ${INSTALLPATH}/root/.bashrc
435 niro 258 }
436    
437 niro 520 install_system_settings()
438     {
439 niro 522 # schreibe fstab
440 niro 520 echo -e "${BOOTHDD}\t/boot\text3\tnoatime,noauto\t1 1" > ${INSTALLPATH}/etc/fstab || die
441     echo -e "${ROOTHDD}\t/\text3\tnoatime\t0 0" >> ${INSTALLPATH}/etc/fstab || die
442     echo -e "${SWAPHDD}\tswap\tswap\tpri=1\t0 0" >> ${INSTALLPATH}/etc/fstab || die
443 niro 522 echo -e "proc\t/proc\tproc\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
444     echo -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
445 niro 258 }
446    
447 niro 520 install_system_settings_flash()
448     {
449 niro 522 # schreibe fstab
450 niro 520 echo -e "${ROOTHDD}\t/\text3\tnoatime\t0 0" > ${INSTALLPATH}/etc/fstab || die
451 niro 522 echo -e "proc\t/proc\tproc\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
452     echo -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
453 niro 280 }
454 niro 520
455     install_umount_rootfs()
456     {
457 niro 258 cd /
458 niro 520 umount ${INSTALLPATH}/boot || die
459     umount ${INSTALLPATH} || die
460     swapoff ${SWAPHDD} || die
461 niro 258 }
462    
463 niro 520 install_umount_rootfs_flash()
464     {
465 niro 280 cd /
466 niro 520 umount ${INSTALLPATH} || die
467 niro 280 }
468    
469 niro 520 install_do_reboot()
470     {
471 niro 258 reboot
472     }
473    
474     #################################################
475     # Install Ablauf Scripte #
476     #################################################
477    
478 niro 520 run_install_normal()
479     {
480 niro 258 dialog_setup_hdd_found_manuell
481 niro 520
482 niro 258 dialog_setup_hdd_partitions_manuell
483     dialog_setup_hdd_format
484     setup_hdd_format > /dev/null
485     install_mount_rootfs
486     (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image
487 niro 520
488 niro 258 dialog_install_bootsector
489     install_bootsector_chroot
490 niro 519
491 niro 258 dialog_install_settings
492     sleep 1
493     install_system_settings
494     install_umount_rootfs
495     dialog_install_successful
496     }
497    
498 niro 520 run_install_flash()
499     {
500 niro 280 dialog_setup_hdd_found_manuell
501 niro 520
502 niro 280 dialog_setup_hdd_partitions_manuell_flash
503     dialog_setup_hdd_format
504     setup_hdd_format_flash > /dev/null
505     install_mount_rootfs_flash
506     (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image
507 niro 520
508 niro 280 dialog_install_bootsector
509     install_bootsector_chroot
510 niro 520
511 niro 280 dialog_install_settings
512     sleep 1
513     install_system_settings_flash
514     install_umount_rootfs_flash
515     dialog_install_successful
516     }
517    
518 niro 522 dialog_main
519 niro 258
520     exit 0