Viitor_config/tmp/postinstall
kueller bacdac3ed3 Merge mit V962 Tree
git-svn-id: svn://svn.compuextreme.de/Viitor/V963/Viitor_config@5984 504e572c-2e33-0410-9681-be2bf7408885
2011-02-18 10:37:51 +00:00

310 lines
10 KiB
Bash

#!/bin/bash
#Installations Routine für config-*.tbz
#(c) Rainmaker MultiMedia OHG
#
#$Author$
#$Date$
#$Revision$
#
#$Log$
#Revision 1.23 2007/06/08 11:44:56 kueller
#yp.conf wird nun auch bei DNS+NIS angelegt
#
#Revision 1.22 2007/06/07 08:53:59 kueller
#Config Erweiterung, so dass bei nisserver hinter einem Gateway eine yp.conf angelegt wird
#
#Revision 1.21 2007/04/28 19:58:49 kueller
#/tmp und /dev muessen vor udevstartup gemountet sein. daher nicht mehr in fstab!
#
#Revision 1.20 2007/04/28 18:58:19 kueller
#tmpfs wird nun korrekt fuer udev gemounted
#
#Revision 1.19 2006/07/07 20:32:23 kueller
#Durch die umstellung von devfs auf udev muss sysfs gaaaanz frueh
#im System existieren. daher wird dat nu von /etc/init.d/rcS
#gemacht und hat nichts mehr in der fstab verloren
#
#Revision 1.18 2004/09/19 14:58:41 kueller
#Fehler korrektur in postinstall - $1 wurde nicht immer richtig verwendet.
#
#Revision 1.17 2003/12/05 14:36:48 kueller
#usbfs wird nun ebenfalls gemountet
#
#Revision 1.16 2003/12/05 14:35:10 kueller
#sysfs wird nun in default fstab mit aufgenommen
#
#Revision 1.15 2002/10/12 18:33:32 kueller
#Kleinere Schönheitskorrekturen bei der Abfrage der Nameservices Daten.
#
#Revision 1.14 2002/10/12 18:21:41 kueller
#Korrektur der select schleife (done vergessen)
#
#Revision 1.13 2002/10/12 18:16:20 kueller
#Fehler in zeile 178 - case hat keine abschliessende Klammer. Behoben!
#
#Revision 1.12 2002/10/12 14:24:12 kueller
#Erweiterung um die Nameserver Konfiguration (Wahlweise DNS, NIS oder DNS+NIS)
#
#Revision 1.11 2002/10/05 14:44:16 kueller
#Installpkg macht vor ausführung von postinstall nun ein chroot in
#das neu installierte System (wenn INSTALLROOT nicht gleich "/" ist)
#Einige Routinen des postinstall scriptes mussten hierzu angepasst
#werden (bei der erzeugung von /etc/fstab)
#
#Revision 1.10 2002/10/01 14:39:09 kueller
#getip aufruf durch getnetaddr aus /etc/init.d/functions ersetzt.
#
#Revision 1.9 2002/06/27 11:28:41 hkueller
#Fehler bei der Konfiguration des Defaultrouters - Variablenname war falsch
#geschrieben
#
#Revision 1.8 2002/06/25 10:49:40 hkueller
#Bei der Installation kann zwischen DHCP und Manueller Konfiguration
#gewählt werden.
#Ausserdem kann bei der Manuellen Konfiguration inzwischen ein default router
#angegeben werden.
#
#Revision 1.7 2002/02/08 20:06:26 hkueller
#Vor start von getip werden nun die Berechtigungen des Scriptes korrekt
#gesetzt (755)
#
#Revision 1.6 2001/11/18 00:04:02 kueller
#postinstall löscht nun nicht mehr benötigtes getip script
#
#Revision 1.5 2001/11/18 00:03:13 kueller
#Hilfsscript getip (braucht zsh) hinzugefügt, um die Netzwerkadresse aus
#IP Adresse und Netmask zu berechnen.
#Ausserdem wird netmask nicht mehr in /etc/sysconfig/hostname.<if>, sondern
#in /etc/netmasks gespeichert
#
#Revision 1.4 2001/11/04 00:00:05 kueller
#Bugfix - Anlegen von localtime auf cdrom funktioniert irgendwie nicht
#richtig ..-))
#
#Revision 1.3 2001/11/01 15:40:11 kueller
#Fehlerbehebung. Das anlegen des links auf /etc/localtime bringt fehler.
#mit Option -f wird vorhandener link neu angelegt. damit sollte der Fehler
#behoben sein
#
#Revision 1.2 2001/10/02 20:04:23 kueller
#/etc/localtime wird nun über postinstall Routine eingestellt
#
#Revision 1.1.1.1 2001/09/20 21:35:23 kueller
#NeuStart wegen Datenverlust (gelöscht durch MonsumMake)
#
#Revision 1.13 2001/09/12 11:21:59 kueller
#Eintrag fuer tmpfs wird der fstab nun per standart hinzugefuegt.
#Debugging Code entfernt
#
#Revision 1.12 2001/09/12 11:16:02 kueller
#Wenn das Install dir im ROOT Verzeichniss liegt (sprich /mnt oder /NewCD)
#wird ROOTDIR mit // begonnen. Das hat zur folge das die fstab nicht
#generiert wird. Liegt Installdir nicht im ROOT Verzeichnisss
#(z.B. /NewCD/BINDIST) klappt alles. Problem durch entsprechende Abfragen
#beim setzen von ROOTDIR geloest
#
#Revision 1.11 2001/09/11 09:16:14 kueller
#ROOTDIR wurde falsch gesetzt (/ Fehlte)
#
#Revision 1.10 2001/09/06 20:44:20 kueller
#
#fstab wird nicht richtig erstellt, wenn ROODIR mit endendem / angegeben wird
#also z.B. wenn der aufruf postinstall /NewCD/ lautet funktinierts nicht,
#wenn der Aufruf postinatll /NewCD lautet klappts. Fehler behoben, durch
#eine Nachbearbeitung des Pfades:
#ROOTPATH=`dirname $1``basename $1`
#
#Revision 1.9 2001/08/31 23:15:31 kueller
#
#Korrekturen bei der Erstellung von fstab. Fehlermeldung beim Installieren
#von konfig mit genCD sollten jetzt behoben sein
#
#Revision 1.8 2001/08/16 18:05:57 kueller
#Swap wurde zwar erzeugt, aber nicht in etc/fstab geschrieben
#
#Revision 1.7 2001/08/15 12:18:28 cvs
#
#Fehler bei AWK Aufruf beseitigt (fehlende "}")
#
#Revision 1.6 2001/08/15 11:10:04 cvs
#
#korrektur der gid beim Mount von /dev/pts - 5 ist bei 909 uucp, und bei den
#neuen Versionen tape - beides nicht für die pseudo Terminals gedacht. Hier
#muß die Gruppe 4 - tty - Verwendung finden.
#
#Revision 1.5 2001/08/15 10:39:25 kueller
#
#Nocheinmal Fehler in der Erzeugung des swap Eintrags für /etc/fstab.
#Wurde mehr als eine swap Partition verwendet, gab es illegale Einträge
#in /etc/fstab. Ist nun korrigiert - für jede gefundene swap Partition
#(aus /proc/swaps) wird ein gültiger fstab Eintrag erzeugt
#
#Revision 1.4 2001/08/15 10:37:20 kueller
#
#Fehler bei der Erstellung der fstab - beim erzeugen des Eintrages für
#die swap Partition konnten fehler auftreten, so daß dieser Eintrag nicht
#erzeugt wurde.
#Durch ermitteln des SWAP Devices mittels awk und einer Abfrage ob auch
#ein korrekter SWAP Eintrag gefunden wurde sollten nun die meißten fehler
#behoben sein
#
#Revision 1.3 2001/08/13 12:24:43 cvs
#
#Korrektur bei der Erstellung von /etc/fstab. 1. Zeile der Datei /proc/swaps
#muß gelöscht werden - hier handelt es sich um eine Headerzeile, die nicht
#funktioniert (gibt eine Fehlermeldung beim hochfahren des Systems)
#
#Revision 1.2 2001/08/11 00:13:01 cvs
#
#Mounteintrag für procfilesystem wird in fstab hinzugefügt - geschieht
#anscheinend nicht mehr automatisch
#
#Revision 1.1.1.1 2001/08/09 13:16:34 kueller
#Basis Konfiguration für MonsumLinux
#
#
HELPDIR=`dirname $1`
if [ ! $HELPDIR = "/" ]; then
ROOTDIR=`dirname $1`/`basename $1`
else
ROOTDIR=/`basename $1`
fi
if [ ! -f /tmp/NOQUEST ]; then
echo "Das neue System braucht noch einen Rechnerbezogenen Namen"
echo "Rechnername des Systems:"
read HOSTNAME
echo $HOSTNAME >$ROOTDIR/etc/sysconfig/nodename
echo "Soll das Netzwerk konfiguriert werden? [y/n] "
read CONFIG_NET
if [ "$CONFIG_NET" == "y" ]; then
echo "Soll das Netzwerk mit dhcp configuriert werden ? [y/N] "
echo "Bitte in diesem Fall dhcp Package installieren!"
read CONFIG_DHCP
echo "Zu konfigurierendes Interface:"
read INTERFACE
if [ "$CONFIG_DHCP" == "y" ]; then
touch $ROOTDIR/etc/sysconfig/net/$INTERFACE.dhcp
else
echo "Hostname des INTERFACES:"
read HOSTNAME
echo "IP ADRESSE:"
read IP
echo "NETMASK:"
read NETMASK
echo "Soll ein Defaultrouter konfiguriert werden [y/N]"
read "CONFIG_DEFAULTGW"
if [ "$CONFIG_DEFAULTGW" == "y" ]; then
echo "Bitte IP Adresse des default Routers angeben"
read DEFAULTGW
fi
source /etc/init.d/functions
NETADDR=`getnetaddr $IP $NETMASK`
echo "$HOSTNAME" >$ROOTDIR/etc/sysconfig/net/hostname.$INTERFACE
echo "$IP $HOSTNAME" >>$ROOTDIR/etc/hosts
echo "$NETADDR $NETMASK" >>$ROOTDIR/etc/netmasks
if [ "$CONFIG_DEFAULTGW" == "y" ]; then
echo $DEFAULTGW >$ROOTDIR/etc/sysconfig/net/defaultrouter
fi
fi
echo "Sollen Nameservices verwendet werden ? [y/N] "
read ANSWER
if [ "$ANSWER" = "y" ]; then
select i in "DNS" "NIS" "DNS+NIS"; do
case "$i" in
"DNS")
if [ ! "$CONFIG_DHCP" = "y" ]; then
echo -n "Welcher DNS Server soll verwendet werden (IP Adresse): "
read DNSSERVER
echo -n "Bitte Domainnamen für die searchliste eingeben: "
read SEARCH
echo "nameserver $DNSSERVER" >$ROOTDIR/etc/resolv.conf
echo "search $SEARCH" >>$ROOTDIR/etc/resolv.conf
fi
cp $ROOTDIR/etc/nsswitch.dns $ROOTDIR/etc/nsswitch.conf
break
;;
"NIS")
echo -n "An welche NIS Domaine soll das System angeschlossen werden?: "
read DOMAIN
if [ ! -d $ROOTDIR/etc/sysconfig/nis ]; then
mkdir $ROOTDIR/etc/sysconfig/nis
fi
echo $DOMAIN >$ROOTDIR/etc/sysconfig/nis/defaultdomain
cp $ROOTDIR/etc/nsswitch.nis $ROOTDIR/etc/nsswitch.conf
echo -n "Liegt der NIS Server hinter einem NIS Gateway [y/N] "
read ANSWER
if [ "$ANSWER" == "y" ]; then
echo -n "Bitte IP Adresse des NIS Servers eingeben: "
read NISSERVER
echo "domain $DOMAIN server $NISSERVER" >$ROOTDIR/etc/yp.conf
fi
break
;;
"DNS+NIS")
if [ ! "$CONFIG_DHCP" = "y" ]; then
echo -n "Welcher DNS Server soll verwendet werden (IP Adresse): "
read DNSSERVER
echo -n "Bitte Domainnamen für die searchliste eingeben: "
read SEARCH
echo "nameserver $DNSSERVER" >$ROOTDIR/etc/resolv.conf
echo "search $SEARCH" >>$ROOTDIR/etc/resolv.conf
fi
echo -n "An welche NIS Domaine soll das System angeschlossen werden?: "
read DOMAIN
if [ ! -d /etc/sysconfig/nis ]; then
mkdir $ROOTDIR/etc/sysconfig/nis
fi
echo $DOMAIN >$ROOTDIR/etc/sysconfig/nis/defaultdomain
cp $ROOTDIR/etc/nsswitch.nis $ROOTDIR/etc/nsswitch.conf
echo -n "Liegt der NIS Server hinter einem NIS Gateway [y/N] "
read ANSWER
if [ "$ANSWER" == "y" ]; then
echo -n "Bitte IP Adresse des NIS Servers eingeben: "
read NISSERVER
echo "domain $DOMAIN server $NISSERVER" >$ROOTDIR/etc/yp.conf
fi
break
;;
esac
done
fi
fi
fi
WDIR=`pwd`
cd $ROOTDIR/etc
ln -sf /usr/share/zoneinfo/Europe/Berlin localtime
cd $WDIR
SWAP=`awk '{if ( $2 == "partition" ) print $1}' /proc/swaps`
if [ -n "$SWAP" ]; then
for i in $SWAP; do
echo "$i swap swap defaults 0 0" >$ROOTDIR/tmp/fstab
done
fi
if [ ! "$INSTROOT" ]; then
INSTROOT=$ROOTDIR
fi
if [ -f /tmp/mounts ]; then
FSTABENTRY=`grep "$INSTROOT" /tmp/mounts`
MOUNTS=/tmp/mounts
else
FSTABENTRY=`grep "$INSTROOT" /proc/mounts`
MOUNTS=/proc/mounts
fi
if [ ! -z "$FSTABENTRY" ]; then
cat $MOUNTS|grep $INSTROOT >>$ROOTDIR/tmp/fstab
fi
echo "none /proc proc" >>$ROOTDIR/tmp/fstab
echo "none /proc/bus/usb usbfs" >>$ROOTDIR/tmp/fstab
echo "none /dev/pts devpts gid=4,mode=620" >>$ROOTDIR/tmp/fstab
echo "none /tmp tmpfs" >>$ROOTDIR/tmp/fstab
echo "none /dev/shm tmpfs mode=1777" >>$ROOTDIR/tmp/fstab
if [ ! -z "$FSTABENTRY" ]; then
sed "s/\\$INSTROOT /\/ /" $ROOTDIR/tmp/fstab \
|sed "s/\\$INSTROOT//" >$ROOTDIR/etc/fstab
fi
rm $ROOTDIR/tmp/fstab
mkdir -p /var/db/nscd
mkdir -p /var/run/nscd
chown nscd:sys /var/db/nscd
chown nscd:sys /var/run/nscd