home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # Authors: Niels Mache, Ngo Than
- # Last change: 26/06/97
- #
-
- PATH=/sbin:/bin:/usr/bin:/usr/adm/setup
- RootPath="/dest"
- InstallRoot="/mnt"
- IPath=$RootPath
- ipath=$IPath
- sema=""
- clear="H"
-
- export DLDVersion="5.2"
- DIALOGTITLE=" DLD $DLDVersion (C) 1993-1997 by delix GmbH, Schloâ–€str. 98, 70176 Stuttgart, Germany"
-
- mydialog() {
- dialog --backtitle "$DIALOGTITLE" "$@"
- }
-
- ScreenSave() {
- case "$1" in
- on) echo -ne "\033[9;5]" ;;
- off) echo -ne "\033[9;0]" ;;
- esac
- }
-
- setRootDev() {
- rdev=`grep "$1 " < /etc/devtable`
- for i in $rdev; do
- rootdev=$i
- done
- echo $rootdev >/proc/sys/kernel/real-root-dev 2>/dev/null
- }
-
- UmountAll() {
- fdisk -l >/tmp/.fdisk.out 2>/dev/null
-
- for f in `grep swap /tmp/.fdisk.out | cut -c1-10` ; do
- swapoff $f >/dev/null 2>&1
- done
-
- if [ -f $ipath/dev/swapfile ] ; then
- swapoff $ipath/dev/swapfile >/dev/null 2>&1
- fi
-
- for f in `mount | grep dev | cut -c1-10` ; do
- if [ "$sema" = "y" ]; then
- umount $f >/dev/null 2>&1
- fi
- sema="y"
- done
- }
-
- kdaemon() {
- UmountAll
- /sbin/rc.pcmcia stop >/dev/null 2>&1
-
- for i in `cat /proc/net/dev 2>/dev/null | grep ":" | cut -c1-6` ; do
- ifconfig $i down >/dev/null 2>&1
- done
-
- for i in update bash inetd portmap syslogd klogd ; do
- kill -9 `pidof $i` >/dev/null 2>&1
- done
- }
-
- choosePart() {
- local Anz
- local Flag
- local Dev
- local Groesse
-
- cat /tmp/tmpmsg | tr -d "*" >/tmp/tmpmsg.new
- mv -f /tmp/tmpmsg.new /tmp/tmpmsg
- for i in `wc /tmp/tmpmsg`; do
- Anz=$i+1
- break
- done
-
- let Anz1=$Anz+8
- cat << EOF >/tmp/exec
- #!/bin/sh
- dialog --backtitle "$DIALOGTITLE" --title "$1" --menu "$2" $Anz1 60 $Anz \\
- EOF
-
- Flag="0"
- for i in `cat /tmp/tmpmsg`; do
- if [ "`echo $i | grep /dev/`" ] ; then
- Dev=$i
- Flag="1"
- fi
-
- if [ "$Flag" -gt "0" -a "$Flag" -lt "6" ] ; then
- let Flag=$Flag+1
- fi
-
- if [ "$Flag" = "6" ]; then
- Groesse=${i%+}
- Flag="0"
-
- cat << EOF >> /tmp/exec
- "$Dev" "$Groesse KByte" \\
- EOF
- fi
- done
-
- cat << EOF >> /tmp/exec
- "e" "Partitionsbezeichner eingeben" \\
- EOF
-
- cat << EOF >> /tmp/exec
- 2> /tmp/ret
- EOF
-
- chmod 755 /tmp/exec
- /tmp/exec
- if [ $? != 0 ]; then
- rm /tmp/exec
- rm /tmp/tmpmsg
- rm /tmp/ret
- LINUX_PART=
- fi
-
- rm -f /tmp/exec
- rm -f /tmp/tmpmsg
-
- if [ -s /tmp/ret ]; then
- LINUX_PART="`cat /tmp/ret`"
- rm -f /tmp/ret
- else
- LINUX_PART=
- fi
-
- if [ "$LINUX_PART" = "e" ]; then
- mydialog --title "Partitionsbezeichner" --inputbox \
- "Geben Sie den Partitionsbezeichner ein:" 9 50 2> /tmp/ret
- if [ $? != 0 ]; then
- LINUX_PART=
- else
- LINUX_PART=`cat /tmp/ret`
- fi
- rm -f /tmp/ret
- fi
- }
-
- shell() {
- echo $clear
- echo 'Zum Laden der Kernelmodule "hwsetup" verwenden.'
- echo 'Beenden der Shell und reboot mit "exit".'
- sh -login
-
- mydialog --title "DLD Bootdisk" --yesno \
- "\nWollen Sie Linux von Festplatte starten?\n" 7 46
-
- if [ $? = "0" ]; then
- fdisk -l > /tmp/fdisk.out 2>/dev/null
- cat /tmp/fdisk.out | grep "Linux native" > /tmp/tmpmsg
-
- if [ "`cat /tmp/tmpmsg`" = "" ] ; then
- mydialog --title "Fehler" --msgbox \
- "\nEs wurde keine Linux Parttition (EXT2-Format) gefunden.\n\
- Der Rechner wird jetzt rebootet.\n" 8 60
- kdaemon
- echo $clear
- reboot
- else
- choosePart "Linux booten" "Von welcher Festplatte/Partition soll gebootet werden?"
- fi
-
- if [ -n "$LINUX_PART" ] ; then
- setRootDev $LINUX_PART
- kdaemon
- echo $clear
- umount -a 2>/dev/null
- exit
- fi
-
- fi
-
- kdaemon
- echo $clear
- reboot
- exit
- }
-
-
- mount -a >/dev/null 2>&1
- update
- doprog /dev/tty2 bash -login
- hostname dld
- syslogd -n &
- klogd -c 1
-
- (gzip -cd | loadkeys) </etc/gr.map.gz
- [ "$?" = "0" ] && rm -f /sbin/loadkeys /etc/gr.map.gz
-
- ScreenSave off
-
- /usr/adm/setup/doinst1
-
- if [ -f /tmp/ROOTDEV ]; then
- rootdev=`/bin/cat /tmp/ROOTDEV`
- setRootDev $rootdev
- kdaemon
- umount -a >/dev/null 2>&1
- echo $clear
- echo "Boote von Festplatte/Partition $rootdev."
- exit
- else
- mydialog --title "Installation abgebrochen" --yesno \
- "\nWollen Sie das System neu booten ?\n" 7 40
- if [ "$?" = "0" ] ; then
- kdaemon
- reboot
- exit
- else
- mydialog --infobox "\nDas System wird nicht gebootet. Starte shell...\n" 5 52
- sleep 2
- fi
-
- shell
- fi
-