170 lines
3.9 KiB
Plaintext
170 lines
3.9 KiB
Plaintext
|
#!/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<65>cksichtigt
|
|||
|
#
|
|||
|
#Revision 1.1.1.1 2001/08/06 22:09:47 kueller
|
|||
|
#Aufnahme in CVS <20>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
|