#!/bin/ash # Auswerten (vor ggf. Loeschen) des alten Systems nach config-Infos # Wird im neuen System fuer Textmodus, KDE, lilo/kernel verwendet # Kann ggf mehrfach aufgerufen werden, am Anfang mit der Partition die als bootbar * gekennzeichnet ist # (und spaeter evtl. geloescht wird), dann ggf. nochmal mit einer vorherigen SYS-Installierung um deren Werte zu benutzen # LANG0, KBD0 sind die Namen von Sprache / Tastatur in KDE, werden , falls im alten System vhd, direkt ins neue KDE uebernommen # OLDSYS0 vor ggf. loeschen, OLDSYS nach loeschen der Partitionen dann ggf nicht mehr da echo " Vor ggf Loeschen von Partitionen, Auswerten vom alten System" $OLDSYS read OLDSYS KBD KBD0 LANG LANG0 USER00 USER0 CHAP1 CHAP2 PAP1 PAP2 REST < userconf # fuer alle vor erstem Aufruf was vorgeben read FESTPLATTEN < festplatten # OLDSYS=- OBSYSTEM=0 # Kriterium: falls weder /root noch /Windows vorhanden, kein brauchbares System . # Primaer: System mit * in Part.Tafel fdisk -l > scr ; grep -v 'Disk' scr > scr0 ; grep '/dev/' scr0 > scr ; grep '*' scr > scr0 if test $? -eq 0 ; then read OLDSYS REST < scr0 ; fi ; # Partition mit boot -Label echo "alte boot-Partition : " $OLDSYS OLDSYS0=${OLDSYS#/dev/} ; mkdir -p /$OLDSYS0 ; umount /$OLDSYS0 ; mount /dev/$OLDSYS0 /$OLDSYS0 # /dev/OLDSYS0 = OLDSYS if test -d /$OLDSYS0/root ; then OBSYSTEM=1 ; fi ; if test -d /$OLDSYS0/Windows ; then OBSYSTEM=1 ; fi ; if test $OBSYSTEM = 0 ; then OLDSYS=- ; fi ; # hilfsweise wird erste Partition genommen #if test $OLDSYS = - ; then read OLDSYS REST < scr ; if test $? -eq 0 ; then OLDSYS=$OLDSYS ; else OLDSYS=- ; OLDSYSNR=0 ; fi ;fi ; # Partition mit boot -Label #echo "2 OLDSYS : " $OLDSYS $LOG for I0 in $FESTPLATTEN ; do # POST-Inkrement: vorgegebenes zuerst testen, falls erfolglos dann diese. for J0 in 1 2 3 4 5 ; do if test $OLDSYS = - ; then # Falls die jetzt zu testende Partition da ist OLDSYS=$I0$J0 OLDSYS0=${OLDSYS#/dev/} ; mkdir -p /$OLDSYS0 ; umount /$OLDSYS0 ; mount /dev/$OLDSYS0 /$OLDSYS0 # /dev/OLDSYS0 = OLDSYS if test -d /$OLDSYS0/root ; then OBSYSTEM=1 ; fi ; if test -d /$OLDSYS0/Windows ; then OBSYSTEM=1 ; fi ; if test $OBSYSTEM = 0 ; then OLDSYS=- ; fi ; fi ; # OLDSYS -ne - done ; done echo " ### gefunden: OLDSYS: " $OLDSYS grep "Language=" /$OLDSYS0/root/.kde/share/config/kdeglobals > scr ; IERR=$? if test $IERR = 0 ; then read LANG0 REST < scr ; IERR=$? ; fi ; if test $IERR = 0 ; then echo "Sprache gemaess KDE : " $LANG0 ; LANG=${LANG0#Language=} ; fi ; echo "Sprache : " $LANG "Sprache von altem KDE : " $LANG0 ls -1 /$OLDSYS0/Windows/Help/Help > scr ; IERR=$? # WiVi zBsp Ordner ../fr-FR echo "scr: " ; cat scr # cp -f scr scr0 ; if test $IERR = 0 ; then grep "/" scr0 > scr ; IERR=$? ; fi ; Bei ash haben Ordner hinten wohl kein / ... # echo "scr: " ; cat scr if test $IERR = 0 ; then read LANG0 REST < scr ; IERR=$? ; fi ; echo "2 LANG0: " $LANG0 if test $IERR = 0 ; then LANG=${LANG0%%-*} ; LANG0="Language="$LANG ; fi ; echo "LANG : " $LANG $LANG0 # In WiXP sind configs in /windows/setuplog.txt und /windows/system32/$winnt$.inf # Bsp.: /windows/system32/$winnt$.inf : Language=XXXX , TimeZone=YYY # Bsp.: /windows/setuplog.txt : C:\WINDOWS\system32\fr-fr\mstsc.exe.mui. mstscax.dll.mui. aaclient.dll.mui. # dgl. C:\Program Files\Internet Explorer\fr-fr\iexplore.exe.mui. find /$OLDSYS0/windows/system32 mstsc.exe.mui | grep "mstsc.exe.mui" > scr ; IERR=$? if test $IERR = 0 ; then read LANG0 REST < scr ; IERR=$? ; fi ; echo "4 LANG0: " $LANG0 if test $IERR = 0 ; then LANG0=${LANG0#*/windows/system32/} ; echo "41 LANG0: " $LANG0 ; LANG0=${LANG0%%/mstsc.exe.mui*} ; echo "42 LANG0: " $LANG0 ; fi ; # kein \ vor } #if test $IERR != 0 ; then #grep "mstsc.exe.mui" scr0 > scr ; IERR=$? #cat scr #grep -o "mstsc.exe.mui" scr0 > scr ; IERR=$? #cat scr #if test $IERR = 0 ; then read LANG0 REST < scr ; IERR=$? ; fi ; #echo "5 LANG0: " $LANG0 #if test $IERR = 0 ; then LANG0=${LANG0##*system32/} ; echo "43 LANG0: " $LANG0 ; LANG0=${LANG0%%/mstsc.exe.mui*} ; echo "41 LANG0: " $LANG0 ; fi ; #fi ; if test $IERR = 0 ; then LANG=${LANG0%%-*} ; LANG0="Language="$LANG ; fi ; echo "Sprache LANG : " $LANG " Sprache fuer KDE verwendet LANG0 : " $LANG0 grep "LayoutList=" /$OLDSYS0/root/.kde/share/config/kxkbrc > scr ; IERR=$? IERRLOADKEYS=1 if test $IERR = 0 ; then read KBD0 REST < scr ; IERR=$? ; fi ; if test $IERR = 0 ; then if test $KBD0 = LayoutList=br_abnt2 ; then KBD0="LayoutList=br(abnt2)" ; fi ; echo "Tastatur gemaess KDE : " $KBD0 ; KBD=${KBD0#LayoutList=} echo $KBD " " > scr ; sed 's/)/ /g' scr > scr0 ; sed 's/(/-/g' scr0 > scr ; sed 's/_/-/g' scr > scr0 ; sed 's/(/-/g' scr0 > scr read KBD REST < scr # br(abnt2) --> br-abnt2 echo "Tastatur hoffentlich gut fuer loadkeys KBD : " $KBD loadkeys $KBD ; IERRLOADKEYS=$? ; echo "Fehlermeldung von loadkeys" $KBD " IERRLOADKEYS : " $IERRLOADKEYS if test $IERRLOADKEYS != 0 ; then sed 's/-/ /g' scr > scr0 ; read KBD REST < scr0 ; echo " Suchen nach: " $KBD " in kbd-Liste" ls -1R /usr/share/kbd/keymaps/* | grep ^$KBD | grep -v defkeymap > scr echo " aehnliche Dateien in der kbd-Liste, die erste wird genommen :" ; cat scr read KBD REST < scr loadkeys $KBD ; IERRLOADKEYS=$? ; echo "Fehlermeldung von loadkeys" $KBD " IERRLOADKEYS : " $IERRLOADKEYS fi ; fi ; # loadkeys kann auch mit default gehen, soll dann aber gemaess Sprache gewaehlt werden, ebenso wie wenn loadkeys nicht geht if test $KBD0 = - ; then if test $LANG0 != - ; then KBD0="LayoutList=$LANG" ; KBD=$LANG ; fi ; fi ; # kbd=lang falls lang vorgegeben aber kbd nicht echo "Tastatur KBD : " $KBD " Tastatur fuer KDE verwendet KBD0 : " $KBD0 IERR=-1 ; rm -f scr grep ":500:100:" /$OLDSYS0/etc/passwd >> scr ; IERR0=$? ; if test $IERR0 = 0 ; then IERR=0 ; fi ; grep ":501:100:" /$OLDSYS0/etc/passwd >> scr ; IERR0=$? ; if test $IERR0 = 0 ; then IERR=0 ; fi ; grep ":500:" /$OLDSYS0/etc/passwd >> scr ; IERR0=$? ; if test $IERR0 = 0 ; then IERR=0 ; fi ; grep ":501:" /$OLDSYS0/etc/passwd >> scr ; IERR0=$? ; if test $IERR0 = 0 ; then IERR=0 ; fi ; echo "Kandidaten fuer Benutzer: " ; cat scr # Kandidaten fuer normale Benutzer sind 500, 501, erst Gruppe 100=user, hilfsweise irgendeine Gruppe if test $IERR = 0 ; then read USER0 REST < scr ; IERR=$? ; fi ; if test $IERR = 0 ; then USER00=${USER0%%:*} ; fi ; if test $IERR != 0 ; then USER0=- ; USER00=- ; fi ; grep -v "#" /$OLDSYS0/etc/ppp/chap-secrets > scr ; IERR=$? ; if test $IERR = 0 ; then sed 's/*/:/g' scr > scr0 ; read CHAP1 UNW CHAP2 REST < scr0 ; IERR=$? ; fi ; #echo "gelesene CHAP -Zeile: " ; cat scr0 if test $IERR != 0 ; then CHAP1=- ; CHAP2=- ; fi ; if test $CHAP1 = ':' ; then CHAP1=- ; CHAP2=- ; fi ; grep -v "#" /$OLDSYS0/etc/ppp/pap-secrets > scr ; IERR=$? ; if test $IERR = 0 ; then sed 's/*/:/g' scr > scr0 ; read PAP1 UNW PAP2 REST < scr0 ; IERR=$? ; fi ; #echo "gelesene PAP -Zeile: " ; cat scr0 if test $IERR != 0 ; then PAP1=- ; PAP2=- ; fi ; if test $PAP1 = ':' ; then PAP1=- ; PAP2=- ; fi ; # Dateien die vom alten System kopiert werden sollen mkdir -p tmp/oldconf cp /$OLDSYS0/etc/rc.d/rc.inet1.conf tmp/oldconf/rc.inet1.conf cp /$OLDSYS0/etc/rc.d/rc.wireless.conf tmp/oldconf/rc.wireless.conf umount /$OLDSYS # oder OLDSYS0 echo " === Gefundene Konfiguration des alten Systemes ===" echo " Keyboard: " $KBD0 " , Sprache: " $LANG0 " , Benutzer: " $USER00 echo " Internet: CHAP: " $CHAP1 " * " $CHAP2 ; echo " Internet: PAP: " $PAP1 " * " $PAP2 echo $OLDSYS $KBD $KBD0 $LANG $LANG0 $USER00 $USER0 $CHAP1 $CHAP2 $PAP1 $PAP2 echo $OLDSYS $KBD $KBD0 $LANG $LANG0 $USER00 $USER0 $CHAP1 $CHAP2 $PAP1 $PAP2 > userconf # Falls fuer LANG0 , KBD0 nichts vorgegeben also - , werden die Werte vom gepackten SYS unveraendert gelassen, # falls nachfolgend was vorgegeben, werden diese defaults verwendet if test $KBD0 = - ; then KBD0="LayoutList=br(abnt2)" ; KBD="br-abnt2" ; fi ; if test $LANG0 = - ; then LANG0="Language=pt_BR" ; LANG="pt_BR" ; fi ; CHAP01="" ; PAP01=$CHAP01 CHAP02="" ; PAP02=$CHAP02 if test $CHAP1 = - ; then CHAP1=$CHAP01 ; CHAP2=$CHAP02 ; fi ; if test $PAP1 = - ; then PAP1=$PAP01 ; PAP2=$PAP02 ; fi ; echo " === Angenommene Konfiguration des alten Systemes ===" echo " Keyboard: " $KBD0 " , Sprache: " $LANG0 " , Benutzer: " $USER00 echo " Internet: CHAP: " $CHAP1 " * " $CHAP2 ; echo " Internet: PAP: " $PAP1 " * " $PAP2 echo $OLDSYS $KBD $KBD0 $LANG $LANG0 $USER00 $USER0 $CHAP1 $CHAP2 $PAP1 $PAP2 echo $OLDSYS $KBD $KBD0 $LANG $LANG0 $USER00 $USER0 $CHAP1 $CHAP2 $PAP1 $PAP2 > userconf exit