Ein Bootmenü für Dos/Windows erstellen

Um einen Rechner zu starten, braucht es ja ein Betriebssystem, und dieses benötigt wiederum einige Treiber und Startparameter (z.B. die deutsche Tastaturbelegung). Nun kann es sein, daß man nicht alle Treiber oder Parameter übergeben will. Ein Beispiel ist die Auswahl, ob der CD-Rom-Treiber geladen werden soll oder nicht (an meinem uralt-Notebook stellt sich diese Frage, da es sich um ein Parallelport-CD-Rom handelt). Um solch eine Auswahl beim Starten des Rechners treffen zu können, müssen wir dem Betriebssystem (und natürlich dem User) auch unterschiedliche Konfigurationen zur Auswahl bieten. Das erledigt ein Bootmenü.

Voraussetzung für die Einrichtung eines Bootmenüs (nach diesem Beispiel) ist MS-DOS ab V.6.2. Da auch Windows 3.x und Windows 9x ein DOS-System zugrundeliegt, können wir das wunderbar für unser Bootmenü "mißbrauchen"

Der Schlüssel zum Bootmenü liegt in den beiden DOS-Konfigurationsdateien "autoexec.bat" und "config.sys". Diese Dateien werden auch unter Windows 9x noch beim Rechnerstart abgearbeitet. Allerdings nicht mehr in der Konsequenz wie bei DOS/Win 3.x, wo nichts mehr ging, wenn dort irgendein Mist drinstand.

Bitte tu Dir selbst einen Gefallen und sichere die beiden Dateien, bevor Du an ihnen "rumpfuscht".

Die beiden Dateien sind unter DOS die Schaltzentrale der Treiber und Programme. Die "config.sys" legt z.B. Treiber und Einstellungen fest, die dann von der "autoexec.bat" aufgerufen und gestartet werden können. schauen wir uns die beiden doch mal näher an.


config.sys

device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=049,850,C:\WINDOWS\COMMAND\country.sys

Mit dem Aufruf "device= ..." werden Geräte(-treiber) in das System eingebunden. In diesem Falle wird die EGA-Konsole und der Bildschirmtreiber geladen. (EGA macht es bunt :-) )
"country= ..." legt die Ländereinstellungen fest (hier die deutsche Tastaturbelegung).

Möglich sind hier natürlich auch CD-Rom-Treiber, die dann etwa so aussehen könnten:

device=C:\CDROM\mitsumi.sys /L:GR

Also hier kann so ziemlich jedes Gerät in ein (DOS-)System eingebunden werden. Früher (hallo an alle, die vor Windows 95 zu den PC's stießen) mußten hier auch Sound- und Netzwerkkarten eingebunden werden.

autoexec.bat

@echo off
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keybgr,,C:\WINDOWS\COMMAND\keyboard.sys
C:\WINDOWS\a3init.exe
SET PATH=%PATH%;C:\WINDOWS\Twain_32\Scanwiz

Was passiert hier im Einzelnen:

@echo off bewirkt, daß die folgenden Kommandos nicht auf dem Bildschirm ausgegeben werden
mode con ... prepare ...
mode con ... select ...
keybgr ...
wählt die deutsche Tastaturbelegung (QWERTZ)
C:\WINDOWS\a3init.exe erweckt meine Soundkarte zum Leben
SET PATH ... legt die Pfade fest, in denen nach Befehlen und Treibern gesucht wird. Hier möchte mein Scannertreiber gerne wissen wo er ist :-)

Das Menü "einbauen"

Alles was wir bis eben gesehen haben, läßt sich auch nicht laden, indem ich das alles aus den Dateien lösche. In dem Falle hätten wir eine englische Tastaturbelegung, keinen Sound und einen muffigen TWAIN-Treiber.

Möchte ich meinen Rechner nun mir unterschiedlichen Konfigurationen starten, kann ich entweder:

Wir schauen uns natürlich das Bootmenü an, weil es a) kostenlos und b) recht einfach ist:

Zunächst ist die "config.sys" in folgende Abschnitte einzuteilen:

[COMMON]
[MENU]
[Konfiguration1]
[Konfiguration2]

In den Abschnitt [COMMON] gehört alles, was für jede Konfiguration gelten soll, z.B. der Anzeigentreiber

[COMMON] device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1) ...

Der nächste Abschnitt ist der, der das Bootmenü definiert.

...
[MENU]
MENUITEM=Konfiguration1 deutsche Tastatur (+ Soundkarte)
MENUITEM=Konfiguration2 englische Tastatur (- Soundkarte)
MENUDEFAULT=Konfiguration1
MENUCOLOR=15,1
...

Die Punkte im einzelnen:

MENUITEM= bezeichnet einen Menüpunkt. Das erste Wort hinter dem "=" bezeichnet den Abschnitt der "config.sys", der aufgerufen werden soll. Nach (min.) einem Leerzeichen folgt die Beschreibung des Punktes, und zwar so, wie er später im Auswahlmenü erscheinen soll.
MENUDEFAULT= definiert den Abschnitt, der standardmäßig ausgewählt werden soll
MENUCOLOR= damit kann man das Erscheinungsbild des Menüs ändern. Die erste Zahl definiert die Farbe des Vordergrundes, die zweite (nach dem Komma) die des Hintergrundes. Eine Übersicht der Farben und Farbkombinationen habe ich hier zusammengestellt.

Jetzt sind die "besonderen" Konfigurationen dran ...

Die Abschnitte können beliebig benannt werden. Eine maximale Anzahl von Menüpunkten ist mir nicht bekannt. Ich verwende der Übersichtlichkeit halber hier nur die zwei Punkte [Konfiguration1] und [Konfiguration2].

...
[Konfiguration1]
Country=049,850,C:\WINDOWS\COMMAND\country.sys

[Konfiguration2]
...

Wird später der erste Menüpunkt ausgewählt, wird die deutsche Zeichentabelle geladen. Der zweite Menüpunkt ist zwar leer, aber das bedeutet, daß die Standardeinstellung (also Englisch) gilt.

Nun gehen wir daran auch die autoexec.bat anzupassen. Auch diese Datei muß erstmal in eine schöne Struktur gebracht werden:

GOTO %CONFIG%

:Konfiguration1
:Konfiguration2

:CONTINUE

Die erste Zeile bewirkt, daß die Angaben aus der "config.sys" übernommen werden.
In die Abschnitte Konfiguration1 und Konfiguration2 (die jetzt durch einen Doppelpunkt eingeleitet werden) können jetzt die Programme eingetragen werden, die bei der jeweiligen Konfiguration geladen werden sollen.

...
:Konfiguration1
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keyb gr,,C:\WINDOWS\COMMAND\keyboard.sys
C:\WINDOWS\a3init.exe
SET PATH=%PATH%;C:\WINDOWS\Twain_32\Scanwiz
GOTO CONTINUE

:Konfiguration2
SET PATH=%PATH%;C:\WINDOWS\Twain_32\Scanwiz
GOTO CONTINUE
...

Im letzten Abschnitt (:CONTINUE) kann dann ein abschließendes Programm oder Kommando aufgerufen werden, das wieder für alle Konfigurationen gilt, z.B. cls (oder bei Windows 3.x: WIN)

Betriebssysteme Starten

Kommen wir nun zur sinnvollsten Anwendung des Bootmenüs. Wer mehr als ein Betriebssystem auf der Platte hat, möchte diese natürlich auch unabhängig voneinander starten. Ich selbst habe Windows und Linux installiert. Mit Linux steht zwar ein Bootmanager (LILO) zur Verfügung, der auch Windows starten kann, aber ich finde die Lösung über ein DOS-Bootmenü komfortabler. Alternativ kann man sich natürlich auch einen Extra-Bootmanager kaufen ... wer's denn mag ...!

Um das Bootmenü für Linux einsetzen zu können, muß "loadlin" verwendet werden. Loadlin wird in einem Verzeichnis auf der Windows-Partition installiert, und ermöglicht des Start von Linux aus DOS/Windows heraus.

Damit möglichst wenig Müll in den Speicher gerät, werden alle Treiber ausschließlich für Windows geladen. Die "config.sys" sieht dann in etwa so aus:

[COMMON]

[MENU]
MENUITEM=WINDOWS WINDOWS
MENUITEM=LINUX LINUX
MENUDEFAULT=LINUX
MENUCOLOR=9,1

[WINDOWS]
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=049,850,C:\WINDOWS\COMMAND\country.sys

[LINUX]

Bei [COMMON] wird nichts geladen, da die beiden Betriebssysteme eher wenig Gemeinsamkeiten aufweisen :-). Der Menüpunkt [LINUX] bleibt ebenfalls leer, ist aber notwendig, damit das Menü funktioniert.

Die "autoexec.bat" sollte dann etwa so aussehen:

@echo off

GOTO %CONFIG%

:WINDOWS
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keyb gr,,C:\WINDOWS\COMMAND\keyboard.sys
C:\WINDOWS\a3init.exe
SET PATH=%PATH%;C:\WINDOWS\Twain_32\Scanwiz
GOTO CONTINUE

:LINUX
C:\loadlin\linux hda3

:CONTINUE
cls

Auf diese Weise wird unter Windows die deutsche Tastatur, die Soundkarte und ein Pfad zum Scanner geladen. Für Linux ist das nicht notwendig, da das Betriebssystem ohnehin nichts damit anfangen kann.

Partitionen
Windows-
Bezeichnung
Linux-
Bezeichnung
Typ Größe
C: hda1 Windows vfat 5 GB
D: hda5 Windows vfat
(Image-Partition
zum CD schreiben)
705 MB
- hda3 Linux ext2 3,5 GB
- hda4 Linux swap 128 MB