Schlechte Angewohnheiten lassen sich oftmals nur schwer ablegen. Manchmal kommt es vor, dass die Angewohnheiten zur Regel werden – so wie bei Microsofts Betriebssystem Windows. Das hat die schlechte Angewohnheit, kein weiteres Betriebssystem neben sich zu dulden als ein anderes Windows. Doch wenn sich die Redmonder nicht zur friedlichen Koexistenz durchringen können, dann muss der Linuxer halt selbst Hand anlegen.
Mit dem Übergang von Windows XP zu Vista hatte sich einiges getan. Microsoft wollte das System sollte stabiler und schöner machen, doch auch die Art des Bootens hatte sich geändert. War es unter XP noch möglich, mittels eines einfachen Eintrages in der boot.ini Linux zu starten, galt es unter Vista erhebliche Klimmzüge auf der Windows-Kommandozeile zu machten.
Daran hat sich auch mit dem Erscheinen von Windows 7 nichts geändert – böse Zungen behaupten ja ohnehin, dabei handle es sich eher um ein Service-Pack für Vista als um ein neues Betriebssystem.
Eine wichtige Frage bei der Vorbereitung des Dualboot-Systems: Welches System ist bereits installiert, und welches soll die "zweite Geige" spielen?
Lagert Windows 7 bereits auf der Festplatte, stellt das zusätzliche Einrichten eines Linux-Systems ein Kinderspiel dar. Alle gängigen Distributionen erkennen das vorhandene Windows und binden es automatisch im Bootmanager ein. Dabei spielt es keine Rolle, ob sich dabei um den altgedienten Lilo oder um Grub oder Grub 2 handelt: Alle drei haben kein Problem, das Microsoftsche System zum Starten zu bewegen.
Anders herum artet die Installation schnell zum Umstand aus – wofür es mehrere Gründe gibt. Einerseits überschreibt Windows – auch das aktuelle Windows 7 – ohne zu fragen den Bootloader mit seinem eigenen. Andererseits weigert sich Windows in einigen Hardware-Konfigurationen standhaft, die Installation des Systems überhaupt zu starten.
Beispielsweise versagte Windows 7 die Installation in einem unserer Testsysteme, das neben einem Hardware-RAID 0 mit installiertem Slackware eine SATA-Festplatte mit Ubuntu vorhielt. Auf dieser Platte sollte Windows seinen Platz auf einer logischen Partition finden. Doch das gefiel dem besitzergreifenden System gar nicht. Abhilfe schaffte erst eine zweite SATA-Platte, auf der sich Windows 7 in der ersten Partition ausbreiten durfte.
Damit das klappte, galt es jedoch vorübergehend das RAID zu deaktivieren und die erste SATA-Platte auf die zweite Boot-Position im BIOS zu verschieben – erst dann erlaubte der Installer die nächsten Schritte. Nach Abschluss der Systemeinrichtung Ließ sich der Urzustand wiederherstellen und Windows 7 manuell in den Bootmanager aufnehmen. Anschließend starteten alle drei Systeme wie gewünscht per Auswahl im Bootmanager.
Auch wenn es durchaus gelingen kann, Windows auf einer anderen als der ersten Partition der ersten Platte unterzubringen: Grundsätzlich jedoch empfiehlt es sich, diesen Platz dem System aus Redmond zuzugestehen. Linux begnügt sich dagegen auch klaglos mit den hinteren Plätzen. Wollen Sie auf Nummer sicher gehen, verwenden Sie eine Festplatte ausschließlich für Linux und eine zweite exklusiv für Windows. Dann schalten Sie das Boot-Device bei Bedarf einfach im BIOS um, MBR und Bootloader beider Disks bleiben unangetastet.
Um nach geglückter Installation von Windows 7 auf einem Linux-System beide Systeme aus einem Menü zu starten, haben Sie zwei Möglichkeiten: Entweder fügen Sie dem Windows-Bootmanager einen Linux-Starteintrag hinzu, oder Sie reaktivieren den Linux-Bootmanager – in der Regel Grub.
Im ersten Fall führt der Weg nach erfolgreicher Installation auf die Windows-Kommandozeile. Die rufen Sie über das Startmenü auf, indem Sie auf Eingabeaufforderung rechtsklicken und dann die Option Als Administrator ausführen auswählen. Nun fügen Sie mit Hilfe des Werkzeugs bcdedit einen Bootmenü-Eintrag für das Linux-System hinzu. Allerdings gestaltet sich der Weg über das Kommandozeilen-Tool, wie im LinuxUser-Artikel "Starthilfe" [1] beschrieben, recht mühsam (Abbildung 1). Einfacher geht es mit dem in .Net geschriebenen Frontend EasyBCD [2].
EasyBCD präsentiert nach dem Start sehr übersichtlich. Das linke Drittel der Programmoberfläche nimmt ein Menü ein. Ein Klick auf einen der Schalter öffnet im rechten Bereich die entsprechenden Informationen beziehungsweise Optionen. Diese entsprechen den Ausgaben, die sie mit Bcdedit auf der Kommandozeile erhalten hätten.
Um Linux dem Bootmenü hinzuzufügen klicken Sie auf Add/Remove Entries. Nun erhalten Sie eine Übersicht über die bereits vorhandenen Einträge, einen neuen erstellen Sie im unteren Bereich. Dabei können Sie wahlweise eine weitere Windows-Instanz oder ein unixoides Betriebssystem wie Linux, FreeBSD oder auch Mac OS X hinzufügen (Abbildung 2).
Haben Sie einen Namen für den neuen Eintrag vergeben, wählen Sie darunter in der Checkbox die zu bootende Festplatte beziehungsweise Partition aus. Nutzen Sie den Grub-Bootloader, teilen Sie dem Programm anschließend noch mit, ob dieser im Bootsektor oder auf der Linux-Partition installiert wurde. Ein finaler Klick auf Add Entry fügt dem Bootmenü den neuen Eintrag hinzu.
Ein kleines Highlight von EasyBCD stellt seine Fähigkeit dar, den Windows-Bootloader wieder in den MBR zu schreiben. Das hilft zum Beispiel dann weiter, wenn Sie lieber mit diesem booten oder wenn Sie Linux wieder aus dem System verbannen wollen. Bisher führte der Weg zu einer Restaurierung des MBR nur über den Einsatz der Windows-Installations-DVD. In EasyBCD gehen Sie einfach in den Bereich Manage Bootloader, wählen Restore the Vista Bootloader und klicken auf Write MBR. Nach einem Neustart erscheint jetzt wieder der Windows-Bootloader.
Neben den beiden bereits im Abschnitt "Wer zuerst kommt …" erwähnten Gründen, erst Windows und dann Linux zu installieren, gibt es neuerdings noch einen dritten: Verwenden Sie eine Distribution, die wie Ubuntu 9.10 auf den neuen Bootloader Grub 2 setzt, dann wird es kompliziert.
In dieser Konstellation lässt sich nach derzeitigem Stand Linux nicht aus Windows heraus starten, denn Grub 2 setzt zwingend die Installation in den MBR voraus. Eine Installation auf eine Partition, wie Grub oder Lilo sie beherrschen, kennt Grub 2 nicht. Auch das Wiederherstellen eines bei der Windows-Installation überschriebenen, mit Grub 2 bestückten MBR ist nicht ganz einfach – vor allem wegen der mangelnden Dokumentation des neuen Bootloaders.
TIPP
Eine Einführung in den neuen Bootloader Grub 2 gibt der Artikel "Ladehemmungen" in der Ausgabe 01/2010 von LinuxUser [3].
Haben Sie bei der Installation von Windows den MBR mit dem Windows-Bootloader überschrieben, wollen aber mit Grub 2 in Ubuntu 9.10 booten, dann legen Sie die Installations-CD von Ubuntu 9.10 ins Laufwerk und starten von dieser. Nun wechseln Sie per chroot ins installierte System und führen die in Folgenden beschriebenen Schritte aus.
Wir nehmen im Beispiel an, dass Ubuntu in der ersten logischen Partition (/dev/sda5) der ersten Festplatte (/dev/sda) installiert ist. Diesen Device-Namen müssen Sie gegebenenfalls anpassen. Um herauszufinden, auf welcher Partition Ubuntu liegt, rufen Sie Sie mit Admin-Rechten den Befehl fdisk -l auf.
Im ersten Schritt hängen Sie das installierte System in die Live-Umgebung ein (Listing 1, Zeile 1) und binden /boot sowie /dev, /proc und /sys ein (Zeilen 2 bis 5). Nun wechseln Sie in die Installation (Zeile 6) und schreiben Grub 2 wieder in den MBR (Zeilen 7 und 8). Nun verlassen Sie die Chroot-Umgebung (Zeile 9), lösen die eingehängten Verzeichnisse wieder (Zeilen 10 und 11) und starten schließlich den Rechner neu (Zeile 12).
Beim Reboot erscheint jetzt wieder das Bootmenü von Grub 2 mitsamt den Einträgen für Ubuntu 9.10 und Windows 7.
$ sudo mount /dev/sda5 /mnt $ sudo mount /boot /mnt/boot $ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /proc /mnt/proc $ sudo mount --bind /sys /mnt/sys $ sudo chroot /mnt/ $ grub-mkconfig -o /boot/grub/grub.cfg $ grub-install /dev/sda $ exit $ sudo umount /mnt/dev $ sudo umount /mnt/ $ reboot
Deutlicher einfacher gestaltet sich das Wiederherstellen des MBR bei einem Grub der ersten Generation ("Grub Legacy"). Dazu starten Sie den Rechner mit einer Linux-Live-CD, öffnen ein Terminal und mounten die Linux-System-Partition. Befindet sich /boot in einer eigenen Partition, hängen Sie diese ebenfalls ein.
Nun wechseln Sie im Terminal per chroot in die Installation und rufen dort den Befehl grub auf – der Prompt lautet jetzt grub>. Nun legen Sie die Grub-Bootpartition fest: Befindet sich Grub auf der ersten Partition der ersten Festplatte, so lautet der Befehl dazu root (hd0:0). Anschließend schreiben Sie per setup (hd0) Grub in den MBR. Soll Grub dagegen statt im MBR auf der ersten Partition Platz finden, lautet der Befehl setup (hd0:0).
Jetzt verlassen Sie den Grub-Prompt mit quit, beenden die Chroot-Umgebung mit exit und schließen das Terminal. Nach einem Neustart steht das gewohnte Grub-Bootmenü wieder zur Verfügung.
Mit einem neuen Computer, der mit einem vorinstallierten Windows 7 kommt, stellt die zusätzliche Installation von Linux in der Regel kein Problem dar. Wollen Sie auf einem Linux-bestückten Rechner allerdings Windows 7 aufspielen, ist Handarbeit angesagt. Wie reibungslos die Konfiguration klappt, hängt von der vorliegenden Hardware-Umgebung, der installierten Distribution und nicht zuletzt dem verwendeten Bootloader ab. Hier macht der neue Grub 2 keine allzu gute Figur. Grundsätzlich lassen sich jedoch fast beliebige Kombinationen aus Linux, Windows und Bootloader einrichten.
Glossar
MBR
Master Boot Record. Der erste Datenblock eines bootfähigen Datenträgers, der neben dem Bootloader auch die Partitionstabelle enthält.
Bootloader
Spezielle Software, die vom Datenträger geladen und ausgeführt wird, um einen Rechner zu starten. Sie lädt weitere Systembestandteile wie den Kernel nach und übergibt dann zum Systemstart an das Betriebssystem.
Infos
[1] Dualboot mit Windows Vista: Thomas Leichtenstern, "Starthilfe", LinuxUser 04/2007, S. 30, http://www.linux-community.de/artikel/12536/
[2] EasyBCD: http://neosmart.net/dl.php?id=1
[3] Workshop Grub 2: Andreas Bohle, "Ladehemmung", LinuxUser 01/2010, S. 74, http://www.linux-community.de/artikel/19918/