#!/bin/bash # Monsum Installation Script - für Unattendet Installation # (c) 2001 by RainMaer MultiMedia OHG Bamberg # #$Author$ #$Date$ #$Revision$ # #$Log$ #Revision 1.3 2003/02/18 15:29:21 kueller #Kommando Argument Auswertung auf getopts umgestellt # #Revision 1.2 2002/05/15 15:16:45 hkueller #Installationsfunktion installpkg entfernt - wird nun durch neues installpkg #script ersetzt # #Revision 1.1.1.1 2001/09/23 17:50:40 kueller #Neustart wg. Datenverlust # #Revision 1.2 2001/09/14 13:01:17 kueller #Umsetzung der Unattendet Installation auf Monsum 3 CD System (ab 920) #Aktuell: Installation der Basis Tools sollte Funktionieren, #Installation der Packete auf Tools oder X11 CD noch nicht berücksichtigt # #Revision 1.1.1.1 2001/08/06 22:09:47 kueller #Aufnahme in CVS Überwachung # # CURRDIR=`pwd` cd .. SOURCE=`pwd` KERNEL=`uname -r` STAGE2=0 USAGE="$0 [-d installdir] [-c cfgdir] [-m cfgdevice] [-f]" source $SOURCE/install/.function while getopts :d:c:m:fh opt_char; do case $opt_char in d) INSTALLDIR=$OPTARG ;; c) CFG=$OPTARG ;; m) MEDIASRC=$OPTARG ;; f) STAGE2=1 ;; h) echo $USAGE echo "where:" echo "-d - Root der neuen Installation angeben" echo "-c - Wenn Konfiguraion ueber Filesystem erreichbar ist - Pfad angeben" echo "-m - Pfad zu Medium auf welchem die Konfiguration gespeichert wurde" echo "-f - Installation Schritt 2 starten (erfolgt normalerweise automatisch" echo " nach 1. reboot" exit ;; \?) echo "$OPTARG ist keine erlaubte Option" echo echo $USAGE exit ;; esac done if [ -d $CFG ]; then CFGFILE=`basename $CFG`.cfg XPATH=`dirname $CFG` NAME=`basename $CFG` CFGDIR=$CFG touch /tmp/NOQUEST else if [ -d /tmp/`basename $CFG` ]; then CFGFILE=`basename $CFG`.cfg XPATH=/tmp NAME=`basename $CFG` CFGDIR=/tmp/$NAME touch /tmp/NOQUEST else echo "Config $CFG konnte nicht gefunden werden" exit 10 fi fi echo "CFGDIR=$CFGDIR" echo "CFGFILE=$CFGFILE" echo "XPATH=$XPATH" echo "NAME=$NAME" echo "CFGDIR=$CFGDIR" if [ -d $CFGDIR ]; then for i in $CFGDIR/*.sfdiskout; do DISK=/dev/discs/`basename $i|sed -e "s/.sfdiskout//"`/disc sfdisk $DISK <$i done make_FileSystem $CFGDIR $1 fi echo -n "Erstelle Directory Struktur" $DEBUG install/.basedirs $1 print_status success cd $INSTALLDIR if [ ! -d $INSTALLDIR/var/install ]; then echo -n "Erstelle install Info Verzeichniss" mkdir -p $INSTALLDIR/var/install chwon root:root $INSTALLDIR/var/install chmod 750 $INSTALLDIR/var/install print_status success fi for i in `cat $CFGDIR/$CFGFILE`; do if [ `dirname $i` == "Base" ] && [ STAGE2=0 ]; then installpkg -m $INSTALLDIR -i $SOURCE/$i fi done if [ -d $CFGDIR ]; then for i in $SOURCE/install/cfg_modules/*; do if [ -f $INSTALLDIR/var/install/`basename $i`* ]; then PKG=`basename $i` PKG=`basename /var/install/$PKG*` if [ ! -f /var/install/$PKG.cfg]; then export XPATH NAME echo -n "Konfiguriere $PKG" $i r $INSTALLDIR print_status success touch /var/install/$PKG.cfg fi fi done echo -n "Zuruecksichern von fstab, lilo.conf und loadmods" $DEBUG cp $XPATH/$NAME/fstab $INSTALLDIR/etc $DEBUG cp $XPATH/$NAME/lilo.conf $INSTALLDIR/etc $DEBUG cp $XPATH/$NAME/loadmods $INSTALLDIR/etc/sysconfig print_status success fi if [ -d $CFGDIR ]; then if [ -d $CFGDIR/kernel ]; then $DEBUG cp -rp $CFGDIR/kernel/modules/* $INSTALLDIR/lib/modules for i in $CFGDIR/kernel/*; do if [ -f $i ]; then $DEBUG cp $i $INSTALLDIR/boot fi done fi #$DEBUG sed -e "s/\/boot/\/`basename $INSTALLDIR`\/boot/" \ #$INSTALLDIR/etc/lilo.conf >/tmp/lilo.conf if [ ! -f /boot/vmlinuz ]; then $DEBUG ln -s $INSTALLDIR/boot /boot fi if [ ! -f /boot/vmlinuz.old ]; then $DEBUG cp /boot/vmlinuz $INSTALLDIR/boot/vmlinuz.old fi $DEBUG $INSTALLDIR/sbin/lilo -r $INSTALLDIR -C /tmp/lilo.conf else install_kernel $INSTALLDIR make_boot $INSTALLDIR fi