Kapitel 4 Booten und Bootmanager ­ LILO, loadlin etc. In diesem Kapitel sollen verschiedene Methoden vorgestellt werden, wie sich das fertig installierte System booten lässt. Um das Verständnis der einzel- nen Methoden zu erleichtern, werden zunächst einige technische Details des Bootprozesses auf PCs erläutert. 4.1 Der Bootvorgang auf dem PC Nach dem Einschalten des Rechners werden vom BIOS (engl. Basic Input Output System) Bildschirm und Tastatur initialisiert sowie der Hauptspeicher getestet. Bis zu diesem Zeitpunkt existieren noch keine Massenspeicherme- dien in der Welt Ihres PCs! Nachdem das Rumpfsystem seine Innenschau" beendet hat, kann es sich der Erkundung der übrigen Welt widmen. Informationen über aktuelles Da- tum, Zeit und eine Auswahl der wichtigsten Peripherie-Geräte werden aus den CMOS-Werten (CMOS setup) ausgelesen. Da nun die erste Festplatte einschließlich ihrer Geometrie bekannt sein sollte, kann das Laden des Be- triebssystems von dort beginnen. Dazu wird von der ersten Festplatte der physikalisch erste Datensektor von 512 Byte Größe in den Speicher geladen, und die Programmkontrolle geht auf das Progrämmchen zu Beginn dieses Sektors über. Die Abfolge der auf diese Weise ausgeführten Anweisungen bestimmt den weiteren Ablauf des Bootvorgangs. Die ersten 512 Byte auf der ersten Festplatte werden deshalb auch als Master Boot Record ( MBR) bezeichnet. Die Zusammenhänge ­ wenngleich hier nur sehr verkürzt und vereinfacht wiedergegeben ­ erlauben bereits zwei für das Verständnis des Folgenden wichtige Beobachtungen: Bis zu diesem Zeitpunkt (Laden des MBR) läuft der Bootvorgang völlig unabhängig vom installierten System auf jedem PC immer gleich ab, und der PC hat bis dahin zum Zugriff auf die Peripherie lediglich die im BIOS gespeicherten Routinen (Treiber) zur Verfügung. 115 4. Booten und Bootmanager Master Boot Record Die Struktur des MBR ist durch eine betriebssystemübergreifende Konven- tion festgelegt. Die ersten 446 Byte sind für Programmcode reserviert.1 Die nächsten 64 Byte bieten Platz für eine Partitionstabelle mit bis zu vier Einträ- gen (vgl. Abschnitt 2.8 auf Seite 67 und Abschnitt 2.9 auf Seite 68).2 Die letz- ten 2 Byte müssen eine feste magische Zahl" (AA55) enthalten: ein MBR, der dort etwas anderes stehen hat, wird vom BIOS und von allen PC-Betriebs- systemen als ungültig angesehen. Bootsektoren Bootsektoren sind die jeweils ersten Sektoren der Festplatten-Partitionen.3 Sie bieten 512 Byte Platz und sind dazu gedacht, Code aufzunehmen, der ein auf dieser Partition befindliches Betriebssystem starten kann. Die Boot- sektoren formatierter DOS-, Windows- oder OS/2-Partitionen tun das auch stets (und enthalten zusätzlich noch wichtige Grunddaten des Dateisystems). Im Gegensatz dazu sind Bootsektoren von Linux-Partitionen ­ auch nach der Anlage eines Dateisystems ­ von Hause aus erst einmal leer (!). Eine Linux- Partition ist daher nicht von selbst startbar, auch wenn sie einen Kernel und ein gültiges Root-Dateisystem enthält. Ein Bootsektor mit gültigem Systemstart-Code trägt in den letzten 2 Byte dieselbe magische" Kennung wie der MBR. Booten von DOS oder Windows 95/98 Im DOS-MBR der ersten Festplatte ist ein Partitionseintrag als aktiv (engl. bootable) gekennzeichnet, was heißt, dass dort nach dem zu ladenden System gesucht werden soll.4 Der DOS-Programmcode im MBR ist die erste Stufe des Bootloaders (engl. first stage bootloader) und überprüft, ob auf der ange- gebenen Partition ein gültiger Bootsektor vorhanden ist. Falls dies der Fall ist, kann der Code in diesem Bootsektor als zweite Stufe" des Bootloaders (engl. secondary stage loader) nachgestartet werden. Dieser lädt nun die Systemprogramme, und schließlich erscheint der gewohnte DOS- Prompt bzw. es startet die Windows 95/98-Oberfläche. Unter DOS lässt sich nur eine einzige primäre Partition als aktiv markieren. Folglich kann das DOS-System nicht auf logischen Laufwerken in einer er- weiterten Partition untergebracht werden. 4.2 Bootkonzepte Das einfachste Bootkonzept" betrifft einen Rechner mit einem einzigen Betriebssystem. Eine verbreitete solche Konfiguration ist DOS oder Win- 1 Der Code selbst ­ und seine Fähigkeiten ­ hängen allerdings sehr wohl von dem Betriebssystem ab, unter dem der MBR angelegt wurde! 2 Ohne die Partitionstabelle gibt es keine Dateisysteme (MS-DOS: Laufwerke), d. h. die Fest- platte ist praktisch nicht zu verwenden. 3 Ausgenommen die erweiterte Partition, die nur ein Behälter" für andere Partitionen ist. 4 Dies bedeutet insbesondere, dass DOS zwingend auf der ersten Festplatte installiert sein muss. 116 4.2. Bootkonzepte dows 95/98 als ausschließliches Betriebssystem auf dem Rechner. Die Ab- läufe in der Startphase in diesem Fall haben wir soeben geschildert. Ein solcher Bootvorgang ist auch für einen Nur-Linux-Rechner denkbar. Dann kann theoretisch auf die Installation von LILO verzichtet werden. Bei einem solchen Szenario wäre es allerdings nicht möglich, dem Kernel wäh- rend des Startens eine Kommandozeile (mit Spezialwünschen zum Startvor- gang, zusätzlichen Hardware-Informationen usw.) mitzugeben. Sobald mehr als ein Betriebssystem auf einem Rechner installiert ist, bieten sich verschiedene Bootkonzepte an: Zusätzliche Systeme von Diskette booten: Ein Betriebssystem wird von Platte geladen, mit Hilfe von Boot-Disketten können alternativ weitere Betriebssysteme vom Disketten-Laufwerk aus gestartet werden. * Bedingung: Ein bootfähiges Diskettenlaufwerk ist vorhanden. * Beispiel: Sie installieren Linux zusätzlich auf Ihrem DOS-, Win- dows 95/98- oder OS/2-System und starten Linux stets von Bootdis- kette. * Vorteil: Sie ersparen sich die doch etwas heikle Bootloader-Installa- tion. * Nachteile: Sie müssen sehr darauf bedacht sein, einen Sicherheitsvor- rat funktionierender Bootdisketten zu haben. Der Start dauert länger. * Dass Ihr Linux ohne Bootdiskette nicht starten kann, mag je nach be- absichtigtem Einsatz Ihres Rechners ein Nachteil oder Vorteil sein. Zusätzliche Systeme zur Laufzeit nachladen: Ein Betriebssystem wird bei jedem Systemstart geladen, weitere können von diesem aus optional nachgeladen werden. * Bedingung: Geeignete Programme zum Nachstarten eines Systems sind vorhanden. * Beispiele: Das Laden von Linux von DOS aus mit Hilfe des Pro- gramms loadlin.exe (vgl. Abschnitt 4.9 auf Seite 139) oder das Hoch- fahren eines NetWare-Servers von DOS aus mit server.exe. Installation eines Bootmanagers: Ein Bootmanager erlaubt, mehrere Sys- teme gleichzeitig auf einem Rechner zu halten und sie abwechselnd zu nutzen. Der Benutzer wählt das zu ladende System bereits während des Bootvorgangs aus; ein Wechsel erfordert den Neustart des Rechners. * Bedingung: Der gewählte Bootmanager harmoniert" mit allen Be- triebssystemen. * Beispiele für (zumindest unter bestimmten Bedingungen) mit Linux harmonierende Bootmanager sind OS/2 (vgl. dazu Abschnitt 4.7.3 auf Seite 133) oder der DOS-Bootloader boot.sys. Im folgenden wird die Installation und Konfiguration von LILO, dem Stan- dard-Bootmanager für Linux-Systeme, näher erläutert ­ eine gründliche Be- schreibung der Fähigkeiten von LILO findet sich in [Alm96]5. Es schließen sich Ausführungen zu loadlin an. 5 Mit lpr /usr/doc/packages/lilo/user.dvi kann diese Datei auf dem Drucker ausgegeben werden. 117 4. Booten und Bootmanager 4.3 LILO stellt sich vor: Ein Überblick LILO ­ Ihr Auftritt! Der Linux-Bootloader ist für die Installation im MBR geeignet (Einzelhei- ten später auf der nächsten Seite und in Abschnitt 4.5 auf Seite 127). LILO hat Zugriff auf beide im Real Modus bekannten Festplatten und ist bereits von seiner Installation her in der Lage, alle benötigten Daten auf den rohen" Festplatten6, ohne Informationen zur Partitionierung, zu finden. Deshalb las- sen sich auch Betriebssysteme von der zweiten Festplatte booten. Die Ein- träge in der Partitionstabelle werden im Gegensatz zum DOS-Bootvorgang ignoriert. Der Hauptunterschied zum DOS-Bootvorgang besteht jedoch in der Möglich- keit, beim Booten zwischen dem Laden verschiedener installierter Betriebs- systeme ­ einschließlich Linux ­ wählen zu können. Nach dem Laden des MBR in den Speicher wird LILO gestartet; LILO kann nun seinerseits dem Benutzer die Auswahl aus einer Liste vorinstallierter Systeme anbieten (siehe auf dieser Seite). Was ist LILO und was kann er? LILO ist ein vielseitiger Bootmanager. Er kann beim Systemstart folgende Systemprogramme laden und starten: * Bootsektoren von Partitionen (Start eines Betriebssystems von dieser Par- tition) * Linux-Kernel (Start von Linux) Das Zweite können die meisten anderen Bootmanager nicht. Zudem bietet er die wichtige Gelegenheit, dem Linux-Kernel eine Komman- dozeile mitzugeben. Zu Sicherheitszwecken können die LILO-Dienste ganz oder teilweise passwortgeschützt werden. Wie sieht das Booten mit LILO aus? Wenn LILO startet, gibt er den Text LILO und eine Begrüßungsmeldung aus ­ letztere haben Sie ihm bei der Konfiguration selbst mitgegeben (vgl. Abschnitt 4.4.2 auf Seite 124). Danach erscheint eine Eingabeaufforderung (Prompt): boot: Hier wählen Sie durch Eingabe eines Namens Ihr gewünschtes Betriebssys- tem aus, das dann sofort gestartet wird. Die Namen für Ihre Betriebssysteme haben Sie gleichfalls selbst vorher bei der Konfiguration vergeben. Einem Li- nux-Kernel können Sie an dieser Stelle eine Kommandozeile mitgeben. Eine Liste aller Namen können Sie sich mit Tab (= Taste Tab ) anzeigen lassen. 6 Von einem rohen" Datenträger (engl. raw device) spricht man, wenn auf ein Blockgerät (Festplatte, Partition, Diskette ... ) direkt als einzelne (Geräte-)Datei zugegriffen wird, nicht über ein darauf angelegtes Dateisystem. 118 4.3. LILO stellt sich vor: Ein Überblick Woraus besteht LILO? Die LILO-Startmaschinerie umfasst die folgenden Bestandteile7: * einen LILO-Bootsektor mit einem Anfangsstück ( erste Stufe") des LI- LO-Codes, das den eigentlichen LILO beim Systemstart aktiviert * den LILO-Maschinencode (sein Herz"). Standardlokation: /boot/boot.b * eine Map-Datei, in der LILO bei seiner Installation einträgt, wo die Li- nux-Kernel und sonstigen Daten, die er braucht, zu finden sind. Standardlokation: /boot/map * optional: eine Message-Datei, deren Inhalt vor der LILO-Bootauswahl als Begrüßungsbotschaft ausgegeben wird. Übliche Lokation: /boot/message (oder ähnlich) * die verschiedenen Linux-Kernel und Bootsektoren, die LILO zum Starten anbieten soll. Jeder Schreibzugriff (auch durch Dateiverschiebung) auf eines dieser Be- standteile macht die Map-Datei ungültig und daher eine Neu-Installation von LILO erforderlich (siehe auf Seite 127)! Dies betrifft vor allem den Wechsel zu einem neuen Linux-Kernel. Wo kann LILO installiert werden? Gemeint ist mit dieser Frage in Wirklichkeit meist der LILO-Bootsektor ( erste Stufe"). Bevor wir darauf eingehen, wollen wir aber gleich hier auf eine generelle Einschränkung hinweisen: Dies kann man durch eine kleine Extrapartition erreichen die unter dem Ver- zeichnis /boot eingehängt (gemountet) wird und die komplett innerhalb der ersten 1024 Zylinder liegt. Alle Bestandteile der LILO-Startmaschinerie und das Kernelimage /boot/vmlinuz müssen bei Festplatten in den ersten 1024 Zylindern liegen! Dies kann man durch eine kleine Extrapartition erreichen, die unter dem Verzeichnis /boot eingehängt ( gemountet") wird und die komplett in- nerhalb der ersten 1024 Zylinder liegt. Nur diese physikalischen Bereiche sind schon während der Systemstartphase mit den BIOS-Treibern erreichbar. Noch dazu ist man in der Regel auf die ersten beiden Festplatten eingeschränkt. Wenn Sie ein älteres BIOS haben, gilt möglicherweise zudem: das zusätzliche Vorhandensein von (E)IDE-Fest- platten schließt gleichfalls vorhandene SCSI-Geräte von der Bootfähigkeit aus. 7 Übrigens: Die von LILO installierten Bootsektoren enthalten eine Byte-Sequenz, die auch für Bootsektorviren charakteristisch ist. Daher ist es nicht verwunderlich, wenn DOS-Virenscanner in Dateien wie /boot/chain.b oder /boot/os2_d.b das AIRCOP-Bootsektor-Virus ge- funden zu haben glauben. ;-) 119 4. Booten und Bootmanager Erst ein neueres BIOS lässt in der Regeln den Zugriff auf weitere Geräte zu: so etwa in Verbindung mit EIDE-Festplattencontrollern auf bis zu vier EI- DE-Platten. Viele moderne BIOS/SCSI-Hostadapter Kombinationen erlauben sogar das Nach-vorne-Schieben" von SCSI-Platten hinsichtlich der Bootfä- higkeit. Zur Nutzung dieser Möglichkeit mit LILO vgl. die Beschreibung der disk-Option auf Seite 125. All das fassen wir der Einfachheit halber unter dem Schlagwort 1024-Zylin- der-Grenze zusammen. Sie ist schon bei der Partitionierung Ihrer Festplatten vor der Linux-Erstinstallation unbedingt zu berücksichtigen ­ danach ist es zu spät und macht Ihnen möglicherweise eine Menge zusätzlicher Arbeit! Einzelheiten zum Umgang damit später unter Abschnitt 4.8.2 auf Seite 136. Für den LILO-Bootsektor stehen folgende Installationsziele zur Auswahl: * Auf einer Diskette Dies ist die sicherste, aber auch langsamste Methode, mit LILO zu booten (siehe auf Seite 130). Wem auch nach der Lektüre dieses Kapitels die Veränderung der Bootsektoren ein Gräuel ist, der sollte (zunächst) die Disketten-Variante wählen. * Im Bootsektor einer primären Linux-Partition der ersten Festplatte Diese Variante lässt den MBR unberührt. Vor dem Booten muss diese Partition mit fdisk als aktiv markiert werden. Wenn Linux ganz auf lo- gischen Laufwerken oder Partitionen der zweiten Festplatte eingerichtet wurde, bleibt für LILO nur der Bootsektor der erweiterten Partition der ersten Festplatte ­ sofern diese existiert ­ übrig. Linux fdisk kann auch diese Partition aktivieren. Wenn Sie mehrere Betriebssysteme von der Festplatte booten wollen, ist dieses Verfahren allerdings etwas umständlich: jedesmal vor einem Be- triebssystem-Wechsel müssen Sie unter dem bisherigen Betriebssystem dessen Startpartition deaktivieren und die des nächsten Betriebssystem aktivieren. Die folgenden beiden Verfahren sind für diesen Fall besser ge- eignet. * Im Master Boot Record Diese Variante bietet die größte Flexibilität. Insbesondere ist dies die ein- zige Möglichkeit, Linux von Festplatte aus zu booten, wenn sämtliche Li- nux-Partitionen auf der zweiten Festplatte liegen, und auf der ersten keine erweiterte Partition zur Verfügung steht. Ein Veränderung des MBR birgt aber bei unsachgemäßer Installation auch gewisse Risiken. Die nötigen Sicherheitsmaßnahmen kommen in Abschnitt 4.5 auf Seite 127 zur Spra- che. * Wenn Sie bisher einen anderen Bootmanager verwendet haben ... ... und ihn weiterverwenden wollen, gibt es, je nach dessen Fähigkeiten, noch weitere Möglichkeiten. Ein häufiger Fall: Sie haben eine primäre Li- nux-Partition auf der zweiten Platte, von der aus Sie Linux starten wollen. Ihr anderer Bootmanager wäre imstande, diese Partition über den Boot- sektor zu starten. Dann können Sie diese Partition startbar machen, indem Sie LILO in ihrem Bootsektor installieren, und sie dem anderen Bootma- nager als startbar melden. 120 4.4. Ein LILO nach Maß: Konfiguration Vorsicht aber mit dem Wunsch, eine logische Linux-Partition startbar zu machen, indem Sie LILO dort installieren: Es geht oft gut; aber selbst wenn Ihr anderer Bootmanager logische Partitionen starten könnte, ist der Erfolg z. Z. ausdrücklich nicht garantiert. Sie können es natürlich ausprobieren, am besten zunächst mit einer ganz kleinen Linux-Installation. Möglicherweise haben Sie Glück ­ besser ist es aber auf jeden Fall, doch wenigstens eine primäre startbare Linux- Partition einzuplanen! 4.4 Ein LILO nach Maß: Konfiguration Als flexibler Bootmanager bietet LILO zahlreiche Möglichkeiten, seine Kon- figuration den individuellen Erfordernissen anzupassen. Die wichtigsten Op- tionen und ihre Bedeutung werden im folgenden erläutert. Für eine umfas- sende Beschreibung sei auf [Alm96] verwiesen. Die Konfiguration von LILO wird in der Datei /etc/lilo.conf einge- tragen. Bei einer Erstinstallation von Linux empfehlen wir, dies zunächst von YaST durchführen zu lassen. Eine eventuell nötige Nachbearbeitung von lilo.conf kann auf der von YaST erstellten Datei aufbauen. Die Datei /etc/lilo.conf sollte nur für `root' lesbar sein, da sie Passwörter enthalten kann (vgl. Abschnitt 4.4.2 auf Seite 124); dies ist Standard bei SuSE Linux; schauen Sie einmal nach ­ im Zweifelsfall hilft der Befehl: erde: # chmod 0600 /etc/lilo.conf Es ist ratsam, die bei der letzten LILO-Installation verwendete Konfigura- tionsdatei sorgfältig aufzubewahren und vor jeder Änderung eine Sicherheits- kopie herzustellen. Eine Änderung wird erst wirksam, indem Sie LILO mit der neuesten Fassung der Konfigurationsdatei neu installieren (Abschnitt 4.5 auf Seite 127)! 4.4.1 Der Aufbau der Datei lilo.conf Die /etc/lilo.conf beginnt mit einem globalen Abschnitt (engl. glo- bal options section) mit allgemeinen Einstellungen, gefolgt von einem oder mehreren System-Abschnitten (engl. image sections) für die einzelnen Be- triebssysteme, die LILO starten soll. Ein neuer Systemabschnitt wird jeweils eingeleitet durch eine Zeile mit der Option image oder other. Die Reihenfolge der einzelnen Betriebssysteme in der lilo.conf ist nur insofern von Bedeutung, als das zuerst in der Liste aufgeführte System auto- matisch gebootet wird, wenn keine Benutzereingabe erfolgt ­ gegebenenfalls nach Ablauf einer vorkonfigurierten Wartezeit (s. u. die Optionen delay und timeout). Datei 4.4.1 auf der nächsten Seite zeigt eine Beispielkonfiguration auf ei- nem Rechner mit Linux und DOS. Zur Auswahl beim Booten sollen ste- hen: ein neuer und ein alter Linux-Kernel auf der gegenwärtigen Root-Par- tition (primär, auf der zweiten Platte), sowie MS-DOS (oder Windows 95) auf /dev/hda1. 121 4. Booten und Bootmanager # LILO Konfigurations-Datei # Start LILO global Section boot=/dev/hda # LILO Installations- ziel: MBR backup=/boot/MBR.hda.970428 # Backup-Datei für al- ten MBR # vom 28. Apr 1997 #compact # faster, but won't work on all systems. #linear message=/boot/message # LILO's Begrüßungsmeldung prompt password = q99iwr4 # Allgemeines LILO Passwort timeout=100 # 10 s am Prompt warten, be- vor Voreinstellung # gebootet wird vga = normal # normaler Textmodus (80x25 Zeichen) # End LILO global section # Linux bootable partition config begins image = /boot/vmlinuz # Voreinstellung root = /dev/hdb3 # Root- Partition für Kernel read-only label = Linux # Linux bootable partition config ends # Second Linux bootable partition config image = /boot/vmlinuz.old root = /dev/hdb3 read-only label = Linux.old # 2nd Linux bootable partition config ends # DOS bootable partition config begins other = /dev/hda1 label = DOS loader = /boot/chain.b table = /dev/hda # DOS bootable partition config ends Datei 4.4.1: Beispielkonfiguration in /etc/lilo.conf 122 4.4. Ein LILO nach Maß: Konfiguration In /etc/lilo.conf ist alles von einem # bis zum Zeilenende Kommentar. Er wird ­ ebenso wie Zwischenraum ­ von LILO ignoriert und kann zur Verbesserung der Lesbarkeit verwendet werden. Gehen wir einmal die wichtigsten Zeilen Schritt für Schritt durch. Die weite- ren Optionen sind in Abschnitt 4.4.2 auf Seite 124 beschrieben. * Globaler Abschnitt (Parameterteil) ­ boot= Device auf dessen erstem Sektor der LILO-Bootsektor installiert wer- den soll (das Installationsziel). kann sein: ein Diskettenlaufwerk (/dev/fd0), eine Partition (z. B. /dev/hdb3), oder eine ganze Platte (z. B. /dev/ hda): letzteres bedeutet die Installation im MBR. Voreinstellung: Fehlt diese Angabe, wird LILO auf der gegenwärtigen Linux-Rootpartition installiert. ­ prompt Erzwingt das Erscheinen der LILO-Eingabeaufforderung ( Prompt). Die Voreinstellung ist: kein Prompt! (Vgl. Abschnitt 4.4.2 auf der nächsten Seite, Option delay.) Empfohlen, sobald LILO mehr als nur ein System starten soll. Zusam- men damit sollte auch die timeout-Option gesetzt werden, damit ein automatischer Reboot möglich ist, wenn keine Eingabe am Prompt er- folgt. ­ timeout= Setzt eine Auszeit für Eingaben am Prompt und ermöglicht dadurch einen automatischen Reboot, wenn nicht rechtzeitig eine Eingabe er- folgt ist. ist dabei die verbleibende Zeit in Zehn- telsekunden für eine Eingabe. Drücken von Shift am Prompt lässt die Auszeit von neuem starten. Voreinstellung: keine zeitliche Begren- zung, d. h. es wird kein automatischer Reboot durchgeführt! * Linux-Abschnitt ­ image= Hier muss der Name des zu bootenden Kernel-Images stehen. Dies wird in der Regel /boot/vmlinuz sein ­ bzw. bei älteren SuSE Linux-Systemen (vor Version 6.0) /vmlinuz oder /zImage. ­ label= Innerhalb der /etc/lilo.conf eindeutiger, aber sonst frei wählba- rer Name für das System (z. B. Linux). Maximale Länge 15 Zeichen: möglichst nur Buchstaben, Ziffern und Unterstrich ­ keine Leerzei- chen, Sonderzeichen wie deutsche Umlaute u. Ä.8. Voreinstellung: der Dateiname des Kernel-Images (z. B. /boot/vmlinuz). Durch Eingabe dieses Namens wählen Sie beim Systemstart an der LI- LO-Eingabeaufforderung das gewünschte Betriebssystem zum Star- ten aus. Bei mehreren Systemen empfiehlt es sich, eine nähere Be- 8 Die genauen Regeln für erlaubte Zeichen finden Sie in [Alm96], Abschnitt 3.2.1. 123 4. Booten und Bootmanager schreibung der Namen und Systeme in einer message-Datei (s. Ab- schnitt 4.4.2 auf der nächsten Seite, Option message) bereitzustellen. ­ root= Damit gibt LILO dem Kernel die Rootpartition (z. B. /dev/hda2) des Linux-Systems an. Zur Sicherheit empfohlen! Wird diese Option weggelassen, nimmt der Kernel die in ihm selbst eingetragene Root- partition9. * Anderes System ­ other= Mit other werden dem LILO Startpartitionen anderer Systeme zum Booten bekanntgemacht (z. B. /dev/hda1). ­ loader= Für das Laden eines fremden Bootsektors baut LILO in seiner Map- Datei einen Pseudo-MBR" (beim Booten startet erst LILO den Pseu- do-MBR, und dieser dann den fremden Bootsektor). Diese Option gibt die Datei an, aus der der Code für den Pseudo-MBR zu nehmen ist. Voreinstellung und generell richtig: /boot/chain.b . Manchmal soll ein Betriebssystem, das von der ersten Festplatte ge- bootet werden will (z. B. DOS), dennoch mit LILO von einer anderen Platte gestartet werden. Die Zusatzoptionen map-drive= und to= gestatten es, diese beiden Platten anhand ihrer BIOS-Gerätenummern zu vertauschen". Beispiel: Datei 4.4.2. Der Loader os2_d.b dient dazu, OS/2 von der zweiten Festplatte zu booten10. Neu ab LILO-Version 20: auch bei diesem Loader muss das Vertauschen" der ersten beiden Festplatten nun ausdrücklich vorge- schrieben werden (wie im Beispiel Datei 4.4.2). # Booting DOS from the second hard drive # DOS bootable partition config begins other = /dev/hdb1 label = DOS loader = /boot/chain.b map-drive = 0x80 # first hd: BIOS number 0x80 to = 0x81 # second hd: BIOS number 0x81 map-drive = 0x81 to = 0x80 table = /dev/hdb # DOS bootable partition config ends Datei 4.4.2: /etc/lilo.conf Auszug: DOS von 2. Festplatte booten ­ table= muss das Quell-Device für die Partitionstabelle angeben, die in den Pseudo-MBR soll (in der Regel /dev/hda oder /dev/ sda). 9 Zu sehen mit dem Kommando rdev . 10 any_b.b (Booten von B:) und any_d.b (Booten von der zweiten Festplatte) sind seit der LILO-Version 20 obsolet. 124 4.4. Ein LILO nach Maß: Konfiguration ­ label= Der (wiederum frei wählbare) Name für dieses System. Empfohlen. Die Voreinstellung ­ der bloße Device-Name der Partition ­ ist beim Booten nicht so aussagekräftig. 4.4.2 Weitere optionale Konfigurationsmöglichkeiten (Auswahl) Im letzten Abschnitt wurden nur die in /etc/lilo.conf minimal nötigen Einträge besprochen. Weitere nützliche Einstellungen folgen nun hier. Diejenigen Optionen, die ausdrücklich als Image-Optionen gekennzeichnet sind, gehören in den Abschnitt eines einzelnen Betriebssystems. Die anderen sind für den globalen Parameterteil von /etc/lilo.conf gedacht. * backup= Die Datei, in der LILO ein Backup desjenigen Bootsektors ablegt, in den er anschließend installiert wird. Hierfür ist /boot/boot.xxxx die Vor- gabe, wobei xxxx die interne Gerätenummer der Installationspartition ist11. Wir empfehlen, einen leichter deutbaren Namen zu verwenden, etwa wie oben im Beispiel (mit Gerätenamen und Datumsangabe). Sie verzichten damit auf das eingebaute Uninstall-Feature von LILO; aber dies macht man unserer Meinung nach sowieso besser mit aller Sorgfalt von Hand (siehe auf Seite 128). Wenn die Backup-Datei vorher schon vorhanden ist, legt LILO kein neu- es Backup an! Sorgen Sie daher dafür, dass hier jeweils ein neuer, unge- brauchter Dateiname verwendet wird. * compact Diese Option empfiehlt sich bei Installation des LILO auf Diskette. LI- LO versucht dann, beim Start mehrere Sektoren auf einmal zu lesen und bootet u. U. schneller. Dies funktioniert leider nicht auf allen Maschinen. Bei Installation des LILO sollten Sie darauf verzichten: es ist sicherer, und der Zeitgewinn beträgt nur wenige Sekunden. * disk= bios= cylinders= heads= sectors= Hier kann dem LILO für einzelne Festplatten direkt vorgeschrieben wer- den, welche BIOS-Gerätenummer und Geometrie er zur Adressierung von Sektoren dieser Platte verwenden soll. Nur sehr selten erforderlich! Wichtigste Anwendung: IDE-SCSI-Mischsysteme: Wenn Sie ein BIOS haben, das die Bootrei- henfolge SCSI vor IDE erlaubt, und Sie diese Möglichkeit nutzen wol- len, muss LILO extra über die geänderte Reihenfolge der Festplatten aus BIOS-Sicht informiert werden. Dies geschieht durch Zusatzeintrag in den 11 Dies ist zu finden in den Kernelsourcen in /usr/src/linux/init/main.c, Funktion parse_root_dev(). 125 4. Booten und Bootmanager globalen Teil der lilo.conf wie z. B. in Datei 4.4.3 für den Fall eines Systems mit je einer IDE- und SCSI-Platte. # Enable LILO to correctly access /dev/sda and /dev/hda # at boot time if their boot order is interchanged in # the BIOS: disk = /dev/sda # The SCSI disk is regarded as ... bios = 0x80 # ... first BIOS disk; disk = /dev/hda # the IDE disk is regarded as ... bios = 0x81 # ... second BIOS disk. Datei 4.4.3: lilo.conf Auszug: Bootreihenfolge: SCSI vor IDE * linear Die Angabe dieser Option bewirkt, dass bei der Installation von LILO sämtliche Referenzen auf Plattensektoren als logische anstelle physika- lischer Adressen abgelegt werden, so dass sie unabhängig von der Fest- plattengeometrie werden. Diese Option ist für den Fall gedacht, dass bei manchen Plattencontrollern das BIOS beim Systemstart eine andere Geo- metrie erkennt als das laufende Linux-System. Nur selten erforderlich! Die linear Option befreit nicht von der 1024-Zylinder-Grenze, die durch die BIOS-Geometrie der Boot-Festplatte festgelegt ist. Vgl. auch http://sdb.suse.de/sdb/de/html/kgw_lilo_linear. html. * message= Verweist auf eine Textdatei, die von LILO beim Systemstart als erstes ausgegeben wird. Sie soll nicht mehr als 24 Zeilen haben (sonst scrollt sie weg) und kann z. B. einen Überblick über die anstehende LILO-Bootaus- wahl geben. Eine solche Startmeldung kennen Sie übrigens bereits von der mitgelieferten SuSE-Bootdiskette. Empfohlen. Wird diese Option verwendet, so gehört die message-Datei zur LILO- Startmaschinerie. Jede Änderung dieser Datei macht eine Neuinstallation von LILO erforderlich (Abschnitt 4.5 auf der nächsten Seite)! * password= Kann sowohl am Anfang im Parameter-Abschnitt, als auch in einzel- nen Systemabschnitten stehen. Sichert den Zugriff auf die LILO-Dienste bzw. auf das Booten des betreffenden Systems mit einem Passwort ab. Wenn Sie damit Ernst machen, sollten Sie das Passwort nach der ers- ten Verwendung dieser lilo.conf gleich wieder herauslöschen ­ als root können Sie sowieso jederzeit durch Neu-Installation von LILO ein neues Passwort setzen. ­ Es empfiehlt sich, zusätzlich die Option restricted zu setzen. Andernfalls kann man mit einem Parameter wo- möglich direkt eine Shell starten; vgl. die Manual-Page von lilo.conf (man lilo.conf)! * read-only Mit dieser Image-Option weist LILO den betreffenden Kernel an, die Rootpartition zunächst read-only zu mounten, wie es beim Start von 126 4.5. Installation und De-Installation von LILO Linux- Systemen generell üblich ist. Wird diese Option weggelassen, ver- wendet der Kernel die in ihm selbst eingetragene Voreinstellung12. * delay= Wenn der Prompt nicht zwingend vorgeschrieben worden ist, kann der Benutzer dennoch zur Startzeit von LILO durch Tastendruck ( Shift , Strg , Alt ) einen Prompt anfordern. Die delay Option gibt die Zeit vor, die LILO nach seinem Start auf einen solchen Tastendruck wartet, bevor er automatisch das erste System aus seiner Betriebssystem-Liste lädt. Die Voreinstellung ist 0, d. h. keine Wartezeit. Die delay Option ist natürlich überflüssig, wenn mit prompt sowieso ein Prompt zwingend angefordert wird. * vga= Wählt den VGA-Textmodus beim Start. Gültige Werte für sind normal (für 80x25), ext (für 80x50) oder ask (beim Booten fragen). * append="" Image-Option für Linux-Kernel. Ermöglicht die Übergabe von Kernel- Parametern wie etwa bei der Übergabe von Hardwarekomponenten, ge- nauso wie dies am LILO-Prompt möglich ist. Der Kernel erhält zuerst die append Zeile, dann die Eingaben am Prompt; daher überwiegen im Zweifelsfall die Eingaben am Prompt. Zum Beispiel: append="mcd=0x300,10" 4.5 Installation und De-Installation von LILO Bei einer Neuinstallation von Linux führt YaST den Benutzer interaktiv durch die nötigen Schritte. Ein Eingreifen von Hand ist bei der Installation von LILO i. Allg. nicht nötig. Hier möchten wir aber davon ausgehen, dass LILO mit speziellen Optionen in ein bestehendes System integriert werden soll. Die Installation eines Bootmanagers ist ein tiefer Eingriff ins System und dementsprechend heikel. Vergewissern Sie sich vor der Installation von LILO auf jeden Fall, dass Sie Ihr Linux, und möglichst auch Ihre ande- ren vorhandenen Betriebssysteme, von Diskette booten können! Vor allem fdisk muss zur Verfügung stehen. Installation nach Änderung der Konfiguration Wenn sich an den LILO-Komponenten (siehe auf Seite 119) etwas geändert hat oder wenn Sie Ihre Konfiguration in /etc/lilo.conf modifiziert ha- ben, müssen Sie LILO neu installieren. Dies geschieht durch einfachen Auf- ruf des sog. Map-Installers: erde: # /sbin/lilo 12 Zu sehen mit dem Kommando rdev -R . Sie ist bei den Installations- kernel und auch bei einem neu-übersetzten Kernel ohnehin read-only (prüfen!), daher braucht man diese Option normalerweise nicht. 127 4. Booten und Bootmanager Was dann geschieht, ist, dass LILO ein Backup des Ziel-(Boot-)Sektors an- legt, seine erste Stufe" in diesen Sektor schreibt und eine neue Map-Datei er- zeugt (siehe auf Seite 119). LILO meldet nacheinander die installierten Sys- teme ­ z. B. im Fall unserer obigen Beispielkonfiguration (s. Ausgabe 4.5.1): Added Linux* Added Linux.old Added DOS Ausgabe 4.5.1: Ausgaben beim Aufruf von LILO Nach abgeschlossener Installation kann der Rechner neu gestartet werden: erde: # shutdown -r now Nachdem das BIOS seinen Systemtest ausgeführt hat, meldet sich LILO mit seiner Eingabeaufforderung, an der Sie dem LILO Parameter für den Ker- nel übergeben und das gewünschte Bootimage auswählen können. Mit Tab lassen sich die Bezeichnungen der installierten Konfigurationen auflisten. Installation nach Neu-Kompilierung des Kernels Wenn Sie einen neu kompilierten Kernel in Ihr Bootkonzept aufnehmen wol- len, haben Sie neben der LILO-Neuinstallation von Hand noch eine weitere, und zwar bequemere Möglichkeit: Die Organisation der Befehle zum Konfigurieren und zum Erzeugen des Kernels ist niedergelegt in der Datei /usr/src/linux/Makefile; dort soll INSTALL_PATH=/boot festgelegt werden (vgl. Abschnitt 13.5 auf Seite 357). Dieses Makefile verfügt über ein target namens bzlilo, das nach einer Kernel-Kompilierung automatisch den derzeit als /boot/vmlinuz (früher /vmlinuz) installierten Kernel nach /boot/ vmlinuz.old kopiert, den neu erzeugten Kernel nach /boot/vmlinuz schreibt und schließlich LILO neu installiert. Dazu reicht: erde:/usr/src/linux # make bzlilo Das ist freilich nur sinnvoll, wenn Ihre /etc/lilo.conf auf diesen LI- LO-Aufruf vorher vorbereitet worden ist und Ihr bisheriger Kernel wirklich unter /boot/vmlinuz liegt. Unter Ihren Images sollten Sie den neuen Ker- nel ­ und zur Sicherheit auch den alten ­ aufführen; etwa so, wie es in Da- tei 4.4.1 auf Seite 122 geschehen ist. Dadurch können Sie am LILO-Bootprompt sowohl den neuen Kernel star- ten als auch den alten ­ funktionierenden ­ Kernel (Name im Beispiel: Linux.old). So bauen Sie eine weitere Sicherheitsstufe ein, die dann von Nutzen ist, wenn das System mit dem neuen Kernel nicht booten kann. Zum Erzeugen eines neuen Kernels siehe Kapitel 13 auf Seite 353 ff. 128 4.5. Installation und De-Installation von LILO Entfernen von LILO Die Deinstallation eines Bootmanagers ist ein tiefer Eingriff ins System und dementsprechend heikel. Vergewissern Sie sich vor der Deinstallation von LILO auf jeden Fall, dass Sie Ihr Linux, und möglichst auch Ihre an- deren Betriebssysteme ­ soweit vorhanden ­ von Diskette booten können! Sie geraten sonst möglicherweise in die unangenehme Lage, nicht mehr auf die Betriebssysteme auf Ihrer Festplatte zugreifen zu können. Vielleicht wird es eines Tages doch einmal nötig, LILO wieder zu deinstal- lieren :-( Dies geschieht, indem der Ziel-(Boot-)sektor, in dem LILO in- stalliert worden ist, seinen vorigen Inhalt zurückerhält. Unter Linux ist das kein Problem, wenn ein gültiges Backup vorhanden ist (vgl. Abschnitt 4.4.2 auf Seite 124, Option backup). Ein Bootsektor-Backup wird ungültig, wenn die betreffende Partition ein neues Dateisystem erhalten hat (DOS-Welt: formatiert worden ist). Die Partitionstabelle in einem MBR-Backup wird ungültig, wenn die betref- fende Festplatte zwischenzeitlich anders partitioniert worden ist. Solche Backups sind Zeitbomben": am besten sofort löschen! Das Zurückspie- len veralteter Backups in diese Systemsektoren ist ein ziemlich sicherer Weg zu massivem Datenverlust! Am einfachsten ist es, einen DOS-, Windows- oder OS/2-MBR wiederherzu- stellen. Es geschieht mit dem MS-DOS-Befehl (verfügbar ab DOS-Version 5.0): C:\> fdisk /mbr bzw. dem OS/2-Befehl: C:\> fdisk /newmbr Diese Befehle schreiben nur die 446 ersten Bytes (den Boot-Code) in den MBR zurück und lassen die gegenwärtige Partitionstabelle unangetastet13. Nicht vergessen: Mit fdisk die von jetzt an gewünschte Startpartition wie- der als aktiv (engl. bootable) kennzeichnen; die MBR-Routinen von DOS, Windows, OS/2 brauchen das! Ansonsten legen Sie zunächst von dem fraglichen LILO-Sektor ein weiteres frisches Backup an ­ sicher ist sicher. Dann prüfen Sie ­ wenigstens zweimal ;-) ­ ob Ihre alte Backup-Datei die richtige ist und ob sie genau 512 Byte groß ist. Schließlich spielen Sie sie dann zurück. Das Ganze geht mit den folgenden Befehlen (dabei if= und of= nicht verwechseln!!): * Wenn LILO in Partition yyyy (z. B. hda1, hda2, ... ) residiert: erde: # dd if=/dev/yyyy of=Neue-Datei bs=512 count=1 erde: # dd if=Backup-Datei of=/dev/yyyy * Wenn LILO im MBR der Platte zzz (z. B. hda, sda) residiert: 13 Außer, wenn der MBR (siehe auf Seite 116) wegen einer falschen magischen Zahl" als im ganzen ungültig behandelt wird: dann wird die Partitionstabelle genullt!! 129 4. Booten und Bootmanager erde: # dd if=/dev/zzz of=Neue-Datei bs=512 count=1 erde: # dd if=Backup-Datei of=/dev/zzz bs=446 count=1 Der letzte Befehl ist vorsichtig" und schreibt gleichfalls nicht in die Partiti- onstabelle. Auch hier nicht vergessen: Mit fdisk anschließend die von jetzt an gewünschte Startpartition wieder als aktiv (engl. bootable) kennzeichnen. Übrigens: beachten Sie, wie schnell so ein Bootsektor-Backup geht! Zur häu- figeren Anwendung empfohlen. 4.6 Linux-Bootdiskette erzeugen Eine Linux-Bootdiskette besteht - vereinfacht gesagt - aus einem oder mehreren Linux-Kerneln, eventuell gemanagt von LILO. Sie dient dem Zweck, Ihr Linux-System auf der Festplatte auch dann zu starten, wenn das Booten direkt von der Platte nicht mehr möglich ist. Mögliche Anlässe dafür können sein: MBR überschrieben, falsch konfigurierter Bootmanager, Fehler bei der LILO-Installation. Eine solche Bootdiskette lädt nur den Kernel: alles andere (init, Startskrip- ten, wichtige Systemprogramme) wird von Ihrem System erwartet und muss nach wie vor funktionsfähig sein. Die Verbindung von der Bootdiskette zum System auf der Festplatte wird dadurch hergestellt, dass in dem Kernel die betreffende Root-Partition als Root-Device eingestellt wird. Dies ist nicht zu verwechseln mit den SuSE-Bootdisketten für Installations- und Rettungssystem, von denen Sie anhand der Abbilddateien (engl. image files) unter /disks auf der ersten CD jederzeit neue Exemplare herstellen können (vgl. Abschnitt 16.5 auf Seite 432). Bootdiskette ohne LILO Wenn Sie in der glücklichen Lage sind, dass Ihr Kernel beim Starten keine zusätzliche Kommandozeile mit Hardware-Info usw. benötigt14, besteht der schnellste Weg zu einer Bootdiskette für Ihr Linux-System einfach darin, Ihren aktuellen Kernel auf eine rohe, fehlerfreie Diskette zu schreiben und, falls nicht schon vorher geschehen, das Root-Device richtig einzustellen: erde: # /sbin/badblocks -v /dev/fd0 1440 erde: # dd if=Ihr_Kernel of=/dev/fd0 bs=18k erde: # rdev /dev/fd0 Ihre_Root_Partition erde: # rdev -R /dev/fd0 1 Der erste Befehl prüft die Diskette auf fehlerhafte Blöcke (1 Block = 1 k). Der letzte Befehl sorgt dafür, dass der Kernel die Root-Partition zunächst read-only mountet, wie es sich gehört (die Systemstart-Skripten verlassen sich darauf). 14 Dies ist der Normalfall, wenn Sie Unterstützung für den Festplatten-Controller in den Kernel hineincompiliert haben ( monolithischer" Kernel). 130 4.6. Linux-Bootdiskette erzeugen Bootdiskette mit LILO Eine komfortablere Bootdiskette mit Begrüßungsmeldung, Eingabeaufforde- rung für Kernel und Kernelparameter sowie den sonstigen LILO-Goodies wird erzeugt, indem man eine komplette LILO-Startmaschinerie auf die Dis- kette überträgt (vgl. auf Seite 119). Dazu braucht die Diskette ein Dateisys- tem, am besten minix. Gehen Sie zum Selbermachen im Einzelnen wie folgt vor: * Auf neuer, leerer Diskette ein minix-Dateisystem anlegen ­ zur Sicher- heit mit Fehlerprüfung ­ und, wenn erfolgreich, mounten, z. B. unter /mnt: erde: # /sbin/mkfs.minix -c /dev/fd0 1440 erde: # /bin/mount /dev/fd0 /mnt * Ihre Kernel-Dateien und die LILO-Datei /boot/boot.b nach /mnt (d. h. auf die Diskette) kopieren. * Optional: Eine Datei /mnt/message für die Begrüßungsmeldung anle- gen. * In /mnt eine eigene lilo.conf anlegen wie in Datei 4.6.1 auf der nächsten Seite. Natürlich müssen Sie noch die tatsächliche Root-Partition statt Ihr_Root_Device eintragen: # LILO Konfigurations-Datei Bootdiskette # Start LILO global Section boot=/dev/fd0 # Installationsziel: Floppy install=/mnt/boot.b # Natürlich LILO und map=/mnt/map # Map-Datei auf die Floppy! message=/mnt/message # optional prompt timeout=100 # Warten am Prompt: 10 s vga = normal # # End LILO global section ## Linux bootable partition config begins image = /mnt/vmlinuz # default root = /dev/Ihr_Root_Device # Root- Partition hierher! label = linux # Linux bootable partition config ends ## Systemabschnitte für weitere Kernel hier: Datei 4.6.1: lilo.conf für Bootdiskette * Wenn Sie eine initrd verwenden, bitte auch diese in die lilo.conf eintragen; vgl. die Hinweise in Abschnitt 16.2.3 auf Seite 419. * LILO mit dieser lilo.conf installieren: erde: # /sbin/lilo -C /mnt/lilo.conf * Floppy unmounten", fertig! erde: # /bin/umount /mnt 131 4. Booten und Bootmanager * Nicht vergessen: Bootdiskette ausprobieren, ob sie wirklich geht :-) 4.7 Beispielkonfigurationen Wenn Ihr neues Linux allein auf dem System ist, besteht zunächst gar kein Handlungsbedarf. Denn alles Nötige wurde im Rahmen der Installation unter YaST erledigt. Es folgen einige Beispiele für Mehrsystem-Rechner. Schauen Sie zu diesem Thema doch auch mal nach /usr/doc/howto/en/mini/Linux+*. gz , wo einige fleißige Linux-Freunde ihre eigenen Mehrsystem-Konfigu- rationen dokumentiert haben. 4.7.1 DOS/Windows 95/98 und Linux Voraussetzung: Für DOS/Windows 95/98 und Linux steht jeweils eine pri- märe Partition unter der 1024-Zylinder-Grenze zur Verfügung (vgl. auf Sei- te 119); die Linux Boot-Partition kann auch eine logische Partition sein, so- fern diese ganz unter der 1024-Zylinder-Grenze liegt. Für diesen Fall wurde eine geeignete Konfiguration bereits besprochen (vgl. Datei 4.4.1 auf Seite 122) ­ nur die Angaben bei root, image und other sind an die tatsächlichen Verhältnisse anzupassen. LILO wird im MBR in- stalliert. Natürlich werden Sie den Linux.old Abschnitt weglassen, wenn es keinen solchen zweiten Linux-Kernel gibt. Heben Sie die /etc/lilo.conf gut auf, des weiteren eine Bootdiskette für Ihr Linux! Gerade Windows 95/98 neigt verschiedentlich dazu, fremde" MBRs kurzerhand zu eliminieren. Wenn Sie Linux danach noch mit einer Bootdiskette starten können, ist dieses Problem rasch behoben mit dem ein- fachen Befehl erde: # /sbin/lilo 4.7.2 Windows NT und Linux auf einer Festplatte 1. Möglichkeit: Zum Booten wird der Bootmanager von NT benutzt. Dieser kann neben Bootsektoren auch Abbilddateien solcher Bootsektoren star- ten. Mit den folgenden Schritten lässt sich eine Koexistenz von Linux und Windows NT erreichen: * Installation von NT. * Einen Datenträger (Festplatten-Partition oder fehlerfreie Floppy) be- reithalten mit einem Dateisystem, das Linux beschreiben und NT lesen kann, z. B. FAT. * Linux wie üblich" installieren (als Root-Partition nehmen wir hier im Beispiel mal /dev/sda3 an). FAT-Datenträger (z. B. unter /dosa) mounten (zum Mounten allgemein vgl. Abschnitt 19.11.2 auf Sei- te 493). Achtung: nicht die verfälschenden mount-Optionen conv=auto oder conv=text verwenden! * LILO in der Linux-Rootpartition (also /dev/sda3) installieren, nicht in den MBR (/dev/sda)! Sie haben dabei nach wie vor die 132 4.7. Beispielkonfigurationen Möglichkeit, für LILO eine Auswahl unter mehreren Linux-Kernel- images zu konfigurieren. Als Beispiel für eine lilo.conf siehe Datei 4.7.1. # LILO Konfigurations-Datei: Rootpartition /dev/sda3 # startbar machen # Start LILO global Section boot=/dev/sda3 # Installationsziel backup=/boot/boot.sda3.980428 # Backup für den vorigen # Bootsektor prompt timeout=100 # Warten am Prompt: 10 s vga = normal # force sane state # End LILO global section # Linux bootable partition config begins image = /boot/vmlinuz # default image to boot root = /dev/sda3 # Root-Partition hierher! label = Linux # Linux bootable partition config ends Datei 4.7.1: lilo.conf zum Startbar-Machen einer Linux-Rootpartition * Kopieren des LILO-Bootsektors in eine Datei auf dem FAT-Datenträ- ger, z. B. erde: # dd if=/dev/sda3 of=/dosa/bootsek.lin bs=512 count=1 Dieser Schritt, wie auch der folgende, muss natürlich nach jedem Ker- nel-Update wiederholt werden! * NT booten. Die Datei bootsek.lin vom FAT-Datenträger ins Hauptverzeichnis des NT-Systemlaufwerks kopieren, falls die Datei nicht schon dort ist. * In der Datei boot.ini (Attribute setzen) folgenden Eintrag am Ende ergänzen: c:\bootsek.lin="Linux" * Beim nächsten Booten sollte ­ wenn alles geklappt hat ­ ein entspre- chender Eintrag im NT-Bootmanager vorhanden sein! 2. Möglichkeit, leider nicht immer praktikabel: LILO im MBR installieren und für Windows NT so tun, als sei es DOS (wie im vorigen Beispiel); aber Achtung: Dies scheint bei neueren NT-Versionen nicht mehr zu funk- tionieren, da es nur zu starten scheint, wenn es spezielle (undokumentier- te) Sequenzen im MBR findet, von denen LILO leider nichts weiß :-( Windows NT (3.5* und 4.0) kennt die von Linux verwendeten Partitionsty- pen 82 und 83 nicht! Achten Sie darauf, dass kein NT-Programm die Par- titionstabelle dahingehend repariert": es droht Datenverlust! Halten Sie sicherheitshalber gültige Backups des LILO-MBR bereit. 133 4. Booten und Bootmanager 4.7.3 OS/2 und Linux 1. Möglichkeit: Zum Booten wird der Bootmanager von OS/2 benutzt. Die- ser kann beliebige primäre und logische Partitionen innerhalb der 1024- Zylinder-Grenze starten ­ die Verantwortung dafür, dass sie wirklich startbar sind, liegt beim Benutzer. Der Bootmanager wird mit dem fdisk von OS/2 konfiguriert. Vorbereitung auf Seiten von Linux: Eine primäre Linux-Partition (übli- cherweise: die Root-Partition) mit LILO startbar machen. Geeignet dafür ist wieder lilo.conf wie in Datei 4.7.1 auf der vorherigen Seite. Aber vorher gibt es noch etwas zu bedenken ... : Vorbereitung auf Seiten von OS/2: OS/2 begnügt sich bei der Buch- führung über die vorhandenen Partitionen (in den MBRs der Festplat- ten und den Partitionssektoren der erweiterten und logischen Partitionen) nicht mit den konventionellen, allgemein verständlichen Einträgen, son- dern nutzt freien Platz in diesen Sektoren zum Speichern von Zusatzin- formationen. Sind diese inkonsistent, so sieht fdisk von OS/2 die Parti- tionstabelle als fehlerhaft an und verweigert Bootmanager-Dienste. Die fdisk-Programme anderer Betriebssysteme pflegen diese Zusatzinforma- tionen natürlich nicht ... Konflikte sind vorprogrammiert. Daher vor der Linux-Installation zuerst OS/2 laden (das Installationssys- tem genügt) und die Linux-Partitionen, zumindest die logischen, mit fdisk von OS/2 anlegen. Dies ergibt zunächst weitere OS/2-Laufwerke, die un- ter Umständen arg stören können. Abhilfe: gleich danach das Linux-Installationssystem (oder das Rettungs- system) von der SuSE Linux CD laden und für die Linux-Partitionen mit fdisk von Linux den Typ in 83 (Linux native) ändern. Damit werden diese Partitionen in Zukunft von OS/2 ordnungsgemäß ignoriert. 2. Möglichkeit: Als Haupt-Bootmanager wird LILO in einer primären Parti- tion der ersten Platte benutzt15. Dies ist ein Spezialfall des nächstfolgen- den Beispiels, in dem auch noch DOS dabei ist. 4.7.4 DOS, OS/2 und Linux 1. Wenn Sie für DOS und OS/2 den OS/2 Bootmanager verwendet haben und ihn weiterverwenden wollen, nehmen Sie am einfachsten Linux in dessen Start-Menü auf: genauso wie im letzten Beispiel beschrieben. 2. Möglichkeit: Als Haupt-Bootmanager wird LILO in einer primären Par- tition der ersten Platte benutzt. Das folgende kompliziertere Beispiel für lilo.conf (Datei 4.7.2 nimmt an, dass die Startpartitionen für DOS (primär) und Linux (pri- mär) auf der ersten, die für OS/2 (logisch) auf der zweiten Platte liegen ­ alle jeweils innerhalb der 1024-Zylinder-Grenze. OS/2 liegt auf der zweiten Platte, daher wird statt /boot/chain.b der spezielle Loader /boot/os2_d.b verwendet. 15 Weniger günstig: der MBR, da jede Umpartitionierung mit einem fremden fdisk denselben neu schreiben und damit LILO entfernen könnte. 134 4.8. Probleme mit LILO Es ist gleichgültig, ob der MBR-Code von MS-DOS oder OS/2 stammt. In der Partitionstabelle ist mit einem fdisk-Programm die LILO-Partition /dev/sda4 als Startpartition (aktiv) zu markieren. # LILO Konfigurations-Datei # Start LILO global Section boot = /dev/sda4 # LILO in Linux Root-Partition backup = /boot/boot.sda4.970428 message = /boot/message # Begruessungsbildschirm prompt delay = 100 vga = normal ## Linux bootable partition config begins image = /boot/vmlinuz label = linux root = /dev/sda4 # Linux bootable partition config ends ## OS/2 bootable partition config begins other = /dev/sdb5 table = /dev/sdb label = os2 loader = /boot/os2_d.b # New for LILO v20 and newer: interchange disk drives: map-drive = 0x80 # first hd: BIOS number 0x80 to = 0x81 # second hd: BIOS number 0x81 map-drive = 0x81 to = 0x80 # OS/2 bootable partition config ends ## DOS bootable partition config begins other = /dev/sda1 table = /dev/sda label = dos # DOS bootable partition config ends Datei 4.7.2: LILO mit DOS, OS/2 und Linux auf zwei Festplatten 4.8 Probleme mit LILO Einige Richtlinien Zu Beginn ein paar einfache Richtlinien, mit denen die meisten LILO-Pro- bleme von vorneherein vermieden werden können (entnommen dem LILO- Benutzerhandbuch [Alm96]): * Keine Panik! Wenn etwas nicht geht: versuchen Sie erst, den Fehler und die Ursache zu finden; überprüfen Sie die Diagnose und beginnen Sie erst dann mit Maßnahmen zur Fehlerbehebung. * Halten Sie stets eine aktuelle und erprobte Bootdiskette" bereit. 135 4. Booten und Bootmanager SuSE Linux enthält seit der Version 5.0 auf der Bootdiskette und der Installations-CD ein selbständiges Linux-System (Rettungssystem, siehe Abschnitt 16.5 auf Seite 432), mit dem Sie an alle Ihre Linux-Partitionen wieder herankommen. Mit enthalten ist genügend Werkzeug, um die al- lermeisten Probleme mit unzugänglich gewordenen Festplatten zu lösen. * Lesen Sie die Dokumentation. Vor allem dann, wenn das System nicht tut, was es Ihrer Meinung nach tun sollte. * Vor jedem Aufruf des Map-Installers (/sbin/lilo): überprüfen Sie sorgfältig die Konfigurationsdatei /etc/lilo.conf . * Rufen Sie /sbin/lilo jedesmal auf, wenn irgendein Bestand- teil der LILO-Startmaschinerie oder die LILO-Konfigurationsdatei /etc/lilo.conf geändert worden ist. * Aufmerksamkeit ist bei großen oder bei mehreren Festplatten geboten: berücksichtigen Sie die 1024-Zylinder-Grenze! * Probieren Sie es ohne und mit Option linear (meist besser: ohne!). 4.8.1 Fehlerdiagnose: LILO Start-Meldungen Hier wiederholen wir im Wesentlichen in Übersetzung einen Abschnitt aus [Alm96], der LILO-Beschreibung von WERNER ALMESBERGER. Wenn LILO geladen wird, zeigt er das Wort `LILO' an. Jeder Buchstabe entspricht der Vollendung einer spezifischen Phase. Wenn LILO nicht starten kann, bilden die bereits ausgegebenen Buchstaben einen genaueren Hinweis darauf, in welchem Stadium ein Problem aufgetreten ist. (nichts) Kein Teil von LILO wurde geladen. Entweder LILO ist gar nicht installiert, oder es wurde nicht die Partition mit dem LILO-Bootsektor gestartet. `L' error ... Die erste Stufe" wurde geladen und gestartet, aber sie konn- te die zweite Stufe (/boot/boot.b) nicht laden. Dies weist üblicher- weise auf einen physikalischen Fehler des Boot-Datenträgers oder eine fehlerhafte Platten-Geometrie hin. `LI' Die zweite Stufe von LILO wurde geladen, konnte aber nicht gestartet werden. Dies kann verursacht werden durch eine fehlerhafte Platten-Geo- metrie oder durch Verschieben von /boot/boot.b ohne Neuinstallati- on von LILO. `LIL' Die zweite Stufe von LILO wurde gestartet, konnte aber die nötigen Daten (Zeiger usw.) nicht aus der Map-Datei laden. Dies wird typischer- weise verursacht durch einen physikalischen Fehler des Boot-Datenträ- gers oder eine fehlerhafte Platten-Geometrie. `LIL?' Die zweite Stufe von LILO wurde an eine falsche Speicheradresse geladen. Dies wird typischerweise verursacht durch einen subtilen Fehler in der Platten-Geometrie oder durch Verschieben von /boot/boot.b ohne Neuinstallation von LILO. `LIL-' Die Daten in der Map-Datei sind ungültig. Dies wird typischer- weise verursacht durch einen Fehler in der Platten-Geometrie oder durch Verschieben von /boot/boot.b ohne Neuinstallation von LILO. `LILO' Alle Teile von LILO wurden erfolgreich geladen. 136 4.8. Probleme mit LILO Die häufigsten Ursachen für Geometriefehler sind nicht physikalische Defek- te oder ungültige Partitionstabellen, sondern Fehler bei der Installation von LILO: * Missachtung der 1024-Zylinder-Grenze (s. nächsten Abschnitt); * missglückter Versuch, mit LILO von einer logischen Partition zu starten. 4.8.2 Die 1024-Zylinder-Grenze Wie schon mehrfach betont (z. B. auf Seite 119), muss die gesamte LILO- Startmaschinerie, d. h. alle Daten, die LILO zum Starten benötigt, mit BIOS- Routinen allein zugänglich sein. Welche Festplatten-Bereiche demnach dafür in Frage kommen (wir nennen das im folgenden kurz: zulässiger Bereich), haben wir dort bereits ausgeführt. Welche Möglichkeiten lässt diese Einschränkung nun offen? Eigentlich noch eine ganze Menge, wenn man bedenkt, dass nur die Startmaschinerie betrof- fen ist. Es gibt kein Gesetz, nach dem diese in der Linux-Rootpartition liegen müsste: ja, es ist im Notfall sogar möglich (wenn auch nicht ganz ungefähr- lich), Dateien der Startmaschinerie auf Partitionen fremder Betriebssysteme unterzubringen, wenn nur Linux Lese- und Schreibzugriff auf deren Datei- systeme hat. Sie müssen sich nur davor hüten, den LILO-Bootsektor in eine fremde Par- tition zu installieren, weil damit in der Regel deren Dateisystem beschädigt wird! * Die sauberste Lösung besteht auf jeden Fall darin, bei der Linux-In- stallation eine primäre Linux-Partition ganz innerhalb des zulässigen Bereichs anzulegen und die LILO-Daten (einschließlich des LILO-Boot- sektors) dort unterzubringen. Diese Partition ist bislang meist die Linux- Rootpartition. Seit SuSE Linux 6.0 wird bei der Installation mit YaST eine eigene Parti- tion (/boot) vorgesehen: diese Partition ist lediglich groß genug, um die folgenden Dateien aufzunehmen: ­ boot.b, map, message, ­ die Linux-Kernel, die LILO booten soll. Es genügen also wenige Megabytes. Das ganze übrige System unterliegt dann hinsichtlich der Lokation auf der/den Festplatte(n) keiner Einschrän- kung mehr: wenn der Kernel erst mal läuft, hat er uneingeschränkten Zugriff auf alle Festplatten im System. Aber was tun, wenn für so eine Partition kein Platz mehr ist? Wenn Sie nicht umpartitionieren wollen oder können, und auch ein Upgrade auf SCSI oder ein modernes BIOS nicht in Frage kommt, gibt es doch noch zwei behelfs- mäßige Möglichkeiten: * An Stelle von LILO auf der Platte eine Bootdiskette oder, wenn Sie MS- DOS betreiben, loadlin verwenden, um Linux zu booten. 137 4. Booten und Bootmanager * Die LILO-Startmaschinerie auf einer Nicht-Linux-Partition unterbringen, die ganz im zulässigen Bereich liegt, und auf die Linux schreiben kann (z. B. ein FAT/VFAT DOS-Laufwerk). Natürlich können wir den LILO- Bootsektor nicht auch dorthin schreiben! So bleiben dafür nur übrig: der Anfang einer erweiterten Partition auf der ersten Platte ­ sofern vor Zy- linder 1024 ­ oder der MBR. Nehmen wir an, die betreffende Partition ist unter /mnt gemountet. LILO soll in den MBR, etwa /dev/hda, und soll zusätzlich DOS von /dev/hda1 booten. Dann ist das Vorgehen wie folgt: ­ Neues Verzeichnis, z. B. /mnt/LINUX anlegen und die eben schon genannten LILO-Dateien aus /boot dorthin kopieren: boot.b, map, message, sowie die Chain-Loader für Ihre anderen Betriebs- systeme (i. Allg. chain.b) und die Linux-Kernel, die LILO booten soll. ­ Legen Sie eine /mnt/LINUX/lilo.cfg an, in der alle Pfade nach /mnt/LINUX verweisen (Datei 4.8.1 auf der nächsten Seite): # LILO Konfigurations-Datei Fremdverzeichnis # Start LILO global Section boot=/dev/hda # Installationsziel backup=/mnt/LINUX/hda.xxxx # backup alter MBR install=/mnt/LINUX/boot.b # Natürlich sind LILO und map=/mnt/LINUX/map # Map-Datei in /mnt/LINUX! message=/mnt/LINUX/message # optional prompt timeout=100 # Warten am Prompt: 10 s vga = normal # # End LILO global section ## Linux bootable partition config begins image = /mnt/LINUX/Erster_Kernel # default root = /dev/Ihr_Root_Device # Root- Partition hierher! label = linux # Linux bootable partition config ends ## Systemabschnitte für weitere Kernel hier: ## Ende Linux # DOS bootable partition config begins other = /dev/hda1 # MSDOS-Systemlaufwerk label = dos loader = /mnt/LINUX/chain.b table = /dev/hda # DOS bootable partition config ends Datei 4.8.1: lilo.cfg für fremde Partition ­ LILO mit dieser lilo.cfg installieren: erde: # /sbin/lilo -C /mnt/LINUX/lilo.cfg 138 4.8. Probleme mit LILO Danach sollte LILO funktionieren. Booten Sie MS-DOS und schützen Sie die LILO-Dateien, so gut es geht, gegen Schreibzugriffe. (Zur Er- innerung: jeder solche setzt LILO außer Funktion!) Zumindest geben Sie allen Dateien in X:\LINUX (wo X: das eben unter /mnt gemoun- tete MS-DOS-Laufwerk ist) die DOS-Attribute System und Versteckt. Abschließend möchten wir zum selben Thema noch verweisen auf die zwei HOWTOs LILO.gz und Large-Disk.gz in /usr/doc/howto/en/ mini/. 4.8.3 Spezielle Bootprobleme mit Kernel ab 2.0 Beim Booten mit LILO ­ egal, ob von Diskette oder Festplatte ­ treten nach dem Laden eines großen Kernels (z. B. SuSE-Installations-Kernel) zum Teil Probleme auf :-( Zwar kann am LILO-Prompt ein Kernel gewählt werden, der Kernel wird auch geladen (es werden einige Punkte angezeigt), aber der Start des Kernels klappt nicht. Das heißt, bevor die Meldung "uncompressing Linux" kommt, stürzt das System mit unterschiedlichen Reaktionen ab. Mögliche Fehlermeldungen oder -erscheinungen: * System bootet neu * System bleibt einfach stehen * "crc-error" * "no free space" * "Error 0x00" * "Error 0x01" * "incomplete literal tree" Danach wird zum Teil noch auf die Diskette zugegriffen, aber das System steht. Die Ursache dafür liegt in einer Kombination aus großen Kernels, LILO und mangelhafter Hardware. Es sind grob geschätzt ein Prozent der Rechner be- troffen. Wir vermuten, dass ein fehlerhaftes BIOS Probleme mit dem schnel- len Speicherzugriff hat. ­ Das Problem tritt nicht auf, wenn * Linux mit Loadlin (Abschnitt 4.9 auf der nächsten Seite) geladen wird, * der Kernel z. B. mit erde: # dd if=/boot/vmlinuz of=/dev/fd0 auf eine Floppy kopiert und direkt von dort geladen wird, * ein kleinerer Kernel, der mit erde: # make zImage erstellt wurde, mit LILO gebootet wird. Folgende BIOS-Einstellungen konnten ebenfalls problemlos booten: * Internal Cache abschalten (disable) * DRAM Precharge Wait State auf 1 und * DRAM Wait Burst Timing auf 0x3333 139 4. Booten und Bootmanager Lösung Zunächst einmal muss ein System installiert werden können. Falls Sie nicht mit loadlin (bzw. setup.exe) direkt booten können, sollten Sie zur Installation zunächst eine alte 1.2.13-Bootdisk verwenden. Falls Sie keine zur Verfügung haben, stellen Sie die BIOS-Parameter um. Nach erfolgreicher Installation, stellt sich die Frage, wie man denn nun sein System booten kann. Zunächst bootet man mit demselben Medium wie zur Installation. Mit Loadlin von der DOS-Partition gibt es ja keine Problem. Bei einer Bootdiskette geben Sie dazu als Parameter an: load_ramdisk=0 root=/dev/ wobei Ihre Rootpartition, z. B. hda1, ist. 4.9 Einrichten des Bootmechanismus mit loadlin Es soll nun mit loadlin noch eine weitere Methode vorgestellt werden, SuSE Linux zu booten. loadlin ist ein DOS-Programm, das in der Lage ist, einen in einem DOS-Verzeichnis gespeicherten Linux-Kernel zu starten. loadlin fügt sich nahtlos in eine bestehende DOS/Windows 9x-Umgebung ein und kann mit Hilfe des Windows Bootmanagers komfortabel gestartet werden. Da kein Eintrag in den MBR erfolgt, sieht Windows von Linux lediglich eine oder mehrere Partitionen mit ihm unbekannten Kennungen (engl. IDs). Die Gefahr unerwünschter Nebeneffekte aufgrund der Existenz von Linux auf Ihrem System ist so minimiert. Das hier beschriebene Vorgehen funktioniert auf Windows 95 und Win- dows 98. Die gezeigten Konfigurationsdateien wurden unter Windows 95 entwickelt; es ist deshalb im folgenden nur von Windows 95 die Rede. Wenn Sie loadlin verwenden möchten, um Ihr Linux zu starten, müssen Sie diesen Weg vorbereiten. Je nach Systemgegebenheiten müssen Sie auch eini- ge Startdateien modifizieren. Prinzipiell können Sie loadlin auf zwei Arten aktivieren: indem Sie beim Systemstart via Bootmenü zwischen mehreren Konfigurationen wählen oder indem Sie aus dem laufenden System heraus loadlin aktivieren und zu Linux überwechseln. Beide Methoden haben Ihre Vor- und Nachteile: * Das Bootmenü spart den Umweg über ein anderes Betriebssystem, um Linux zu starten. * In ein Bootmenü können Sie weitere Konfigurationen einbauen und sich so einen universellen Startmechanismus aufbauen. * Sie müssen allerdings die Startdateien modifizieren, um ein Bootmenü aufzubauen; eventuell ist dazu Probieren nötig. In den DOS-Hilfedateien können Sie eventuell fündig werden; geben Sie einmal help menu ein. * Am DOS-Prompt ist der Wechsel zu Linux sehr einfach. * Unter Windows 95 kann man den Linux-Start schön in die grafische Ober- fläche integrieren. Mit einem Doppelklick auf ein Icon können Sie zu Li- nux wechseln. Es ist jedoch auch unter Windows 95 ein Bootmenü mög- lich (Windows 95 enthält DOS 7.0). 140 4.9. Einrichten des Bootmechanismus mit loadlin Verwenden Sie nach Möglichkeit ein Boot-Menü, wenn Sie nach dem Einschalten direkt Linux booten wollen. Die DOS-Prompt- bzw. Dop- pelklick-Methode kann zusätzlich verwendet werden, wenn Sie von DOS/Windows 95 nach Linux wechseln wollen. Mit Startmenüs und der Windows 95-Konfiguration kann man sich recht intensiv auseinandersetzen ­ Sie werden verstehen, dass wir das Thema hier nur recht gradlinig behandeln. 4.9.1 Notwendige Dateien für loadlin Das müssen Sie immer tun (unter DOS, Windows 3.x und Windows 95): 1. Vermutlich haben Sie loadlin bereits installiert (vgl. Abschnitt 2.5.4 auf Seite 51). Wenn nicht, müssen Sie zuerst loadlin von der CD 1 via setup installieren. 2. Wechseln Sie (unter MS-DOS) in das Verzeichnis c:\loadlin. Dort steht eine Datei linux.par. Erstellen Sie mit einem Editor dort eine Datei mit Namen startlin.bat (oder einem anderen, Ihnen passen- den Namen). In die Datei schreiben Sie z. B. eine Zeile wie in Datei 4.9.1. c:\loadlin\loadlin @c:\loadlin\linux.par Datei 4.9.1: Beispiel einer Batchdatei für den Linux-Start Nun editieren Sie in der Datei linux.par die folgende Zeile wie in Datei 4.9.2. c:\loadlin\zimage # first value must be # the filename of the Linux-kernel initrd=c:\loadlin\initrd root=/dev/xxx # the device which gets moun- ted as root FS ro # mount root read-only Datei 4.9.2: Beispiel einer Parameterdatei für den Linux-Start Statt xxx tragen Sie den Devicenamen Ihrer Rootpartition ein (Sie hat- ten sich den Namen in Abschnitt 2.10.2 auf Seite 76 aufgeschrieben). Den initrd-Eintrag benötigen Sie nur, wenn Sie beispielsweise SCSI- Unterstützung gleich beim Booten hinzuladen müssen (zum Konzept der initial ramdisk" vgl. Abschnitt 16.2 auf Seite 417). Mit der Da- tei startlin.bat können Sie Ihr Linux jederzeit vom DOS-Prompt aus starten. Die Datei linux.par wird sowohl von startlin.bat als auch von config.sys verwendet und enthält alle zum Booten von Linux notwendigen Parameter. Wenn Sie mit Linux vertraut ge- worden sind, können Sie in linux.par auch andere Boot-Parameter 141 4. Booten und Bootmanager einfügen und/oder ersetzen. Haben Sie sich später einmal Ihren eige- nen Kernel gebaut, kopieren Sie diesen vom Linux-Filesystem nach c:\loadlin\zimage und es wird fortan dieser Kernel gebootet; bei Bedarf müssen Sie dort auch eine neu generierte initrd ablegen. 4.9.2 Bootmenüs einrichten So richten Sie ein Bootmenü unter DOS bzw. Windows 3.x ein: 1. Als erstes müssen Sie in der Datei c:\config.sys ein Bootmenü definieren. Tragen Sie dazu etwas ähnliches wie in Datei 4.9.3 ein. [Menu] menuitem=Win, Windows starten... menuitem=DOS, MS-DOS starten... menuitem=Linux, Linux starten... menucolor=15,1 menudefault=Win,5 Datei 4.9.3: Beispiel für config.sys (1. Teil) für den Linux-Start Unter dem Label [Menu] definieren Sie die Einträge des Bootmenüs, seine Farbe und nach wie viel Sekunden welcher Menüpunkt automatisch aufgerufen werden soll. 2. Weiter unten tragen Sie die Labels [Common], [Win], [DOS] und [Li- nux] ein. Bei Common schreiben Sie die Einträge hin, die immer gelten sollen; bei den anderen Labels notieren Sie die Einträge, welche nur bei einem bestimmten Eintrag gelten. Verwenden Sie dazu die Zeilen, die in Ihrer jetzigen config.sys stehen; ein Beispiel zeigt Datei 4.9.4 auf der nächsten Seite. Speichern Sie die Datei dann ab. 3. Öffnen Sie jetzt die Datei c:\autoexec.bat. In die Datei müssen Sie die gleichen Labels schreiben und den Labels Einträge zuordnen, die Notation ist jetzt aber etwas anders. Welches Label im Bootmenü gewählt wurde, steht in der Variablen %config%. Schreiben Sie vielleicht etwas wie in Datei 4.9.5 auf der nächsten Seite. 4. Wenn Sie den Rechner jetzt booten, erscheint das Bootmenü und Sie ha- ben 5 Sekunden Zeit, einen Eintrag auszuwählen. Nach 5 Sekunden startet automatisch Windows. Wenn Sie `Linux' auswählen, startet Linux und wartet auf Ihr Login. 4.9.3 Von Windows aus starten So richten Sie ein Start-Icon für Linux ein, mit dem Sie Linux aus einem laufenden Windows 95-System booten können: 1. Klicken Sie sich in den Ordner c:\loadlin hinein, markieren Sie die Datei startlin.bat und wählen Sie im Bearbeiten-Menü `Kopie- ren' aus. 2. Gehen Sie in einen Ordner oder auf den Desktop, je nachdem, wo Sie Ihr Linux-Icon haben möchten. Drücken Sie die rechte Maustaste und wählen Sie `Verknüpfung einfügen'. 142 4.9. Einrichten des Bootmechanismus mit loadlin [Common] device=c:\dos\himem.sys /testmem:off device=c:\dos\emm386.exe noems dos=high,umb files=30 buffers=10 shell=c:\dos\command.com [Win] devicehigh=c:\dos\dblspace.sys /move devicehigh=c:\cd\slcd.sys /D:SONY_000 /B:340 /M:P /V /C [DOS] devicehigh=c:\dos\dblspace.sys /move devicehigh=c:\cd\slcd.sys /D:SONY_000 /B:340 /M:P /V /C [Linux] shell=c:\loadlin\loadlin.exe @c:\loadlin\linux.par [Common] rem Bleibt leer Datei 4.9.4: Beispiel für config.sys (2. Teil) für den Linux-Start @echo off rem Einträge für alle Konfigurationen switches= /f set comspec=c:\dos\command.com prompt $p$g loadhigh c:\dos\keyb gr,,c:\dos\keyboard.sys loadhigh c:\dos\doskey set temp=c:\temp loadhigh c:\dos\mscdex.exe /D:SONY_000 /E /V /L:H c:\logimaus\mouse.exe goto %config% :Win c:\dos\smartdrv.exe a- b- c+ 2048 1024 path c:\windows;c:\dos;c:\util; win c:\dos\smartdrv /C goto ende :DOS path c:\dos;c:\util; goto ende :ende echo * Auf Wiedersehen * Datei 4.9.5: Beispiel für autoexec.bat für den Linux-Start 143 4. Booten und Bootmanager 3. Markieren Sie die gerade eingefügte Verknüpfung, drücken Sie die rechte Maustaste und wählen Sie `Eigenschaften'. Gehen Sie in das Re- gister `Programm', klicken Sie unten auf den Knopf `Erweitert'. Kreuzen Sie in der Maske das Feld `MS-DOS-Modus' an. Bestätigen Sie mit `OK'. 4. Über den Knopf `Anderes Symbol' können Sie sich ein schönes Icon aussuchen und geben Sie der Verknüpfung einen passenden Namen. Fertig! 5. Ein Doppelklick auf das neue Symbol bringt eine Bestätigungsmaske, dass sich Windows 95 jetzt in den MS-DOS-Modus bemüht. Falls Sie die Maske nervt: Ausschalten in den Eigenschaften der Verknüpfung. 4.9.4 Das Windows Startmenü So richten Sie ein Startmenü für Windows 95 ein: 1. Zuerst müssen Sie die Datei c:\msdos.sys editieren. Dazu machen Sie die Datei mittels C:> attrib -R -S -H c:\msdos.sys sichtbar. Es ist eine Textdatei, in die Sie einige Zeilen einfügen müssen, um das Windows 95-eigene Startmenü zu aktivieren. Unter dem Label [Options] sollte es etwa so aussehen wie in Datei 4.9.6. [Options] BootGUI=0 BootDelay=0 BootMenu=0 Logo=0 Datei 4.9.6: msdos.sys für den Linux-Start Der Parameter Logo=0 ist optional und verhindert, dass Windows 95 vor dem Booten in den Grafikmodus schaltet; das Booten geht dann schneller und Sie haben weniger Ärger, wenn sie später unter Linux den DOS- Emulator verwenden wollen. Der Parameter BootGUI=0 bewirkt, dass Windows 95 direkt in den DOS-Modus bootet. Nach dem Editieren der Datei setzen Sie die Attribu- te wieder zurück. Um Windows dann zu starten muss C:> win am DOS-Prompt eingegeben werden, aber das tut schon unsere Beispiel- datei c:\autoexec.bat, wenn Sie im Menü Win95 gewählt haben. 2. Dann müssen Sie in der Datei c:\config.sys Ihr eigenes Bootmenü definieren. Tragen Sie dazu am Anfang der Datei etwa den Inhalt von Datei 4.9.7 ein. Unter dem Label [Menu] definieren Sie die Einträge des Bootmenüs und nach wie viel Sekunden welcher Menüpunkt automatisch aufgerufen werden soll. 3. Weiter unten stehen Labels [Win95], [DOS], [Linux] und [Common]. Bei [Common] schreiben Sie die Einträge hin, die immer gelten sollen 144 4.9. Einrichten des Bootmechanismus mit loadlin [Menu] menuitem=Win95, Windows 95 starten... menuitem=DOS, MS-DOS starten... menuitem=Linux, Linux starten... menudefault=Win95,5 Datei 4.9.7: Beispiel für config.sys (1. Teil) für den Linux-Start unter Windows 95 (unter Windows 95 werden das nur wenige sein); bei den anderen Labels die Einträge notieren, welche nur bei einem bestimmten Eintrag des Bootmenüs gelten. Verwenden Sie dazu die Zeilen, die in Ihrer jetzigen config.sys stehen; das Beispiel in Datei 4.9.8 soll nur eine Anregung sein. [Win95] dos=high,umb device=c:\windows\himem.sys /testmem:off [DOS] device=c:\plugplay\drivers\dos\dwcfgmg.sys dos=high,umb device=c:\windows\himem.sys /testmem:off device=c:\windows\emm386.exe noems I=B000-B7FF devicehigh=c:\cdrom\torisan.sys /D:TSYCD3 /P:SM [Linux] shell=c:\loadlin\loadlin.exe @c:\loadlin\linux.par [Common] accdate=C+ D+ H+ switches= /F buffers=20 Datei 4.9.8: Beispiel für config.sys (2. Teil) für den Linux-Start unter Windows 95 Speichern Sie die Datei dann ab. 4. Öffnen Sie jetzt die Datei c:\autoexec.bat. In die Datei müssen Sie die gleichen Labels schreiben und den Labels Einträge zuordnen, die Notation ist jetzt aber etwas anders. Welches Label im Bootmenü gewählt wurde, steht in der Variablen %config%. Schreiben Sie vielleicht etwas wie in Datei 4.9.9 auf der nächsten Seite. 5. Wenn Sie den Rechner jetzt booten, erscheint Ihr eigenes Bootmenü. Sie haben 5 Sekunden Zeit zum Wählen, dann startet automatisch Win- dows 95. Wenn Sie `Linux' auswählen, startet Linux und wartet auf Ihr Login. 145 4. Booten und Bootmanager @echo off loadhigh keyb gr,,c:\windows\command\keyboard.sys goto %config% :Win95 win goto ende :DOS path c:.;d:.;c:\windows\command;c:\util; loadhigh c:\windows\command\mscdex.exe /D:TSYCD3 /L:x loadhigh c:\windows\command\doskey c:\windows\command\mouse.exe goto ende :ende echo * Und jetzt? * Datei 4.9.9: Beispiel für autoexec.bat für den Linux-Start unter Win- dows 95 146