#!/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., 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