![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
von Andrea Müller
Es ist die Angstvorstellung jedes Linux-Neueinsteigers: Linux ist installiert, und Windows bootet nicht mehr. Das lauffähige Linux hilft dann meistens nicht weiter -- man kennt sich mit dem neuen System noch nicht so recht aus und benötigt dringend einige Windows-Programme. Dank der ausgefeilten Installationsroutinen der Distributionen traten solche Probleme in den letzten Jahren fast nie auf: Linux erkennt bei der Installation ein vorhandenes Windows und bindet es automatisch in den Bootmanager ein. Bei aktuellen Versionen sorgt jedoch ein Bug dafür, dass Windows unter bestimmten Umständen nicht mehr startet, wenn Linux die Partitionstabelle der Festplatte modifiziert hat.
Betroffen sind SuSE Linux 9.1 und Fedora Core 2, es gibt auch Berichte über das Problem von Mandrake-Linux-10-Nutzern. Dass niemand den Bug bemerkt hat, bevor die Distributionen erschienen sind, liegt daran, dass er nur sehr selten auftritt; neben bestimmter Hardware und Partitionierung verursacht eine Kombination von Kernel 2.6 und der Bibliothek libparted den Fehler. Diese Bibliothek (vergleichbar mit einer dll-Datei unter Windows) nutzen die Partitionierungs-Tools der Distributionen. Zusätzlich müssen Linux und das BIOS des Rechners von unterschiedlichen Plattengeometrien ausgehen, und die erste Partition (also das Windows-Startlaufwerk) muss größer als 8 GByte sein. Wie extrem selten der Fehler auftritt, mussten wir auch hier in der Redaktion feststellen: Weder bei unserem Notebook-Test der letzten Ausgabe noch auf einem unserer Test- oder Privatrechner konnten wir das Auftreten des Fehlers provozieren.
In manchen Fällen verlässt sich Windows beim Booten auf die Werte, die das BIOS liefert -- da der Partitionierer parted andere Werte über die Plattengeometrie in die Partitionstabelle geschrieben hat, verweigert Windows den Start. Dann hilft es auch nicht, den Linux-Bootmanager zu entfernen oder Windows neu auf die bestehende Partition aufzuspielen. Dabei wird nämlich nur der Master Boot Record (MBR) neu geschrieben, nicht aber eine neue, Windows genehme, Partitionstabelle angelegt. Die Distributoren haben darauf schnell reagiert und mehrere Wege gefunden, das Problem zu beseitigen. Die bestmögliche Variante ist zu verhindern, dass der Fehler überhaupt auftritt.
Da Windows nur dann nicht mehr startet, wenn Linux während der Installation die Partitionstabelle neu schreibt, müssen Sie diesen Schritt verhindern. Das geht leicht, wenn Sie vor der Linux-Installation schon die Zielpartitionen anlegen. Am einfachsten funktioniert das mit einem kommerziellen Partitionierungsprogramm wie Partition Magic, das sogar NTFS-Partitionen verkleinert. In dem so freigeschaufelten Platz erstellen Sie zwei Partitionen, eine vom Typ Linux (swap) und eine weitere Linux-Partition mit dem Dateisystem ext3.
Einer alten Faustregel folgend sollte die Swap-Partition etwa doppelt so groß wie der Arbeitsspeicher des Rechners sein, bei großzügiger RAM-Ausstattung reicht auch etwas weniger. Für die Linux-Partition selbst sollten Sie mindestens 5 GByte bereit stellen. So haben Sie neben den fast 2 GByte, die eine Standardinstallation belegt, noch Platz für weitere Programme und eigene Dateien.
An das Dateisystem sind Sie später nicht gebunden, da Sie Linux während der Installation anweisen können, die so angelegten Partitionen zu formatieren. Wichtig ist nur, dass Partition Magic die Partitionen mit der richtigen Nummer erstellt. Die Partitionen einer Festplatte können mit verschiedenen Dateisystemen formatiert sein. Zur Unterscheidung dieser verschiedenen Partitionen erhalten die einzelnen Typen "Kennnummern": Partitionen mit einem Linux-Dateisystem wie ext3 oder reiserfs haben immer die Nummer 83, Swap-Partitionen erhalten die Nummer 82 (Abbildung 1).
Neben der Größe der Partition trägt Partition Magic auch diese Nummer in die Partitionstabelle ein. Linux kann sich so bei der Installation "ins gemachte Nest setzen", ohne die Partitionstabelle zu modifizieren.
Besitzen Sie kein kommerzielles Partitionierungsprogramm, gibt es auch eine Lösung für Sparfüchse: Legen Sie die Zielpartitionen für das neue Linux-System einfach mit dem Installer einer älteren Distribution an. In Frage kommen beispielsweise SuSE Linux 9.0 oder Mandrake Linux 9.1 und 9.2. Alle drei Versionen können NTFS-Partitionen verkleinern und bieten im Rahmen des Installationsprozesses eine grafische Oberfläche, die das Anlegen neuer Partitionen erlaubt. Ältere Distributionen erhalten Sie beispielsweise bei der nächstgelegenen Linux User Group (Seite 88), die in solchen Fällen gerne aushilft.
Starten Sie danach vom Installationsmedium der älteren Distribution und führen Sie die Installation so weit durch, bis der Installer die Festplatte partitioniert. Da beim Verkleinern und Neuanlegen von Partitionen immer Datenverlust droht, egal, ob Sie die Arbeit dem Installationsassistenten überlassen oder manuell partitionieren, sollten Sie vor einem solchen Eingriff Ihre wichtigen Daten sichern. Nach der Partitionierung brechen Sie die Installation einfach ab.
Sind die Partitionen angelegt, können Sie gefahrlos Fedora Core 2, SuSE Linux 9.1 oder Mandrake Linux 10 aufspielen. Damit die Systeme nicht doch Hand an die Partitionstabelle legen, greifen Sie beim Einrichten der Zielpartitionen manuell ein:

Noch einfacher bannen Sie Mandrake Linux 10 auf eine zuvor angelegte Partition: Während der Installation aktivieren Sie im Bildschirm Partitionierung die Option Verwende existierende Partition(en) (Abbildung 2). Klicken Sie auf Weiter, damit der Installer alle Linux-Partitionen einblendet, die er gefunden hat. Haben Sie nur eine passende Partition auf Ihrer Festplatte, hat Mandrake Linux diese schon als Wurzelverzeichnis (/) markiert. Klicken Sie dann einfach auf Weiter. Im nächsten Fenster zeigt der Installer diese Partition als Formatierungskandidat an. Nach einem letzten Klick auf Weiter formatiert Mandrake Linux die Zielpartition, und Sie gelangen zur Paketauswahl. Um die Swap-Partition müssen Sie sich nicht kümmern, Mandrake nutzt den bereitgestellten Auslagerungsspeicher später automatisch.
Am wenigsten Arbeit mit vorbereiteten Partitionen haben Sie unter SuSE Linux 9.1. Das System erkennt die Linux- und die Swap-Partition (Abbildung 3). Die Systempartition merkt die Installationsroutine automatisch für eine Formatierung mit dem Dateisystem reiserfs vor.
Nur wenn Sie sich nicht sicher sind, ob SuSE Linux die richtige erwischt hat (etwa weil Sie noch eine weitere Linux-Installation auf dem Rechner haben) klicken Sie auf Partitionierung, um den Vorschlag zu kontrollieren. Haben Sie nur die eine vorbereitete Zielpartition, klicken Sie auf Übernehmen. Danach installiert YaST SuSE Linux, ohne in die Partitionstabelle zu schreiben.
Haben Sie kein anderes Partitionierungsprogramm, mit dem Sie die Partitionen vorab anlegen können, gibt es auch für die normale Installation Wege zu verhindern, dass der Fehler auftritt.
Am einfachsten funktioniert es unter SuSE Linux 9.1: Der Distributor stellt eine Treiberdiskette/-CD bereit, die eine fehlerbereinigte Version der libparted mitbringt. Unter [1] ist ab der Überschrift Wenn Linux noch nicht installiert ist Schritt für Schritt erklärt, wie Sie ein Treibermedium unter Windows erstellen und in die SuSE-Linux-Installation einbinden.
Dazu drücken Sie im Auswahlbildschirm, wo Sie die Wahl zwischen den Installationsvarianten haben, die Taste [F6]. YaST bittet Sie daraufhin, das Treibermedium bereitzuhalten. Wählen Sie danach Installation. Kurz darauf erscheint der Bildschirm Please choose the Driver Update medium. Legen Sie nun die Treiber-CD oder -Diskette ein. Danach erscheint eine Dialogbox, in der Sie auswählen, wo das Update liegt. Haben Sie eine Diskette erstellt, ist floppy die richtige Wahl, ansonsten entscheiden Sie sich für cdrom. Danach spielt YaST das Update ein. Haben Sie eine CD benutzt, fordert der Installer danach das Installationsmedium an; verwenden Sie eine Diskette, geht es direkt weiter. YaST arbeitet nun mit einer libparted, die den Fehler nicht enthält, so dass Sie während der Installation gefahrlos Partitionen verkleinern, löschen und neu anlegen können.
Für Mandrake Linux gibt es kein spezielles Update. Um jedes Risiko auszuschließen, verwenden Sie den ebenfalls mitgelieferten Kernel 2.4 zur Installation.
Im Bootmanager haben Sie später die Wahl zwischen linux, wohinter sich Kernel 2.6.3 verbirgt, und 2425-2. Der letzte Eintrag startet Kernel 2.4.25. Da Kernel 2.6 noch nicht überall rund läuft, können Sie ruhig beider Kernel installiert lassen.
Um zu verhindern, dass die Installation eine andere Festplattengeometrie in die Partitionstabelle schreibt, geht der Weg bei der Fedora-Core-2-Installation über die Rettungs-CD [2]. Laden Sie das fast 80 MByte große Image herunter und brennen Sie daraus eine CD. Von dieser CD booten Sie den Computer. Sie landen auf einer Textkonsole, auf der Sie Administratorrechte haben. Die Fragen, ob Sie das Netzwerk starten und Partitionen mounten wollen, verneinen Sie. Geben Sie den Befehl
fdisk -l /dev/hda
ein. Er ändert nichts an der Festplatte, sondern zeigt nur die Partitionierung der ersten Festplatte am ersten IDE-Controller an. Wollen Sie Linux auf eine Platte installieren, die als Slave am ersten Controller hängt, lautet der entsprechende Befehl:
fdisk -l /dev/hdb
Sie erhalten eine Ausgabe wie in Abbildung 4. Wichtig ist die zweite Zeile, die Informationen über die Plattengeometrie enthält. Notieren Sie sich als Erstes die Anzahl der Zylinder (7473 cylinders in Abbildung 4), danach die Anzahl der Köpfe (255 heads) und der Sektoren (63 sectors/track). Drücken Sie [Strg-Alt-Entf], um das System neu zu booten und entnehmen Sie die Rettungs-CD.
Jetzt kann die Installation von Fedora Core beginnen. Statt wie normal von der DVD zu booten, übergeben Sie dem Kernel diesmal die Plattengeometrie als Boot-Option. Er versucht dann nicht selbst festzustellen, wie viele Zylinder, Köpfe und Sektoren die Platte hat, sondern arbeitet mit den von Ihnen übergebenen Werten. Und so gehen Sie vor:
Starten Sie von der DVD. Sobald der Begrüßungsbildschirm mit dem Fedora-Core-2-Logo erscheint, geben Sie
linux hda=zylinderzahl,kopfzahl,sektorzahl
ein. Ihre Eingaben erscheinen links unten auf dem Bildschirm hinter boot:. Für unser Beispielsystem lautet die richtige Zeile
linux hda=7473,255,63
Sie verwenden anstelle von 7473,255,63 die Werte, die Sie zuvor bei dem fdisk-Aufruf notiert haben. Soll Linux auf der Slave-Platte landen, ersetzen Sie hda durch den Gerätenamen der Zielplatte, also hdb. Da Linux zu diesem Zeitpunkt noch mit amerikanischer Tastaturbelegung arbeitet, müssen Sie ' eingeben, um das = zu erhalten. Die richtige Taste liegt gewöhnlich links neben [Rückschritt]. Vergleichen Sie die eingegebenen Werte nochmal mit Ihren Notizen. Stimmen sie überein, starten Sie die Installation mit einem Druck auf [Eingabe]. Der Installations-Kernel arbeitet dann mit der von Ihnen vorgegebenen Festplattengeometrie und schreibt keine anderen Werte in die Partitionstabelle.
Ist es für Vorsichtsmaßnahmen schon zu spät und Windows startet nicht mehr, hilft es manchmal, im BIOS den LBA-Modus der Festplatte zu aktivieren. Wo Sie diese Option finden, steht im Handbuch des Mainboards. Haben Sie das nicht zur Hand, werden Sie vielleicht auf den Web-Seiten des Herstellers fündig. Bei einem Award-Bios verbirgt sich die passende Option beispielsweise unter Main / Primary Master / Translation Method. Ebenfalls nützlich bei Fragen rund ums BIOS ist die Web-Seite unter [3].
Startet Windows trotz dieser Maßnahme nicht, verwenden Sie unter SuSE Linux 9.1 das Treiber-Update [1], um das Problem zu beheben. Im Abschnitt Lösung auf dieser Web-Seite bietet der Distributor eine ausführliche Anleitung, wie Sie die Partitionstabelle reparieren. Dafür müssen Sie nur von der Installations-CD booten. Im Installationsbildschirm drücken Sie [F6], wählen Installation und geben den Bootparameter fixpart=1 ein. An dieser Stelle lauert eine Stolperfalle in der Anleitung des Distributors: Zu diesem Zeitpunkt arbeiten Sie noch mit der amerikanischen Tastaturbelegung. Das Gleichheitszeichen (=) erhalten Sie, indem Sie auf ['] drücken, das auf deutschen Tastaturen links neben [Rückschritt] liegt.
Danach folgen Sie der SuSE-Anleitung und den Anweisungen von YaST. Sobald Sie den Rechner neu starten, sollte Windows bei Auswahl des entsprechenden Menüpunkts im Bootmanager wieder starten.
Anders als bei der automatischen Lösung, die SuSE Linux 9.1 anbietet, ist unter Fedora Core 2 und Mandrake Linux Handarbeit nötig. Damit Windows wieder normal bootet, reicht es aus, mit dem Kommando fdisk die Kopfzahl in der Partitionstabelle auf 255 zu setzen. Red Hat empfiehlt entgegen unserer Anleitung für diese Änderung das Programm sfdisk [4]. Die dort beschriebene Vorgehensweise führte auf einem Testsystem der Redaktion jedoch zu Fehlermeldungen. Außerdem haben Sie damit nicht die Möglichkeit, es sich im letzten Moment noch anders zu überlegen und die Aktion abzubrechen.
fdisk ist bei Fedora Core 2 und Mandrake Linux standardmäßig mit an Bord. Da Sie damit direkt in die Partitionstabelle schreiben, müssen Sie sehr vorsichtig zu Werke gehen. Ein Tippfehler kann dazu führen, dass gar kein System mehr bootet . Überprüfen Sie daher jeden Befehl peinlich genau, bevor Sie ihn mit [Eingabe] abschicken. Abbildung 5 zeigt alle Schritte der folgenden Anleitung.
| Infos |
|
[1] Bugfix für SuSE Linux 9.1: http://portal.suse.com/sdb/de/2004/05/fhassel_windows_not_booting91.html
[2] Fedora Core 2 Rettungs-CD: ftp://mirrors.kernel.org/fedora/core/2/i386/iso/FC2-i386-rescuecd.iso [3] BIOS Kompendium: http://www.bios-info.de/bios/compend.htm [4] sfdisk-Anleitung von Red Hat: http://www.redhat.com/archives/fedora-devel-list/2004-May/msg00908.html |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2007-01-25 17:20
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]