Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh revision 268 by niro, Tue Apr 19 17:24:57 2005 UTC alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh.in revision 6840 by niro, Thu Jul 23 13:03:19 2015 UTC
# Line 1  Line 1 
1  #!/bin/sh  #!/bin/sh
2  #  # $Id$
 # $Header: /home/cvsd/alx-cvs/alx-src/alxinstall-ng/bin/alxinstall-ng.sh,v 1.4 2005-04-19 17:24:57 niro Exp $  
 #  
 # AutoSta_LX Installation Script  
 # version: 0.8b  
 #  
 # Niels Rogalla <niro@magellan-linux.de>  
 # <rogalla@augusta-bochum.de>  
 #  
 #  
 # Install Navigation Gui  
 #  
3    
4  #source /etc/alx_version  # ignore environment!
5  #source /opt/alx-config/version  LC_ALL=C
6    
7  #source /etc/alx-config/config.rc  MLIBDIR="/usr/lib/alxinstall-ng"
8    
9  #images: (get ${CDIMAGENAME})  # images: (get ${CDIMAGENAME})
10  source /mnt/cdrom/system/images.conf  source /mnt/cdrom/system/images.conf
11    
12  #Includes  # includes
13  source /usr/lib/alxinstall-ng/functions/findhdd.sh > /dev/null  source ${MLIBDIR}/functions/generic.sh
14  ### bugfix ###############################  source ${MLIBDIR}/functions/hwdetection.sh
 cdromdev="`echo $cdromdev|sed -e 's/ //'`"  
 ########################################  
15    
16  ### System/Config Version  ### System/Config Version
17  VERSION="0.1"  VERSION="@@VERSION@@"
18  TITLE="alxinstall-ng - ${VERSION}"  TITLE="alxinstall-ng - ${VERSION}"
19    
20  #CONFIGS_TEMPLATE="/opt/alx-config/configs"  # locations
   
21  CDPATH="/mnt/cdrom"  CDPATH="/mnt/cdrom"
22  INSTALLPATH="/mnt/magellan"  INSTALL_ROOT="/mnt/magellan"
23    
24  ### WICHTIG: anzahl lines in der autosta_lx.tar.gz -1  # default system settings
25    # standard kernel opts
26    DEFAULT_KERNELOPTS="quiet video=1024x768"
27    
28    # grub options
29    DEFAULT_GRUBLEGACYOPTS=""
30    DEFAULT_GRUB2OPTS=""
31    DEFAULT_GRUB2GFXPAYLOAD="1024x768x16,1024x768"
32    
33    # default specialdevices
34    DEFAULT_FORMFACTOR="desktop"
35    
36    # target filesystem
37    DEFAULT_FORMAT_FILESYSTEM="ext4"
38    
39    # initialize global variables so they are exportable
40    INSTALL_METHOD=""
41    KERNELOPTS=""
42    GRUBLEGACYOPTS=""
43    GRUB2OPTS=""
44    GRUB2GFXPAYLOAD=""
45    FORMFACTOR=""
46    FORMAT_FILESYSTEM=""
47    FDISKPARTIONBELOW256MB=0
48    SPECIALDEVICE=""
49    FLASHDISK=0
50    ### linecount of system.tar.gz -1 !
51  CURRENTLINE=0  CURRENTLINE=0
52  #TOTALLINES=11072 # -> now in images.conf  #TOTALLINES=11072 # -> now in images.conf
53    
   
54  #################################################  #################################################
55  #  DIALOG BOXEN #  #  DIALOG BOXES #
56  #################################################  #################################################
57    
58  die() {  die()
59   #clear  {
  #echo -e "\nhuch, da ist ein script gestorben -> $?\n"  
  #read  
  #exit 0  
60   ERROR=$1   ERROR=$1
61   RETVAL=$?   RETVAL=$?
62   dialog_install_failure   dialog_install_failure
63     trap_exit
64   exit 1   exit 1
65  }  }
66    
67  dialog_warning() {  dialog_warning()
68    {
69   dialog \   dialog \
70   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
71   --colors \   --colors \
72   --defaultno \   --defaultno \
73   --yesno "\Z1 !!! Achtung !!! \Zn\n\n\   --yesno "\Z1 !!! Achtung !!! \Zn\n\n\
74   Diese Festplatte wird unwiederruflich geloescht werden.\n\n\   Diese Festplatte wird unwiederruflich geloescht werden.\n\n\
75   Soll ich wirklich fortfahren ?" 10 70   Soll ich wirklich fortfahren ?" 10 70
76   RES=$?   RES=$?
77   if [ "$RES" == "1" ]   if [[ ${RES} -eq 1 ]]
78   then   then
79   clear   clear
80   echo "Der Vorgang wurde abgebrochen."   echo "Der Vorgang wurde abgebrochen."
# Line 72  dialog_warning() { Line 82  dialog_warning() {
82   fi   fi
83  }  }
84    
85  dialog_setup_hdd_info(){  dialog_setup_hdd_info()
86   local SHDD="`echo $HDD|sed -e 's/\/dev\///'`"  {
87     case "${INSTALL_METHOD}" in
88     auto)
89     dialog_setup_hdd_info_auto
90     dialog_setup_hdd_create_partitions
91     ;;
92     normal) dialog_setup_hdd_info_normal ;;
93     single) dialog_setup_hdd_info_single ;;
94     flash) dialog_setup_hdd_info_flash ;;
95     esac
96    }
97    
98    dialog_setup_hdd_info_normal()
99    {
100     local SHDD="$(echo ${HDD} | sed 's/\/dev\///')"
101    
102   dialog \   dialog \
103   --colors \   --colors \
104   --title "[ Festplatten Partitionierung ]" \   --title "[ Festplatten Partitionierung ]" \
105   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
106   --ok-label "Weiter" \   --ok-label "Weiter" \
107   --msgbox "\nBitte legen Sie 3 Partitionen an.\n\n\   --msgbox "\nBitte legen Sie 3 Partitionen an.\n\n\
108   [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit ca. 50MB\n\   [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit ca. 50MB\n\
# Line 87  dialog_setup_hdd_info(){ Line 111  dialog_setup_hdd_info(){
111   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
112  }  }
113    
114  dialog_setup_hdd_menu() {  dialog_setup_hdd_info_single()
115    {
116     local SHDD="$(echo $HDD | sed 's/\/dev\///')"
117    
118     dialog \
119     --colors \
120     --title "[ Festplatten Partitionierung ]" \
121     --backtitle "${TITLE}" \
122     --ok-label "Weiter" \
123     --msgbox "\nBitte legen Sie 1 Partition an.\n\n\
124     [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit dem gesamten Speicher\n\
125     Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
126    }
127    
128    dialog_setup_hdd_info_flash()
129    {
130     local SHDD="$(echo ${HDD} | sed 's/\/dev\///')"
131    
132     dialog \
133     --colors \
134     --title "[ Festplatten Partitionierung ]" \
135     --backtitle "${TITLE}" \
136     --ok-label "Weiter" \
137     --msgbox "\nBitte legen Sie 2 Partitionen an.\n\n\
138     [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit ca. 50MB\n\
139     [ \Z3${SHDD}2\Zn ] Typ: \Z3Linux \Zn mit dem Rest (min. 256MB)\n\n\
140     Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
141    }
142    
143    dialog_setup_hdd_info_auto()
144    {
145     local SHDD="$(echo $HDD | sed 's/\/dev\///')"
146    
147     dialog \
148     --colors \
149     --title "[ Festplatten Partitionierung ]" \
150     --backtitle "${TITLE}" \
151     --ok-label "Weiter" \
152     --msgbox "\nAchtung!\n\
153     Alle Daten werden von der Disk [ \Z3${HDD}\Zn ] gelöscht!" 12 81
154    }
155    
156    dialog_setup_system_menu()
157    {
158     local i
159    
160   I=`dialog \   i=$(dialog \
161   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
162   --title "[ Festplatten Partitionierung ]" \   --title "[ Festplatten Partitionierung ]" \
163   --cancel-label "Abbrechen" \   --cancel-label "Abbrechen" \
164   --ok-label "Weiter" \   --ok-label "Weiter" \
165   --stdout \   --stdout \
166   --menu "\nWaehlen Sie zwischen Manuell und Automatisch" 14 70 5 \   --colors \
167   "1" "Manuell" \   --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \
168   "2" "Automatisch"`   "1" "Automatisches Setup (Empfohlen)" \
169     "" "" \
170     "" "\Z1Experten Modi:\Zn" \
171     "2" "Normale IDE-Disk (Manuell)" \
172     "3" "Normale IDE Disk (Single)" \
173     "4" "Flash SDHC/NAND oder USBStick (Manuell)")
174   RES=$?   RES=$?
175   if [ "$RES" == "1" ];then   [[ ${RES} -eq 1 ]] && return 1
176   return 1   if [[ ${RES} -eq 0 ]]
177   fi   then
178   if [ "$RES" == "0" ];then   case "${i}" in
179   case "$I" in   "1") run_install auto ;;
180           "1")   "2") run_install normal ;;
181   dialog_setup_hdd_found_manuell   "3") run_install single ;;
182   ;;   "3") run_install flash ;;
183   "2")   "") dialog_setup_system_menu;;
  dialog_warning  
  setup_hdd_partitions_silent  
      ;;  
184   esac   esac
185   fi   fi
186  }  }
187    
188  dialog_setup_hdd_found_manuell() {  dialog_hardware_detection()
189   if [ ! -z "$installdevs" ]  {
190     local i
191     local hwtmp
192    
193     if [ -x $(type -P mktemp) ]
194   then   then
195   installdevs=""   hwtmp="$(mktemp)"
196     else
197     hwtmp="/tmp/hwtmp.sh"
198   fi   fi
199    
200   echo "dialog \\"  > /tmp/hddtmp.sh   run_hardware_detection_disks
201   echo "--backtitle \"$TITLE\" \\" >> /tmp/hddtmp.sh  
202   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh   echo "dialog \\"  > ${hwtmp}
203   echo "--stdout \\" >> /tmp/hddtmp.sh   echo "--backtitle \"${TITLE}\" \\" >> ${hwtmp}
204   echo "--colors \\" >> /tmp/hddtmp.sh   echo "--ok-label \"Weiter\" \\" >> ${hwtmp}
205   echo "--msgbox \"Gefundene Hardware:\n\n \\" >> /tmp/hddtmp.sh   echo "--stdout \\" >> ${hwtmp}
206   echo " Festplatten:\n \\" >> /tmp/hddtmp.sh   echo "--colors \\" >> ${hwtmp}
207     echo "--msgbox \"Gefundene Hardware:\n\n \\" >> ${hwtmp}
208     echo " Festplatten:\n \\" >> ${hwtmp}
209    
210   if [ ! -z "$scsidisks" ]   if [[ ! -z ${ALL_DISKS} ]]
211   then   then
212   for I in $scsidisks   for i in ${ALL_DISKS}
213   do   do
214   if [ "$I" != "$cdromdev" ]   echo " \\Z3${i}\\Zn\n \\" >> ${hwtmp}
  then  
  echo " \\Z7SCSI: \\Z3$I\\Zn\n \\" >> /tmp/hddtmp.sh  
  installdevs="$installdevs $I"  
  fi  
215   done   done
216   fi   fi
217    
218   if [ ! -z "$idedisks" ]   if [[ ! -z ${ALL_CDROMS} ]]
219   then   then
220   for I in $idedisks   echo " \n \\" >> ${hwtmp}
221     echo " CDROM Laufwerke:\n \\" >> ${hwtmp}
222     for i in ${ALL_CDROMS}
223   do   do
224   if [ "$I" != "$cdromdev" ]   echo " \\Z3${i}\\Zn\n \\" >> ${hwtmp}
  then  
  echo " \\Z7IDE:  \\Z3$I\\Zn\n \\" >> /tmp/hddtmp.sh  
  installdevs="$installdevs $I"  
  fi  
225   done   done
226   fi   fi
227    
228   if [ ! -z "$cdromdev" ]   # other devices
229     run_hardware_detection
230     case "${SPECIALDEVICE}" in
231     zotac*) echo " \n \\Z2Zotac Device erkannt.\\Zn \\" >> ${hwtmp} ;;
232     rangee) echo " \n \\Z2Rangee Device erkannt.\\Zn \\" >> ${hwtmp} ;;
233     maxdata) echo " \n \\Z2Maxdata Device erkannt.\\Zn \\" >> ${hwtmp} ;;
234     i845) echo " \n \\Z2Intel i845 Device erkannt.\\Zn \\" >> ${hwtmp} ;;
235     *) echo " \n \\ZnStandard Device erkannt.\\Zn \\" >> ${hwtmp} ;;
236     esac
237     if [[ ${FORMFACTOR} = laptop ]]
238     then
239     echo " \n \\ZnFormfactor Laptop, Powersave Modus 'ondemand' wird aktiviert.\\Zn \\" >> ${hwtmp}
240     fi
241     if [[ ${FLASHDISK} = 1 ]]
242     then
243     echo " \n \\ZnFlash Speicher erkannt, F2FS wird als Dateisystem benutzt.\\Zn \\" >> ${hwtmp}
244     fi
245    
246     echo " \" 14 70" >> ${hwtmp}
247     chmod a+x ${hwtmp}
248     ${hwtmp}
249    
250     # remove tmp file
251     if [[ -f ${hwtmp} ]]
252   then   then
253   echo " \n \\" >> /tmp/hddtmp.sh   rm ${hwtmp}
  echo " \\Z7andere Laufwerke:\n \\" >> /tmp/hddtmp.sh  
  echo " CDROM: \\Z3$cdromdev\\Zn\n \\" >> /tmp/hddtmp.sh  
254   fi   fi
  echo " \" 13 70" >> /tmp/hddtmp.sh  
  chmod a+x /tmp/hddtmp.sh  
  /tmp/hddtmp.sh  
255  }  }
256    
257  dialog_setup_hdd_partitions_manuell() {  dialog_setup_hdd_partitions()
258   if [ -z "$installdevs" ]  {
259     local i
260    
261     if [[ -z ${ALL_DISKS} ]]
262   then   then
263   dialog \   dialog \
264   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
265   --ok-label "Beenden" \   --ok-label "Beenden" \
266   --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70   --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
267   exit 1   exit 1
268   else   else
269    
270   echo "dialog \\" > /tmp/hddtmp.sh   echo "dialog \\" > /tmp/hddtmp.sh
271   echo "--backtitle \"$TITLE\" \\" >> /tmp/hddtmp.sh   echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
272   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
273   echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh   echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
274   echo "--stdout \\" >> /tmp/hddtmp.sh   echo "--stdout \\" >> /tmp/hddtmp.sh
275   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
276    
277   for I in $installdevs   for i in ${ALL_DISKS}
278   do   do
279   echo "\"$I\" \"\" \\" >> /tmp/hddtmp.sh   echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
280   done   done
281   echo -e "\n" >> /tmp/hddtmp.sh   echo -e "\n" >> /tmp/hddtmp.sh
282    
283   chmod a+x /tmp/hddtmp.sh   chmod a+x /tmp/hddtmp.sh
284   HDD="`/tmp/hddtmp.sh`"   HDD="$(/tmp/hddtmp.sh)"
285   RES=$?   RES=$?
286   if [ "$RES" == "1" ]   [[ ${RES} -eq 1 ]] && return 1
287   then   if [[ ${RES} -eq 0 ]]
  return 1  
  fi  
  if [ "$RES" == "0" ]  
288   then   then
289   dialog_setup_hdd_info   dialog_setup_hdd_info
290   setup_hdd_partitions_manuell   setup_hdd_partitions
291   fi   fi
292   fi   fi
293  }  }
294    
295  dialog_setup_hdd_partitions_silent() {  dialog_setup_hdd_create_partitions()
296    {
297   dialog \   dialog \
298   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
299   --infobox "Erstelle Partitionen ..." 3 70   --infobox "Erstelle Disk Partitionen ..." 3 70
300  }  }
301    
302  dialog_setup_hdd_format() {  dialog_setup_hdd_format()
303    {
304   dialog \   dialog \
305   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
306   --infobox "Erstelle Datei-Systeme ..." 3 70   --infobox "Erstelle Datei-Systeme ..." 3 70
307  }  }
308    
309  dialog_install_settings() {  dialog_install_settings()
310    {
311   dialog \   dialog \
312   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
313   --infobox "Speichere System-Einstellungen ..." 3 70   --infobox "Speichere System-Einstellungen ..." 3 70
314  }  }
315    
316  dialog_install_system_image() {  dialog_install_system_image()
317    {
318   dialog \   dialog \
319   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
320   --gauge "Kopiere System-Image ..." 6 80   --gauge "Kopiere System-Image ..." 6 80
321  }  }
322    
323  dialog_install_meter() {  dialog_install_meter()
324   while [ "${CURRENTLINE}" != "${TOTALLINES}" ] ; do  {
325   CURRENTLINE=`grep --count . /tmp/install.log`   while [[ ${CURRENTLINE} != ${TOTALLINES} ]]
326   PERCENT=`expr ${CURRENTLINE} \* 100 / ${TOTALLINES}`   do
327     CURRENTLINE=$(grep -c . /tmp/install.log)
328     PERCENT=$(( ${CURRENTLINE} * 100 / ${TOTALLINES}))
329   echo ${PERCENT}   echo ${PERCENT}
330   sleep 1   sleep 1
331   done   done
# Line 237  dialog_install_meter() { Line 333  dialog_install_meter() {
333   return 0   return 0
334  }  }
335    
336    dialog_install_bootsector()
337  dialog_install_bootsector() {  {
338   dialog \   dialog \
339   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
340   --infobox "Schreibe den Bootsektor ..." 3 70   --infobox "Schreibe den Bootsektor ..." 3 70
341  }  }
342    
343  dialog_install_alxconfig() {  dialog_install_successful()
344   dialog \  {
  --backtitle "$TITLE" \  
  --infobox "Installiere die ALX Setup-Tools ..." 3 70  
 }  
   
 dialog_install_kernel_image() {  
345   dialog \   dialog \
346   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
  --infobox "Installiere den System-Kernel ..." 3 70  
   
 }  
   
 dialog_install_hotfixes() {  
  dialog \  
  --backtitle "$TITLE" \  
  --infobox "Installiere Hotfixes ..." 3 70  
   
 }  
   
 dialog_install_successful() {  
  dialog \  
  --backtitle "$TITLE" \  
347   --colors \   --colors \
348   --msgbox "Die Installation war \Z2erfolgreich\Zn." 5 81   --msgbox "Die Installation war \Z2erfolgreich\Zn." 5 81
349  }  }
350    
351  dialog_install_failure() {  dialog_install_failure()
352    {
353   dialog \   dialog \
354   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
355   --colors \   --colors \
356   --msgbox "Die Installation ist \Z1Fehlgeschlagen\Zn.\n\n\   --msgbox "Die Installation ist \Z1Fehlgeschlagen\Zn.\n\n\
357   Fehler bei $ERROR, RetVal: $RETVAL \   Fehler bei ${ERROR}, RetVal: ${RETVAL} \
358   " 10 81   " 10 81
359  }  }
360    
361  dialog_install_method() {  dialog_main()
362    {
  METHOD=`dialog \  
  --backtitle "$TITLE" \  
  --cancel-label "Abbrechen" \  
  --ok-label "Weiter" \  
  --stdout \  
  --menu "Konfiguration" 14 70 5 \  
  "1" "Normale Installation" \  
  "2" "Silent Installation"`  
  RES=$?  
  if [ "$RES" == "1" ];then  
  return 1  
  fi  
  if [ "$RES" == "0" ];then  
  case "$METHOD" in  
          "1")  
  run_install_normal  
  ;;  
  "2")  
  dialog_warning  
  run_install_silent  
      ;;  
  esac  
  fi  
 }  
   
 dialog_main() {  
363   METHOD=0   METHOD=0
364    
365   while [ $METHOD -le 2 ]   while [[ ${METHOD} -le 2 ]]
366   do   do
367   METHOD=`dialog \   METHOD=$(dialog \
368   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
369   --no-cancel \   --no-cancel \
370   --ok-label "Weiter" \   --ok-label "Weiter" \
371   --stdout \   --stdout \
# Line 321  dialog_main() { Line 373  dialog_main() {
373   "1" "AutoSta_LX installieren" \   "1" "AutoSta_LX installieren" \
374   "2" "Uebersicht gefundener Laufwerke" \   "2" "Uebersicht gefundener Laufwerke" \
375   "3" "Beenden und neustarten" \   "3" "Beenden und neustarten" \
376   "4" "Beenden und eine Shell starten" `   "4" "Beenden und eine Shell starten")
377   RES=$?   RES=$?
378   if [ "$RES" == "1" ];then   [[ ${RES} -eq 1 ]] && exit 1
379   exit 1   if [[ ${RES} -eq 0 ]]
380   fi   then
381   if [ "$RES" == "0" ];then   case ${METHOD} in
382   case "$METHOD" in   "1") dialog_setup_system_menu ;;
383           "1")   "2") dialog_hardware_detection ;;
384   #only for now later it will be used again   "3") install_do_reboot ;;
385   #with 6.1-r2 only one install method available   "4") /bin/bash --login -i ;;
  #dialog_install_method  
  run_install_normal  
  ;;  
  "2") dialog_setup_hdd_found_manuell  
  ;;  
  "3") install_do_reboot  
  ;;  
  "4") /bin/bash --login -i  
  ;;  
386   esac   esac
387   fi   fi
388   done   done
389  }  }
390    
391  #################################################  #################################################
392  # Install Komandos #  # Install Commands #
393  #################################################  #################################################
394  setup_hdd_partitions_manuell() {  run_hardware_detection()
395   BOOTHDD="${HDD}1"  {
396   SWAPHDD="${HDD}2"   local hwinfo
397   ROOTHDD="${HDD}3"   hwinfo="$(hwinfo --bios --storage --pci --gfxcard --sys)"
398    
399   ## hdds partitionieren manuell   # check for special devices/clients:
400   cfdisk $HDD || die   # if zotac a zotac and the disk is a removeable device, then add rootdelay to kernelcmd
401  }   local removable=0
402     if [[ ! -z $(echo "${hwinfo}" | grep -i zotac) ]]
403  setup_hdd_partitions_silent() {   then
404   ## hdds löschen   for i in /sys/block/[hs]d*/removable
405   dd if=/dev/zero of=$HDD bs=1024k count=1 || die   do
406   ## hdds partitionieren silent   if [[ $(< ${i}) = 1 ]]
407   fdisk $HDD < $CONFIGS_TEMPLATE/fdisksettings #1> /dev/null 3> /dev/null || die   then
408     removable=1
409   read   # we assume that all removable disks are flash disks
410  }   export FLASHDISK=1
411     fi
412     done
413    
414  setup_hdd_format() {   # only add this for grub legacy, grub2 detect these settings on its own
415   mkswap $SWAPHDD || die   export GRUBLEGACYOPTS="rootdelay=8"
416   mke2fs -j -q $BOOTHDD || die   # there are two zotac types in the wild, nvidia based gfx and intel
417   mke2fs -j -q $ROOTHDD || die   if [[ ! -z $(echo "${hwinfo}" | grep -i nouveau) ]]
418  }   then
419     export SPECIALDEVICE="zotac_nvidia"
420     else
421     export SPECIALDEVICE="zotac_intel"
422     fi
423     fi
424    
425  install_mount_rootfs() {   # check for special devices/clients:
426   swapon $SWAPHDD || die   # if a rangee and disk ist smaller then 256mb move partion one block further ahead
427   mount $ROOTHDD $INSTALLPATH || die   if [[ ! -z $(echo "${hwinfo}" | grep -i CLE266) ]]
428   install -d $INSTALLPATH/boot || die   then
429   mount $BOOTHDD $INSTALLPATH/boot || die   # for a rangee always define partion startblock +1
430   cd $INSTALLPATH || die   export FDISKPARTIONBELOW256MB="1"
431  }   export SPECIALDEVICE="rangee"
432     export GRUBLEGACYOPTS=""
433     fi
434    
435  install_system_image() {   # check for special devices/clients:
436   #tar xvzpf $CDPATH/system/autosta_lx.tar.gz   # check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer
437   tar xvjpf ${CDPATH}/system/${CDIMAGENAME} -C ${INSTALLPATH}   if [[ ! -z $(echo "${hwinfo}" | grep -i i810) ]] || [[ ! -z $(echo "${hwinfo}" | grep -i i815) ]]
438  }   then
439     export SPECIALDEVICE="maxdata"
440     export GRUBLEGACYOPTS=""
441     fi
442    
443     # check for i845 Chipsets and disable KMS and use 915 drm driver
444     if [[ ! -z $(echo "${hwinfo}" | grep -i i845) ]]
445     then
446     export SPECIALDEVICE="i845"
447     # unset default video=1024x768 opt or the drm driver breaks
448     export KERNELOPTS="quiet"
449     export GRUBLEGACYOPTS=""
450     # enable full kms support
451     export GRUB2GFXPAYLOAD="keep"
452     fi
453    
454  install_kernel_image() {   # check for radeon gfxcards
455   declare -i CPUTYPE=`cat /proc/cpuinfo |grep "cpu family"|cut -d ' ' -f3`   if [[ ! -z $(echo "${hwinfo}" | grep -i radeon) ]]
456     then
457     # enable full kms support
458     export GRUB2GFXPAYLOAD="keep"
459     fi
460    
461   if [ $CPUTYPE -le 5 ];then   # check for special devices/clients:
462                  #echo -e "\033[1;6m\033[36m""i386 Architektur gefunden.""\033[0m"   # check for laptops and activate cpufreq scaling
463                  #echo -e "Installiere i386 Kernel..."   if [[ $(echo "${hwinfo}" | grep 'Formfactor:' | sed 's:.*Formfactor\:\ \"\(.*\)\":\1:') = laptop ]]
464     then
465     export FORMFACTOR="laptop"
466     export KERNELOPTS="${KERNELOPTS} cpufreq.governor=ondemand"
467     fi
468    }
469    
470   lastdir="`pwd`"  run_hardware_detection_disks()
471    {
472     local bootdev
473    
474   mkdir -p $INSTALLPATH/INSTALL/kernel || die   # all disks but exclude ramdisks
475   cd $INSTALLPATH/INSTALL/kernel || die   export ALL_DISKS=$(get_hwinfo disk | sed '/\/dev\/ram[0-9].*/d')
476   tar xzpf $CDPATH/kernels/kernel-i386.tar.gz || die   # remove the boot device from ALL_DISKS if it was an usbstick
477   source $INSTALLPATH/INSTALL/kernel/kernelversion || die   if [[ $(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | cut -d' ' -f3) != iso9660 ]]
478     then
479     bootdev="$(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | cut -d' ' -f1 | sed 's:[0-9]::g')"
480     export ALL_DISKS=$(echo "${ALL_DISKS}" | grep -v "${bootdev}")
481     fi
482     export ALL_CDROMS="$(get_hwinfo cdrom)"
483    }
484    
485   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNLIB $INSTALLPATH/lib/modules || die  hdd_size_below_256mb()
486   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNIMG $INSTALLPATH/boot || die  {
487   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNINITRD $INSTALLPATH/boot || die   local hdd="$1"
488   cp -aRf $INSTALLPATH/INSTALL/kernel/kernelversion $INSTALLPATH/boot || die   local size
489     local retval
490     [[ -z ${hdd} ]] && die "Error: get_hdd_size() no \$hdd given!"
491    
492   cd $lastdir || die   size=$(fdisk -l ${hdd} | grep "Disk.*${hdd}" | sed 's:.*,\ \(.*\)\ byte.*:\1:')
493     if [[ ${size} -le 257000000 ]]
494     then
495     retval="0"
496     else
497     retval="1"
498     fi
499    
500          elif [ $CPUTYPE -ge 6 ];then   return "${retval}"
501                  #echo -e "\033[1;6m\033[36m""i686 Architektur gefunden.""\033[0m"  }
                 #echo -e "Installiere i686 Kernel..."  
502    
503   lastdir="`pwd`"  setup_hdd_partitions()
504    {
505     case "${INSTALL_METHOD}" in
506     normal)
507     BOOTHDD="${HDD}1"
508     SWAPHDD="${HDD}2"
509     ROOTHDD="${HDD}3"
510     ;;
511    
512     single|auto)
513     BOOTHDD=""
514     SWAPHDD=""
515     ROOTHDD="${HDD}1"
516     ;;
517    
518     flash)
519     BOOTHDD="${HDD}1"
520     SWAPHDD=""
521     ROOTHDD="${HDD}2"
522     ;;
523     esac
524    
525   mkdir -p $INSTALLPATH/INSTALL/kernel || die   if [[ ${INSTALL_METHOD} = auto ]]
526   cd $INSTALLPATH/INSTALL/kernel || die   then
527   tar xzpf $CDPATH/kernels/kernel-i686.tar.gz || die   # run this only if FDISKPARTITIONBELOW256MB is not already 1
528   source $INSTALLPATH/INSTALL/kernel/kernelversion || die   if [[ ${FDISKPARTIONBELOW256MB} != 1 ]]
529     then
530     if hdd_size_below_256mb ${HDD}
531     then
532     FDISKPARTIONBELOW256MB=1
533     else
534     FDISKPARTIONBELOW256MB=0
535     fi
536     fi
537    
538   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNLIB $INSTALLPATH/lib/modules || die   ## delete disk
539   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNIMG $INSTALLPATH/boot || die   dd if=/dev/zero of=${HDD} count=1 &> /dev/null || die
  cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNINITRD $INSTALLPATH/boot || die  
  cp -aRf $INSTALLPATH/INSTALL/kernel/kernelversion $INSTALLPATH/boot || die  
540    
541   cd $lastdir || die   if [[ ${FDISKPARTIONBELOW256MB} = 1 ]]
542          fi   then
543     ## setup one bootable partition
544     #1. n= new disk
545     #2. p= primary disk
546     #3. 1= first partition
547     #4. 2= default sector start // small disk needs more space for grub2 mbr sector
548     #5. ''= defaul sector end
549     #6. a= bootable flag
550     #7. 1= boot flag for partition 1
551     #8. w= write/quit
552     fdisk ${HDD} &> /dev/null << EOF
553    n
554    p
555    1
556    2
557    
558    a
559    1
560    w
561    EOF
562     else
563     ## setup one bootable partition
564     #1. n= new disk
565     #2. p= primary disk
566     #3. 1= first partition
567     #4. ''= default sector start
568     #5. ''= defaul sector end
569     #6. a= bootable flag
570     #7. 1= boot flag for partition 1
571     #8. w= write/quit
572     fdisk ${HDD} &> /dev/null << EOF
573    n
574    p
575    1
576    
577    
578    a
579    1
580    w
581    EOF
582     fi
583     else
584     ## hdds partitionieren manuell
585     cfdisk ${HDD} || die
586     fi
587  }  }
588    
589  install_bootsector() {  setup_hdd_format()
590   ### grubconf schreiben  {
591   source $INSTALLPATH/INSTALL/kernel/kernelversion   if [[ -n ${SWAPHDD} ]]
   
  if [ -z $KRNVER ]  
592   then   then
593   KRNVER="AutoSta_LX"   mkswap ${SWAPHDD} || die
594   fi   fi
595     if [[ -n ${BOOTHDD} ]]
  if [ -z $KRNIMG ]  
596   then   then
597   KRNIMG="bzImage"   # f2fs is not grub/grub2 compatible
598     if [[ ${FORMAT_FILESYSTEM} = f2fs ]]
599     then
600     mkfs.ext2 -q ${BOOTHDD} || die
601     else
602     mkfs.${FORMAT_FILESYSTEM} -q ${BOOTHDD} || die
603     fi
604   fi   fi
605     if [[ -n ${ROOTHDD} ]]
  if [ -z $KRNINITRD ]  
606   then   then
607   KRNINITRD="initrd"   mkfs.${FORMAT_FILESYSTEM} -q ${ROOTHDD} || die
608   fi   fi
   
  echo -e "default 0" > $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "timeout 03" >> $INSTALLPATH/boot/grub/grub.conf ||die  
  #no support for splash image in 6.1-r2  
  #echo -e "splashimage=(hd0,0)/boot/grub/splash.xpm.gz" >> $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "\ntitle=${KRNVER}" >> $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "root (hd0,0)" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #s3 cards don't support this  
  #echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD vga=0x317 video:vesa:ywrap,mtrr splash=silent quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
  #that's more safer:  
  echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #not needed without bootsplash support  
  #echo -e "initrd=/boot/${KRNINITRD}" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  ### bootsector schreiben  
  #grub --no-floppy < $CONFIGS_TEMPLATE/grubsettings || die  
  /sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null || die  
 root (hd0,0)  
 setup (hd0)  
 quit  
 EOF  
609  }  }
610    
611  install_bootsector_chroot() {  install_mount_rootfs()
612   ### grubconf schreiben  {
613   #source $INSTALLPATH/INSTALL/kernel/kernelversion   local opts
  source $INSTALLPATH/boot/kernelversion  
614    
615   #for alx only   if [[ -n ${SWAPHDD} ]]
  if [ -e ${INSTALLPATH}/etc/alx_version ]  
616   then   then
617   OLD_ALXVER="${ALXVER}"   swapon ${SWAPHDD} || die
  source ${INSTALLPATH}/etc/alx_version  
  KRNVER="ALX-${ALXVER}"  
  ALXVER="${OLD_ALXVER}"  
618   fi   fi
619     if [[ -n ${ROOTHDD} ]]
  if [ -z "$KRNVER" ]  
620   then   then
621   KRNVER="AutoSta_LX"   # be safe here, append file system type to mount
622     # just in case the f2fs module was not autoloaded
623     [[ ${FORMAT_FILESYSTEM} = f2fs ]] && opts="-t fs2fs"
624     mount ${opts} ${ROOTHDD} ${INSTALL_ROOT} || die
625   fi   fi
626     if [[ -n ${BOOTHDD} ]]
  if [ -z "$KRNIMG" ]  
627   then   then
628   KRNIMG="bzImage"   install -d ${INSTALL_ROOT}/boot || die
629     mount ${BOOTHDD} ${INSTALL_ROOT}/boot || die
630   fi   fi
631    
632   if [ -z "$KRNINITRD" ]   cd ${INSTALL_ROOT} || die
633   then  }
  KRNINITRD="initrd"  
  fi  
634    
635   echo -e "default 0" > $INSTALLPATH/boot/grub/grub.conf || die  install_system_image()
636   echo -e "timeout 0" >> $INSTALLPATH/boot/grub/grub.conf ||die  {
637     tar xvjpf ${CDPATH}/system/${CDIMAGENAME} -C ${INSTALL_ROOT}
638   #no support for splash image in 6.1-r2  }
  #echo -e "splashimage=(hd0,0)/boot/grub/splash.xpm.gz" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  echo -e "\ntitle=${KRNVER}" >> $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "root (hd0,0)" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #s3 cards don't support this  
  #echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD vga=0x317 video:vesa:ywrap,mtrr splash=silent quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
  #that's more safer:  
  echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #not needed without bootsplash support  
  #echo -e "initrd=/boot/${KRNINITRD}" >> $INSTALLPATH/boot/grub/grub.conf || die  
639    
640    install_bootsector_chroot()
641    {
642     local my_roothdd
643     local grubconf=${INSTALL_ROOT}/boot/grub/grub.conf
644     local grub2conf=/boot/grub/grub.cfg
645     local CONFIG
646    
647   ### bootsector schreiben chrooted schreiben (gentoo)   # check for grub2
648   if [ -f $INSTALLPATH/sbin/grub ]   if [[ -f ${INSTALL_ROOT}/sbin/grub-mkconfig ]]
649   then   then
650   cat > $INSTALLPATH/root/.bashrc << CHROOTEOF   # needed by grub-mkconfig on the first run
651  /sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null   if [[ ! -f ${INSTALL_ROOT}/boot/grub/video.lst ]]
652  root (hd0,0)   then
653  setup (hd0)   install -m0644 ${INSTALL_ROOT}/lib/grub/*/video.lst ${INSTALL_ROOT}/boot/grub/video.lst || die
654  quit   fi
655  EOF  
656  exit 0   # set kernelopts
657  CHROOTEOF   if [[ -f ${INSTALL_ROOT}/etc/conf.d/grub ]]
658   fi   then
659     sed -i "s:^\(export GRUB_CMDLINE_LINUX_DEFAULT=\).*:\1\"${KERNELOPTS}\":" ${INSTALL_ROOT}/etc/conf.d/grub || die
660     sed -i "s:^\(export GRUB_GFXPAYLOAD_LINUX=\).*:\1\"${GRUB2GFXPAYLOAD}\":" ${INSTALL_ROOT}/etc/conf.d/grub || die
661     else
662     CONFIG=${INSTALL_ROOT}/etc/conf.d/grub
663     clearconfig
664     addconfig "export GRUB_CMDLINE_LINUX_DEFAULT=\"${KERNELOPTS}\""
665     addconfig "export GRUB_GFXPAYLOAD_LINUX=\"${GRUB2GFXPAYLOAD}\""
666     fi
667     CONFIG=${INSTALL_ROOT}/.installrc
668     clearconfig
669     addconfig 'grub-mkdevicemap'
670     addconfig "LC_ALL=C grub-mkconfig -o ${grub2conf}  &> /dev/null"
671     addconfig "grub-install --no-floppy ${HDD} &> /dev/null"
672     addconfig "exit 0"
673    
674     # grub-legacy
675     else
676     ### grubconf schreiben
677     source ${INSTALL_ROOT}/boot/kernelversion
678    
679     #for alx only
680     if [ -e ${INSTALL_ROOT}/etc/alx_version ]
681     then
682     OLD_ALXVER="${ALXVER}"
683     source ${INSTALL_ROOT}/etc/alx_version
684     KRNVER="ALX-${ALXVER}"
685     ALXVER="${OLD_ALXVER}"
686     fi
687    
688     [[ -z ${KRNVER} ]] && KRNVER="AutoSta_LX"
689     [[ -z ${KRNINITRD} ]] && KRNINITRD="initrd"
690     [[ -z ${KRNIMG} ]] && KRNIMG="vmlinuz"
691    
692   ### bootsector schreiben chrooted schreiben (lfs/magellan)   # uuid support
693   if [ -f $INSTALLPATH/usr/sbin/grub ]   if is_uuid_supported
694     then
695     my_roothdd="UUID=$(get_uuid ${ROOTHDD})"
696     else
697     my_roothdd="${ROOTHDD}"
698     fi
699    
700     CONFIG="${grubconf}"
701     clearconfig
702     addconfig "default 0"
703     addconfig "timeout 3"
704     # using current root password
705     addconfig "password --md5 $(cat ${INSTALL_ROOT}/etc/shadow | grep root | cut -d: -f2)"
706     addconfig
707     addconfig "# normal boot"
708     addconfig "title ${KRNVER}"
709     addconfig "root (hd0,0)"
710     addconfig "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS}"
711     if is_initrd_supported
712     then
713     addconfig "initrd /boot/${KRNINITRD}"
714     fi
715     addconfig
716     addconfig "# admin boot"
717     addconfig "title ${KRNVER} - Re-run hardware-detection"
718     addconfig "lock"
719     addconfig "root (hd0,0)"
720     addconfig "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS} hardware-auto-detection"
721     if is_initrd_supported
722     then
723     addconfig "initrd /boot/${KRNINITRD}"
724     fi
725     addconfig
726     addconfig "title ${KRNVER} - Reset *all* local settings"
727     addconfig "lock"
728     addconfig "root (hd0,0)"
729     addconfig "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS} alx-reset-settings"
730     if is_initrd_supported
731     then
732     addconfig "initrd /boot/${KRNINITRD}"
733     fi
734    
735     # write bootsector chrooted (lfs/magellan)
736     CONFIG=${INSTALL_ROOT}/.installrc
737     clearconfig
738     addconfig '/usr/sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null'
739     addconfig 'root (hd0,0)'
740     addconfig 'setup (hd0)'
741     addconfig 'quit'
742     addconfig 'EOF'
743     addconfig 'exit 0'
744     fi
745    
746     ## enter chroot
747     enter_chroot_installrc
748    }
749    
750    is_initrd_supported()
751    {
752     # only generate initrds if the cmd exists
753     [[ -x ${INSTALL_ROOT}/sbin/mkinitrd ]] && return 0
754     return 1
755    }
756    
757    install_initrd_chroot()
758    {
759     local CONFIG
760    
761     # only generate initrds if the cmd exists
762     is_initrd_supported || return 0
763    
764     FSMODS="${FORMAT_FILESYSTEM}"
765     DISKMODS="sd_mod"
766     OLDPATAMODS="amd74xx piix sis5513 via82cxxx"
767     PATAMODS="ata_piix pata_amd pata_mpiix pata_oldpiix pata_sis pata_via"
768     SATAMODS="sata_via sata_sis sata_nv"
769     DRMMODS="i915 mga nouveau r128 radeon savage sis tdfx ttm via"
770     OTHERMODS=""
771     case ${SPECIALDEVICE} in
772     zotac_intel|i845) FBMODS=""; DRMMODS="i915" ;;
773     zotac_nvidia) FBMODS=""; DRMMODS="nouveau" ;;
774     rangee) FBMODS="" ;; ## fallback to vesafb, viafb does not run on all CLE266 boards
775     # not working with kms enabled drivers -> segfaults
776     #maxdata) FBMODS="i810fb" ;; ## check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer
777     maxdata) FBMODS="" ;;
778     *) FBMODS="uvesafb" ;;
779     esac
780    
781     # add a filesystems recoqnized by the bootloader if the current ${FORMAT_FILESYSTEM} is not supported
782     case "${FORMAT_FILESYSTEM}" in
783     f2fs) FSMODS+=" ext2" ;;
784     esac
785    
786     if [[ ${FORMFACTOR} = laptop ]]
787     then
788     OTHERMODS="acpi-cpufreq cpufreq_ondemand cpufreq_conservative cpufreq_powersave"
789     fi
790    
791     # install an appropriate uvesafb.conf
792     CONFIG=${INSTALL_ROOT}/etc/modprobe.d/uvesafb.conf
793     clearconfig
794     addconfig "options uvesafb mode_option=1024x768-32@60 scroll=ywrap"
795    
796     # install an appropriate viafb.conf
797     CONFIG=${INSTALL_ROOT}/etc/modprobe.d/viafb.conf
798     clearconfig
799     addconfig "options viafb viafb_mode=1024x768 viafb_refresh=60"
800    
801     # install an appropriate i810fb.conf
802     CONFIG=${INSTALL_ROOT}/etc/modprobe.d/i810fb.conf
803     clearconfig
804     addconfig "options i810fb xres=1024 yres=768 bpp=16 mtrr=1 hsync1=30 hsync2=62 vsync1=30 vsync2=60"
805    
806     CONFIG=${INSTALL_ROOT}/.installrc
807     clearconfig
808     addconfig 'echo "MODULES=\"${FSMODS} ${DISKMODS} ${OLDATAMODS} ${PATAMODS} ${SATAMODS} ${DRMMODS} ${FBMODS} ${OTHERMODS}\"" > /etc/conf.d/mkinitrd'
809     addconfig 'mkinitrd -f /boot/$(readlink /boot/initrd) $(readlink /boot/vmlinuz | sed "s:kernel-::g") > /dev/null'
810     addconfig 'exit 0'
811     ## enter chroot
812     enter_chroot_installrc
813    }
814    
815    is_uuid_supported()
816    {
817     # f2fs needs special treatments as the old busybox does not support this fs
818     # use the blkid from util-linux instead of busybox
819     if [[ ${FORMAT_FILESYSTEM} = f2fs ]]
820   then   then
821   cat > $INSTALLPATH/root/.bashrc << CHROOTEOF   if [[ -x $(type -P blkid) ]]
822  /usr/sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null   then
823  root (hd0,0)   return 0
824  setup (hd0)   fi
825  quit   else
826  EOF   if [[ -x $(type -P busybox.mkinitrd) ]]
827  exit 0   then
828  CHROOTEOF   # only detect uuids if supported
829     if [[ ! -z $(busybox.mkinitrd | grep blkid) ]]
830     then
831     return 0
832     fi
833     fi
834   fi   fi
835    
836   ##enters chroot   return 1
  mount -t proc none $INSTALLPATH/proc  
  # bind /dev to get the devices right,  
  # if bootet from a 2.6 kernel with udev  
  mount -o bind /dev $INSTALLPATH/dev  
  chroot $INSTALLPATH /bin/bash --rcfile /root/.bashrc -i  
  umount $INSTALLPATH/proc  
  umount $INSTALLPATH/dev  
  rm $INSTALLPATH/root/.bashrc  
837  }  }
838    
839  install_alxconfig(){  get_uuid()
840   lastdir="`pwd`"  {
841     local UUID
842     local SEC_TYPE
843     local TYPE
844     local blkidcmd
845    
846   mkdir -p $INSTALLPATH/opt/alx-config || die   local dev="$1"
847   cd $INSTALLPATH/opt/alx-config || die   [[ -z ${dev} ]] && die "no dev given"
  tar xzpf $CDPATH/alx-config/alx-config.tar.gz || die  
  chmod a+x $INSTALLPATH/opt/alx-config/Configurator/config_functions.sh || die  
  chmod a+x $INSTALLPATH/opt/alx-config/Configurator/config_menu.sh || die  
  ln -sf /opt/alx-config/Configurator/config_menu.sh $INSTALLPATH/bin/ALXConfig || die  
848    
849   cd $lastdir || die   # check if given device is already an UUID
850     if [[ ${dev/UUID=/}x != ${dev}x ]]
851     then
852     eval "${dev}"
853     else
854     # f2fs needs special treatments as the old busybox does not support this fs
855     # use the blkid from util-linux instead of busybox
856     if [[ ${FORMAT_FILESYSTEM} = f2fs ]]
857     then
858     blkidcmd="blkid"
859     else
860     blkidcmd="busybox.mkinitrd blkid"
861     fi
862     eval $(${blkidcmd} ${dev} | grep "${dev}:" | sed 's/.*:\ //')
863     fi
864     echo "${UUID}"
865  }  }
866    
867    install_system_settings()
868    {
869     local CONFIG
870     local fstype
871    
872  install_system_settings(){   # write fstab
873   ### schreibe fstab   CONFIG=${INSTALL_ROOT}/etc/fstab
874   echo -e "$BOOTHDD\t/boot\text3\tnoatime,noauto\t1 1" > $INSTALLPATH/etc/fstab || die   clearconfig
  echo -e "$ROOTHDD\t/\text3\tnoatime\t0 0" >> $INSTALLPATH/etc/fstab || die  
  echo -e "$SWAPHDD\tswap\tswap\tpri=1\t0 0" >> $INSTALLPATH/etc/fstab || die  
  echo -e "none\t/proc\tproc\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die  
   
  #deprecated  
  #echo -e "devpts\t/dev/pts\tdevpts\tgid=4,mode=620\t0 0" >> $INSTALLPATH/etc/fstab || die  
875    
876   echo -e "none\t/dev/shm\ttmpfs\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die   if [[ -n ${BOOTHDD} ]]
877   echo -e "none\t/proc/bus/usb\tusbfs\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die   then
878  }   if [[ ${FORMAT_FILESYSTEM} = f2fs ]]
879     then
880     # grub/grub2 does not support boot from f2fs, use ext2 instead
881     fstype="ext2"
882     else
883     fstype="${FORMAT_FILESYSTEM}"
884     fi
885     if is_uuid_supported
886     then
887     addconfig -e "UUID=$(get_uuid ${BOOTHDD})\t/boot\t${fstype}\tnoatime,noauto\t1 1"
888     else
889     addconfig -e "${BOOTHDD}\t/boot\t${fstype}\tnoatime,noauto\t1 1"
890     fi
891     fi
892    
893  install_hotfixes(){   if [[ -n ${ROOTHDD} ]]
  if [ -f $CDPATH/hotfixes/hotfixes.sh ]  
894   then   then
895   dialog_hotfixes   if is_uuid_supported
896   sleep1   then
897   $CDPATH/hotfixes/hotfixes.sh   addconfig -e "UUID=$(get_uuid ${ROOTHDD})\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0"
898     else
899     addconfig -e "${ROOTHDD}\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0"
900     fi
901     fi
902    
903     # not needed busybox loads all with swapon -a, even if not mentioned in fstab
904     #addconfig -e "UUID='$(get_uuid ${SWAPHDD})'\tswap\tswap\tpri=1\t0 0"
905     addconfig -e "proc\t/proc\tproc\tdefaults\t0 0"
906     addconfig -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0"
907    
908     # install network config skeleton
909     install -m0644 ${INSTALL_ROOT}/etc/alxconfig-ng/skel/net/net.eth0 ${INSTALL_ROOT}/etc/conf.d/ || die
910    
911     # intel framebufer quirk
912     if [[ -e /proc/fb ]]
913     then
914     if [[ ! -z $(grep 'inteldrmfb' /proc/fb) ]]
915     then
916     fbdev=$(grep 'inteldrmfb' /proc/fb | sed 's:\([0-9]\).*:\1:')
917     if [[ ${fbdev} != 0 ]]
918     then
919     sed -i "s:^\(SPLASH_DEV=\).*:\1\"/dev/fb${fbdev}\":" ${INSTALL_ROOT}/etc/splash/splash.conf || die
920     fi
921     fi
922   fi   fi
923  }  }
924    
925  install_umount_rootfs() {  install_umount_rootfs()
926    {
927   cd /   cd /
928   umount $INSTALLPATH/boot || die   if [[ -n ${BOOTHDD} ]]
929   umount $INSTALLPATH || die   then
930   swapoff $SWAPHDD || die   umount ${INSTALL_ROOT}/boot || die
931     fi
932     if [[ -n ${ROOTHDD} ]]
933     then
934     umount ${INSTALL_ROOT} || die
935     fi
936     if [[ -n ${SWAPHDD} ]]
937     then
938     swapoff ${SWAPHDD} || die
939     fi
940  }  }
941    
942  install_do_reboot() {  install_do_reboot()
943    {
  #only for now later it will be used again  
  #with 6.1-r2 these options are not available  
  #cd /  
  #umount $CDPATH  
  #eject  
  #clear  
   
944   reboot   reboot
945  }  }
946    
947  #################################################  #################################################
948  #     Install Ablauf Scripte #  #     Install Main Scripts #
949  #################################################  #################################################
950    
951  run_install_normal() {  run_install()
952   #only for now later it will be used again  {
953   #with 6.1-r2 only one install method available   local method="$1"
954   #dialog_setup_hdd_menu  
955   dialog_setup_hdd_found_manuell   # setup install environment
956     export KERNELOPTS="${DEFAULT_KERNELOPTS}"
957   dialog_setup_hdd_partitions_manuell   export GRUBLEGACYOPTS="${GRUBLEGACYOPTS}"
958     export GRUB2OPTS="${GRUB2OPTS}"
959     export GRUB2GFXPAYLOAD="${DEFAULT_GRUB2GFXPAYLOAD}"
960     export FORMFACTOR="${DEFAULT_FORMFACTOR}"
961     export FORMAT_FILESYSTEM="${DEFAULT_FORMAT_FILESYSTEM}"
962    
963     case "${method}" in
964     auto)
965     export INSTALL_METHOD="${method}"
966     ;;
967     normal)
968     export INSTALL_METHOD="${method}"
969     ;;
970     single)
971     export INSTALL_METHOD="${method}"
972     ;;
973     flash)
974     export FORMAT_FILESYSTEM="f2fs"
975     export INSTALL_METHOD="${method}"
976     ;;
977     *)
978     echo "Unknown install method '${method}', aborting."
979     exit 1
980     ;;
981     esac
982    
983     dialog_hardware_detection
984    
985     dialog_setup_hdd_partitions
986   dialog_setup_hdd_format   dialog_setup_hdd_format
987   setup_hdd_format > /dev/null   setup_hdd_format > /dev/null
988   install_mount_rootfs   install_mount_rootfs
989   (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image   (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image
990    
  #only for now later it will be used again  
  #with 6.1-r2 variable kernels are not available  
  #dialog_install_kernel_image  
  #install_kernel_image  
   
  dialog_install_bootsector  
  install_bootsector_chroot  
   
  #only for now later it will be used again  
  #with 6.1-r2 highest version of alx-config is already included  
  #dialog_install_alxconfig  
  #sleep 1  
  #install_alxconfig  
   
991   dialog_install_settings   dialog_install_settings
992   sleep 1   sleep 1
993   install_system_settings   install_system_settings
994   install_hotfixes   install_initrd_chroot
995    
996     dialog_install_bootsector
997     install_bootsector_chroot
998    
999   install_umount_rootfs   install_umount_rootfs
1000   dialog_install_successful   dialog_install_successful
1001  }  }
1002    
1003  run_install_silent() {  # set some proper traps
1004   echo "starting silent install ..."  trap "trap_exit" SIGINT SIGQUIT
  sleep 1  
 }  
   
 run_install_unattended() {  
  echo "starting unattended install ..."  
  sleep 1  
 }  
1005    
1006  if [ "$1" == "unattended" ]  dialog_main
 then  
  run_install_unattended  
 else  
  dialog_main  
 fi  
1007    
1008  exit 0  exit 0

Legend:
Removed from v.268  
changed lines
  Added in v.6840