Virtual OS/2 International Consumer Education
VOICE-Homepage: http://de.os2voice.org
September 2004

Inhaltsverzeichnis
< Vorherige Seite | Nächste Seite >
Artikelverzeichnis

editor@os2voice.org


INI-Datei-Management

Von Bob Mclellan © September 2004, Übersetzung: Jürgen Gaida

Einer der wenigen Schwachpunkte von OS/2 ist unglücklicherweise der Umgang der Arbeitsoberfläche mit den INI-Dateien (OS2.INI und OS2SYS.INI). Möglicherweise müssen OS/2-Systeme aus anderen Gründen nicht so häufig aktualisiert werden, weshalb INI-Dateiprobleme lange unentdeckt bleiben. Und da diese Dateien für das Betriebssystem enorm wichtig sind, können Probleme in diesen das System unbrauchbar machen.

Dieser Artikel beschreibt eine Technik, die einige der Probleme behandelt, die mit INI-Dateien auftreten können. Dieser Lösungsvorschlag ist sicher nicht für jedermann geeignet, aber viele können ihn vorteilhaft einsetzen. Tatsächlich besteht die Idee darin, immer mit sauberen INI-Dateien zu starten, so wie sie bei der Systeminstallation angelegt wurden. Die Vorzüge und Nachteile sind:

Die Vorzüge lassen sich auch mit anderen Zusatzprogrammen wie CHECKINI oder Peter Fitzsimmons Korrektur der INI-Datei-Aktualisierung erzielen, aber diese Technik des Startens mit sauberen INI-Dateien vermeidet die Notwendigkeit, solche Zusatzprogramme einzusetzen. Da viele Arbeitsoberflächenmerkmale, wie Programmobjekte, Druckerobjekt, FTP-PM-Objekte, das Oberflächenlayout und vieles mehr, in den INI-Dateien vorgehalten werden, sind Änderungen an diesen am Ende der Sitzung verloren. Dies bedeutet, daß alle Änderungen in einer kurzen Sitzung vorgenommen werden müssen, die die originalen INI-Dateien aktualisiert. Dies ist auf Systemen, die häufig Änderungen an den Arbeitsoberflächen- oder Systemeinstellungen erfordern, lästig, weshalb diese Technik für solche Systeme unangebracht ist. Aber auf Systemen, die eine stabile Konfiguration haben, funktioniert dieser Prozeß ausgezeichnet.

Umsetzung

Die Umsetzung ist relativ einfach. Dem System wird über die zwei Einträge

SET USER_INI=c:\os2\OS2.INI
SET SYSTEM_INI=c:\os2\OS2SYS.INI

in der CONFIG.SYS mitgeteilt, welche INI-Dateien es zu verwenden hat.

Diese Einträge können auf jeden beliebigen Speicherort zeigen, an welchem die INI-Dateien abgelegt sind, es muß nicht das Verzeichnis OS2 des Systemlaufwerks sein. Werden die originalen, sauberen INI-Dateien irgendwo anders gespeichert und an diesen Ort kopiert, bevor die Arbeitsoberfläche startet, ist die Integrität der originalen Dateien gewährleistet. Das Kopieren läßt sich durch eine einfache Befehlsdatei (INISWAP.CMD) erreichen, die gerade drei Zeilen enthält:

ATTRIB -s -h -r c:\OS2\*.INI >NUL
COPY c:\bob\OS2.INI c:\os2\OS2.INI >NUL
COPY c:\bob\OS2SYS.INI c:\os2\OS2SYS.INI >NUL

Die erste Zeile ermöglicht das Kopieren über etwaige vorhandene Dateien. Das Verzeichnis c:\bob ist ein beliebiges Verzeichnis, wo die originalen INI-Dateien dauerhaft gespeichert werden. Diese Befehlsdatei wird mittels CALL aus der CONFIG.SYS heraus aufgerufen.

CALL=c:\OS2\CMD.EXE /C c:\bob\INISWAP.CMD >NUL

Man kann die Befehle noch weiter verallgemeinern (um sie auf anderen Partitionen anzuwenden), indem man das c: wegläßt. Es ist nur sicherzustellen, daß die Quelldateien auf der entsprechenden Partition vorhanden sind.

Aber was ist, wenn man dauerhaft ein neues Druckerobjekt hinzufügen möchte oder ein Programmobjekt, oder eine neue Anwendung installiert werden soll (viele solcher Vorgänge ändern die INI-Dateien), oder irgendeine Änderung an den Einstellungen vornehmen möchte, die diese Dateien beeinflussen? Dann wird eine interessante Wendung eingeführt. Für den Fall, daß etwas schief geht, braucht man noch für eine Weile eine Sicherungskopie der Ausgangskonfiguration, da ein Problem möglicherweise nicht sofort auftritt. Mit ein paar einfachen Schritten läßt sich dies erreichen.

ATTRIB -s -h -r c:\bob\OS2\*.INI >NUL
COPY c:\bob\OS2.INI c:\bob\buOS2.INI >NUL
COPY c:\bob\OS2SYS.INI c:\bob\buOS2SYS.INI >NUL
COPY c:\OS2\OS2.INI c:\bob\OS2.INI >NUL
COPY c:\OS2\OS2SYS.INI c:\bob\OS2SYS.INI >NUL

Diese Befehle werden in einer Datei (SAVEINI.CMD) gespeichert. Zusätzlich gilt, da die vom System benutzten INI-Dateien nicht sofort aktualisiert werden, daß der beste Zeitpunkt, eine Sicherungskopie anzulegen, der nächste Neustart nach den Änderungen an den Einstellungen ist. Das Erstellen der Sicherungskopien muß abgeschlossen sein, bevor INISWAP.CMD abgearbeitet wird, und die günstigste Lösung, dies umzusetzen, ist, eine weitere Zeile in der CONFIG.SYS hinzuzufügen. Der Zeile wird ein REM vorangestellt und wenn die INI-Dateien beim nächsten Neustart gesichert werden sollen, wird das REM entfernt.

CALL=c:\OS2\CMD.EXE /C c:\bob\SAVEINI.CMD >NUL
CALL=c:\OS2\CMD.EXE /C c:\bob\INISWAP.CMD >NUL

Ist man nun mit den Änderungen zufrieden, werden die Sicherungskopien weniger wichtig. Dennoch kann man sich jede Sicherungskopiengeneration speichern, damit man jederzeit zu einem x-beliebigen Stand zurückkehren kann. Einen weiteren Hauptaugenmerk sollte man auf die Änderungen in der CONFIG.SYS legen, die an den Änderungen in den INI-Dateien anknüpfen.

Eine Nebenbemerkung

Ich habe eine virtuelle Festplatte eingerichtet (ich setze RAMFS ein), auf welche die INI-Dateien kopiert werden, und die Einträge in der CONFIG.SYS zeigen auf diese Ramdisk. Dies war eigentlich ein Experiment wegen anderer Dinge, mit denen ich mich beschäftigte, aber es ermöglicht einen schnelleren Systemabschluß. Es bietet eine Garantie, daß alle Änderungen aus der laufenden Sitzung verworfen werden, und es benötigt keinen ATTRIB-Befehl in der INISWAP.CMD. Mit dieser Konfiguration ist es jedoch wesentlich schwieriger, den SAVEINI-Prozeß einzurichten, weshalb dies nicht für jedermann geeignet ist.

Ich habe RAMFS von Hobbes mit folgenden Einträgen in der CONFIG.SYS im Einsatz.

SET USER_INI=w:\OS2.INI
SET SYSTEM_INI=w:\OS2SYS.INI
....
IFS=C:\BOB\RAMFS.IFS /S4M /M:4M /R /CLU:8
RUN=C:\BOB\RAMDISK.EXE W:

Zu beachten ist, daß die INI-Datei-Zuweisungen geändert wurden. Die Schalter aus der ersten RAMFS-Zeile sind im RAMFS-Paket näher beschrieben und für den hiesigen Zweck eher unkritisch. Ich habe sie eingesetzt, um die virtuelle Festplatte auf 4 MB zu begrenzen und damit die Dateien im Arbeitsspeicher gehalten werden (sie werden also nicht ausgelagert). Die zweite RAMFS-Zeile weist der virtuellen Festplatte den Laufwerksbuchstaben W: zu. Wahrscheinlich kann man jeden virtuellen Festplattentreiber einsetzen, wenn man eine solche Lösung ausprobieren möchte.

Seit ein paar Monaten arbeitet diese Lösung zufriedenstellend auf meinem System.

Zusammenfassung

Mit zwei einfachen Befehlsdateien kann man sein OS/2-System noch stabiler machen. Die Datei- und Verzeichnisnamen, die ich verwendet habe sind nur beispielhaft. Es steht jedem frei, seine eigene Nomenklatur und Verzeichnisstruktur anzuwenden.

Viele OS/2-Anwender müssen sich früher oder später mit Problemen rund um die INI-Dateien auseinandersetzen. Trifft man von Beginn an die richtigen Vorkehrungen zur Minimierung solcher Probleme, kann man jeder OS/2-Installation ein langes und zuverlässiges Leben verschaffen.

Daten und Quellen:

RAMFS - http://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/ramfs115.zip


Bob Mclellan (manchen als The Little Blue Kiwi bekannt) ist seit Version 2.0 beta OS/2-Anwender. Zuerst arbeitete er mit Computern, als sie noch mit Dampf betrieben wurden. Seitdem hat er mit vielen Betriebssystemen, Sprachen und Hardwaretypen zu tun gehabt. Er findet es interessant, daß Open Source nach einer Pause von 30 Jahren wieder Einzug in die Computerwelt hält, bezweifelt aber, daß jemand auf die Hardware-"Quellen" so offen wie früher wünscht.

Artikelverzeichnis
editor@os2voice.org
< Vorherige Seite | Inhaltsverzeichnis | Nächste Seite >
VOICE-Homepage: http://de.os2voice.org