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

Legend:
Removed from v.519  
changed lines
  Added in v.6821