Contents of /alx-src/tags/alxinstall-ng-0_3_10/bin/alxinstall-ng.sh.in
Parent Directory | Revision Log
Revision 522 -
(show annotations)
(download)
(as text)
Fri Jun 27 22:43:02 2008 UTC (16 years, 2 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)
Fri Jun 27 22:43:02 2008 UTC (16 years, 2 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 | #!/bin/sh |
2 | # |
3 | # $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 | # |
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 | VERSION="0.3" |
25 | 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 | die() |
42 | { |
43 | ERROR=$1 |
44 | RETVAL=$? |
45 | dialog_install_failure |
46 | exit 1 |
47 | } |
48 | |
49 | dialog_warning() |
50 | { |
51 | dialog \ |
52 | --backtitle "${TITLE}" \ |
53 | --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 | if [[ ${RES} -eq 1 ]] |
60 | then |
61 | clear |
62 | echo "Der Vorgang wurde abgebrochen." |
63 | exit 1 |
64 | fi |
65 | } |
66 | |
67 | dialog_setup_hdd_info() |
68 | { |
69 | local SHDD="$(echo ${HDD} | sed 's/\/dev\///')" |
70 | |
71 | dialog \ |
72 | --colors \ |
73 | --title "[ Festplatten Partitionierung ]" \ |
74 | --backtitle "${TITLE}" \ |
75 | --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 | dialog_setup_hdd_info_flash() |
84 | { |
85 | local SHDD="$(echo $HDD | sed 's/\/dev\///')" |
86 | |
87 | dialog \ |
88 | --colors \ |
89 | --title "[ Festplatten Partitionierung ]" \ |
90 | --backtitle "${TITLE}" \ |
91 | --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 | dialog_setup_system_menu() |
98 | { |
99 | local i |
100 | |
101 | i=$(dialog \ |
102 | --backtitle "${TITLE}" \ |
103 | --title "[ Festplatten Partitionierung ]" \ |
104 | --cancel-label "Abbrechen" \ |
105 | --ok-label "Weiter" \ |
106 | --stdout \ |
107 | --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \ |
108 | "1" "Normale IDE-Disk" \ |
109 | "2" "Flash-Speicher") |
110 | RES=$? |
111 | [[ ${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 | esac |
118 | fi |
119 | } |
120 | |
121 | dialog_setup_hdd_found_manuell() |
122 | { |
123 | local i |
124 | |
125 | [[ ! -z ${installdevs} ]] && installdevs="" |
126 | |
127 | echo "dialog \\" > /tmp/hddtmp.sh |
128 | echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh |
129 | 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 | if [[ ! -z ${scsidisks} ]] |
136 | then |
137 | for i in ${scsidisks} |
138 | do |
139 | if [[ ${i} != ${cdromdev} ]] |
140 | then |
141 | echo " \\Z7SCSI: \\Z3${i}\\Zn\n \\" >> /tmp/hddtmp.sh |
142 | installdevs="${installdevs} ${i}" |
143 | fi |
144 | done |
145 | fi |
146 | |
147 | if [[ ! -z ${idedisks} ]] |
148 | then |
149 | for i in ${idedisks} |
150 | do |
151 | if [[ ${i} != ${cdromdev} ]] |
152 | then |
153 | echo " \\Z7IDE: \\Z3${i}\\Zn\n \\" >> /tmp/hddtmp.sh |
154 | installdevs="${installdevs} ${i}" |
155 | fi |
156 | done |
157 | fi |
158 | |
159 | if [[ ! -z ${cdromdev} ]] |
160 | then |
161 | echo " \n \\" >> /tmp/hddtmp.sh |
162 | echo " \\Z7andere Laufwerke:\n \\" >> /tmp/hddtmp.sh |
163 | echo " CDROM: \\Z3${cdromdev}\\Zn\n \\" >> /tmp/hddtmp.sh |
164 | fi |
165 | echo " \" 13 70" >> /tmp/hddtmp.sh |
166 | chmod a+x /tmp/hddtmp.sh |
167 | /tmp/hddtmp.sh |
168 | } |
169 | |
170 | dialog_setup_hdd_partitions_manuell() |
171 | { |
172 | local i |
173 | |
174 | if [[ -z ${installdevs} ]] |
175 | then |
176 | dialog \ |
177 | --backtitle "${TITLE}" \ |
178 | --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 | echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh |
185 | 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 | for i in ${installdevs} |
191 | do |
192 | echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh |
193 | done |
194 | echo -e "\n" >> /tmp/hddtmp.sh |
195 | |
196 | chmod a+x /tmp/hddtmp.sh |
197 | HDD="$(/tmp/hddtmp.sh)" |
198 | RES=$? |
199 | [[ ${RES} -eq 1 ]] && return 1 |
200 | if [[ ${RES} -eq 0 ]] |
201 | then |
202 | dialog_setup_hdd_info |
203 | setup_hdd_partitions_manuell |
204 | fi |
205 | fi |
206 | } |
207 | |
208 | dialog_setup_hdd_partitions_manuell_flash() |
209 | { |
210 | local i |
211 | |
212 | if [[ -z ${installdevs} ]] |
213 | then |
214 | dialog \ |
215 | --backtitle "${TITLE}" \ |
216 | --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 | echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh |
223 | 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 | for i in ${installdevs} |
229 | do |
230 | echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh |
231 | done |
232 | echo -e "\n" >> /tmp/hddtmp.sh |
233 | |
234 | chmod a+x /tmp/hddtmp.sh |
235 | HDD="$(/tmp/hddtmp.sh)" |
236 | RES=$? |
237 | [[ ${RES} -eq 1 ]] && return 1 |
238 | if [[ ${RES} -eq 0 ]] |
239 | then |
240 | dialog_setup_hdd_info_flash |
241 | setup_hdd_partitions_manuell_flash |
242 | fi |
243 | fi |
244 | } |
245 | |
246 | dialog_setup_hdd_format() |
247 | { |
248 | dialog \ |
249 | --backtitle "${TITLE}" \ |
250 | --infobox "Erstelle Datei-Systeme ..." 3 70 |
251 | } |
252 | |
253 | dialog_install_settings() |
254 | { |
255 | dialog \ |
256 | --backtitle "${TITLE}" \ |
257 | --infobox "Speichere System-Einstellungen ..." 3 70 |
258 | } |
259 | |
260 | dialog_install_system_image() |
261 | { |
262 | dialog \ |
263 | --backtitle "${TITLE}" \ |
264 | --gauge "Kopiere System-Image ..." 6 80 |
265 | } |
266 | |
267 | dialog_install_meter() |
268 | { |
269 | while [[ ${CURRENTLINE} != ${TOTALLINES} ]] |
270 | do |
271 | CURRENTLINE=$(grep --count . /tmp/install.log) |
272 | PERCENT=$(expr ${CURRENTLINE} \* 100 / ${TOTALLINES}) |
273 | echo ${PERCENT} |
274 | sleep 1 |
275 | done |
276 | rm -f /tmp/install.log |
277 | return 0 |
278 | } |
279 | |
280 | |
281 | dialog_install_bootsector() |
282 | { |
283 | dialog \ |
284 | --backtitle "${TITLE}" \ |
285 | --infobox "Schreibe den Bootsektor ..." 3 70 |
286 | } |
287 | |
288 | dialog_install_successful() |
289 | { |
290 | dialog \ |
291 | --backtitle "${TITLE}" \ |
292 | --colors \ |
293 | --msgbox "Die Installation war \Z2erfolgreich\Zn." 5 81 |
294 | } |
295 | |
296 | dialog_install_failure() |
297 | { |
298 | dialog \ |
299 | --backtitle "${TITLE}" \ |
300 | --colors \ |
301 | --msgbox "Die Installation ist \Z1Fehlgeschlagen\Zn.\n\n\ |
302 | Fehler bei ${ERROR}, RetVal: ${RETVAL} \ |
303 | " 10 81 |
304 | } |
305 | |
306 | dialog_main() |
307 | { |
308 | METHOD=0 |
309 | |
310 | while [[ ${METHOD} -le 2 ]] |
311 | do |
312 | METHOD=$(dialog \ |
313 | --backtitle "${TITLE}" \ |
314 | --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 | "4" "Beenden und eine Shell starten") |
322 | RES=$? |
323 | 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 | esac |
332 | fi |
333 | done |
334 | } |
335 | |
336 | ################################################# |
337 | # Install Komandos # |
338 | ################################################# |
339 | setup_hdd_partitions_manuell() |
340 | { |
341 | BOOTHDD="${HDD}1" |
342 | SWAPHDD="${HDD}2" |
343 | ROOTHDD="${HDD}3" |
344 | |
345 | ## hdds partitionieren manuell |
346 | cfdisk ${HDD} || die |
347 | } |
348 | |
349 | setup_hdd_partitions_manuell_flash() |
350 | { |
351 | ROOTHDD="${HDD}1" |
352 | |
353 | ## hdds partitionieren manuell |
354 | cfdisk ${HDD} || die |
355 | } |
356 | |
357 | setup_hdd_format() |
358 | { |
359 | mkswap ${SWAPHDD} || die |
360 | mke2fs -j -q ${BOOTHDD} || die |
361 | mke2fs -j -q ${ROOTHDD} || die |
362 | } |
363 | |
364 | setup_hdd_format_flash() |
365 | { |
366 | mke2fs -j -q ${ROOTHDD} || die |
367 | } |
368 | |
369 | 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 | } |
377 | |
378 | install_mount_rootfs_flash() |
379 | { |
380 | mount ${ROOTHDD} ${INSTALLPATH} || die |
381 | install -d ${INSTALLPATH}/boot || die |
382 | cd ${INSTALLPATH} || die |
383 | } |
384 | |
385 | install_system_image() |
386 | { |
387 | tar xvjpf ${CDPATH}/system/${CDIMAGENAME} -C ${INSTALLPATH} |
388 | } |
389 | |
390 | install_bootsector_chroot() |
391 | { |
392 | ### grubconf schreiben |
393 | source ${INSTALLPATH}/boot/kernelversion |
394 | |
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 | |
404 | [[ -z ${KRNVER} ]] && KRNVER="AutoSta_LX" |
405 | [[ -z ${KRNINITRD} ]] && KRNINITRD="initrd" |
406 | |
407 | echo "default 0" > ${INSTALLPATH}/boot/grub/grub.conf || die |
408 | echo "timeout 0" >> ${INSTALLPATH}/boot/grub/grub.conf ||die |
409 | |
410 | echo -e "\ntitle=${KRNVER}" >> ${INSTALLPATH}/boot/grub/grub.conf || die |
411 | echo "root (hd0,0)" >> ${INSTALLPATH}/boot/grub/grub.conf || die |
412 | |
413 | 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 | |
416 | # bootsector schreiben chrooted schreiben (lfs/magellan) |
417 | cat > ${INSTALLPATH}/root/.bashrc << CHROOTEOF |
418 | /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 | exit 0 |
424 | CHROOTEOF |
425 | |
426 | ## enters chroot |
427 | mount -t proc proc ${INSTALLPATH}/proc |
428 | mount -t sysfs sysfs ${INSTALLPATH}/sysfs |
429 | mount -o bind /dev ${INSTALLPATH}/dev |
430 | chroot ${INSTALLPATH} /bin/bash --rcfile /root/.bashrc -i |
431 | umount ${INSTALLPATH}/proc |
432 | umount ${INSTALLPATH}/sys |
433 | umount ${INSTALLPATH}/dev |
434 | rm ${INSTALLPATH}/root/.bashrc |
435 | } |
436 | |
437 | install_system_settings() |
438 | { |
439 | # schreibe fstab |
440 | 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 | 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 | } |
446 | |
447 | install_system_settings_flash() |
448 | { |
449 | # schreibe fstab |
450 | echo -e "${ROOTHDD}\t/\text3\tnoatime\t0 0" > ${INSTALLPATH}/etc/fstab || die |
451 | 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 | } |
454 | |
455 | install_umount_rootfs() |
456 | { |
457 | cd / |
458 | umount ${INSTALLPATH}/boot || die |
459 | umount ${INSTALLPATH} || die |
460 | swapoff ${SWAPHDD} || die |
461 | } |
462 | |
463 | install_umount_rootfs_flash() |
464 | { |
465 | cd / |
466 | umount ${INSTALLPATH} || die |
467 | } |
468 | |
469 | install_do_reboot() |
470 | { |
471 | reboot |
472 | } |
473 | |
474 | ################################################# |
475 | # Install Ablauf Scripte # |
476 | ################################################# |
477 | |
478 | run_install_normal() |
479 | { |
480 | dialog_setup_hdd_found_manuell |
481 | |
482 | 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 | |
488 | dialog_install_bootsector |
489 | install_bootsector_chroot |
490 | |
491 | dialog_install_settings |
492 | sleep 1 |
493 | install_system_settings |
494 | install_umount_rootfs |
495 | dialog_install_successful |
496 | } |
497 | |
498 | run_install_flash() |
499 | { |
500 | dialog_setup_hdd_found_manuell |
501 | |
502 | 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 | |
508 | dialog_install_bootsector |
509 | install_bootsector_chroot |
510 | |
511 | dialog_install_settings |
512 | sleep 1 |
513 | install_system_settings_flash |
514 | install_umount_rootfs_flash |
515 | dialog_install_successful |
516 | } |
517 | |
518 | dialog_main |
519 | |
520 | exit 0 |