Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Dieser Artikel beschreibt, wie man mehrere Windows-Systeme unabhängig voneinander neben einer oder auch mehrerer Ubuntu-Installationen einrichtet. Dabei werden die Windows-Installationen voreinander versteckt.
Installiert man mehrere Windows-Systeme auf einem Computer, so landen die eigentlichen Startdateien, um Windows laden zu können, standardmäßig alle auf der selben Partition. Über den Bootmanager der zuletzt installierten Windows-Version werden dabei die schon vorhandenen Windows-Systeme gestartet.
Dies funktioniert aber automatisch nur, wenn die zuletzt installierte Windows-Version die zuvor installierten Windows-Versionen erkennen kann. Das ist in der Regel nur bei der neuesten Windows-Version der Fall. Deswegen muss man entweder eine bestimmte Installationsreihenfolge einhalten - nämlich von alt nach neu - oder man muss auf recht umständliche Art einem älteren Windows-Bootmanager beibringen, ein neueres Windows zu starten.
Installiert man auf ein solches System Ubuntu, so wird standardmäßig GRUB der Haupt-Bootmanager für das gesamte System, über den dann auch der Bootmanager der zuletzt installierten Windows-Version aufgerufen wird. Somit hat man zwei Boot-Menüs mit teilweise gleichen Auswahl-Möglichkeiten hintereinander, was viele als verwirrend und ineffektiv empfinden.
Versteckt man aber die Windows-Versionen voreinander, so werden deren Boot-Dateien auf die Partition installiert, auf die auch das jeweilige Windows-System installiert wird. Dadurch sind die Windows-Versionen voneinander unabhängig, so dass die Reihenfolge der Windows-Installationen beliebig erfolgen kann. Über GRUB kann man dann jeweils direkt den Bootmanager der Windows-Version laden, die man auch starten möchte.
Das Verstecken der Windows-System-Partitionen hat aber auch nicht nur Vorteile:
Vorteile | Nachteile |
GRUB kann direkt den Bootmanager der Windows-Version starten, die letztlich auch geladen werden soll. | Mit dieser Methode kann man neben Ubuntu maximal drei Windows-Versionen installieren, da die Partitionstabelle auf der Festplatte eines IBM-DOS-kompatiblen PC nur maximal vier Primär-Partitionen aufnehmen kann. |
Nach Entfernen eines Windows-Systems bleiben die noch vorhandenen Windows-Systeme ohne Nacharbeiten über GRUB startbar. | Da die Systeme voreinander versteckt werden, kann man zunächst nicht von einem Windows-System auf ein anderes Windows-System zugreifen. Dazu muss die entsprechende Windows-Partition erst manuell sichtbar gemacht werden. |
Die Reihenfolge, in der die Windows-Versionen aufgespielt werden, spielt keine Rolle. | Sollte Ubuntu und damit auch GRUB deinstalliert werden, sind Nacharbeiten notwendig, um alle vorhanden Windows-Versionen wieder starten zu können. |
XP löscht normalerweise alle Wiederherstellungspunkte, die es auf der Partition von neueren Windows-Versionen findet. Das Problem ist bei Microsoft bekannt und die offizielle Support Page von Microsoft schlägt einige Änderungen in der Registry vor. Das Verstecken von neueren Windows-Versionen vor Windows XP umgeht diese Problematik. |
Wie bereits eingangs erwähnt, spielt die Installations-Reihenfolge keine Rolle. Das gilt aber nur, wenn man folgende Grundsätze beachtet:
Sind auf dem Computer bereits andere Betriebssysteme vorhanden, so sollten wichtige Daten vor einer weiteren Installation gesichert werden. Hat man für die bereits installierten Betriebssysteme außerdem kein Installations-Medium zur Hand, so sollte man von dem betreffende System ein vollständiges Backup anlegen.
Primär-Partitionen, die für die jeweilige Windows-Installation nicht genutzt werden sollen, müssen unbedingt zuvor versteckt werden, da andernfalls die Startdateien für das zur Installation stehende Windows unter Umständen nicht auf die gewünschte Primär-Partition abgelegt werden. Zudem schützt dies davor, dass die Primär-Partitionen, die für die Installation nicht genutzt werden sollen, bei der Installation eventuell beschädigt werden.
Um nach einer Windows-Installation sämtliche Systeme starten zu können, muss GRUB, sofern er bereits installiert war, wiederhergestellt und angepasst werden.
Als erstes startet man das System mit der Live-CD[1], öffnet GParted[2] und partitioniert die Festplatte manuell[3]. Dabei ist es wichtig, dass für die Windows-System-Partitionen jeweils eine Primär-Partition eingerichtet wird, so dass sich folgendes Partitions-Schema empfiehlt:
Partition | Bezeichnung | Inhalt | erforderlich/optional | |
1. Primär-Partition | XP | Windows XP | erforderlich | |
2. Primär-Partition | Vista | Windows Vista | erforderlich | |
3. Primär-Partition | Win7 | Windows 7 | optional | |
Erweiterte Partition | erweitert | erforderlich | ||
1. Logische Partition | Ubuntu | Ubuntu | erforderlich | |
2. Logische Partition | swap | Auslagerungsdatei (Swap) | erforderlich | |
3. Logische Partition | windata | Windows-Daten | optional |
Die Bezeichnung und der Inhalt der Partitionen ist austauschbar. So könnte die 1. Primär-Partition z.B. auch Windows 7 und die zweite Primär-Partition Windows XP aufnehmen.
Abschließend setzt man die Markierung der ersten Primär-Partition auf "boot"[3] und stellt die beiden anderen Primär-Partitionen auf "hidden".
Als nächstes startet man das System mittels der Windows-Installations-CD/DVD, welche man auf die erste Primär-Partition installieren will. Welche Version das ist, ist wie bereits erwähnt egal, sofern man wie in Schritt 1 beschrieben, die übrigen Primär-Partitionen versteckt hat.
Nach erfolgreicher Windows-Installation startet man das System nun wieder mit der Ubuntu Live-CD, öffnet GParted und setzt die Partition, auf der man gerade das Windows installiert hat, auf "hidden" und entfernt die Markierung "boot". Außerdem setzt man die Partition, auf der nun das nächste Windows installiert werden soll, auf "boot" und entfernt dort das "hidden".
Nun startet man die zweite Windows-Version von der entsprechenden Installations-CD/DVD und installiert diese auf der zweiten Primär-Partition.
Je nach verwendeter Windows-Version werden die versteckten Partitionen innerhalb des Windows-Setup zwar angezeigt, können für eine Installation aber nicht ausgewählt werden bzw. es kommt zu einer Fehlermeldung, falls man es versehentlich doch versucht.
Jetzt kann Ubuntu installiert und eingerichtet werden. Bei der Installation ist dabei darauf zu achten, dass man die Option im Setup anwählt, die einem das manuelle Festlegen und Ändern der Partitionen erlaubt. Dort kann man dann die bereits erstellten Ubuntu-Partitionen den gewünschten Einhängepunkten zuweisen.
Damit die Windows-Versionen entsprechend weiterhin voreinander versteckt bleiben, muss man die Konfigurationsdatei des GRUB anpassen.
Windows kann nicht von einer versteckten Partition starten!
GRUB 2 erkennt zwar mittels des Skriptes /etc/grub.d/30_os-prober grundsätzlich die Starteinträge der verschiedenen Windows-Versionen auch dann, wenn deren Partition versteckt sind, die so generierten Einträge kümmern sich aber nicht um das Sichtbar- bzw. Unsichtbarmachen der verschiedenen Windows-Versionen. Also muss auch hier manuell nachgebessert werden.
Zunächst kann man aber die mittels os-prober erkannten Starteinträge aus der Datei /boot/grub/grub.cfg kopieren und als Grundlage für die angepassten Einträge verwenden.
Nachdem man diese Einträge aus dem Abschnitt 30_os-prober
kopiert hat, öffnet man die Datei /etc/grub.d/40_custom zur Bearbeitung und fügt sie dort ein.
GRUB 2 verwendet parttool
, um Partitionen zu bearbeiten. Damit kann man unter anderem Partition sichtbar machen oder verstecken sowie die Boot-Markierung setzen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" { insmod ntfs parttool (hd0,1) hidden- parttool (hd0,3) hidden+ parttool (hd0,2) hidden+ parttool (hd0,1) boot+ set root=(hd0,1) search --no-floppy --fs-uuid --set 12acd9f9acd9d6f7 drivemap -s (hd0) ${root} chainloader +1 } menuentry "Windows Vista (loader) (on /dev/sda2)" { insmod ntfs parttool (hd0,2) hidden- parttool (hd0,1) hidden+ parttool (hd0,3) hidden+ parttool (hd0,2) boot+ set root=(hd0,2) search --no-floppy --fs-uuid --set 5aec3f20ec3ef5bb chainloader +1 } menuentry "Windows 7 (loader) (on /dev/sda3)" { insmod ntfs parttool (hd0,3) hidden- parttool (hd0,1) hidden+ parttool (hd0,2) hidden+ parttool (hd0,3) boot+ set root=(hd0,3) search --no-floppy --fs-uuid --set 66ab81cd593c1aa6 chainloader +1 } |
In diesem Beispiel befindet sich auf sda1 Windows XP, auf sda2 Windows Vista und auf sda3 Windows 7. In den jeweiligen Abschnitten wird im search-Befehl die UUID der entsprechenden Partition angegeben (z.B. 12acd9f9acd9d6f7). Diese Angaben müssen der tatsächlich vorgefundenen Situation angepasst werden.
Nun speichert und schließt man das Skript 40_custom.
Danach muss man noch dafür sorgen, dass das Skript /etc/grub.d/30_os-prober nicht mehr abgearbeitet wird, in dem man die Datei /etc/default/grub zur Bearbeitung öffnet und dort folgende Zeile einfügt:
GRUB_DISABLE_OS_PROBER=true
Schließlich öffnet man ein Terminal[6] und übernimmt die Anpassungen mit folgendem Befehl endgültig:
sudo update-grub
Bei Verwendung von GRUB Legacy - bis einschließlich Jaunty - öffnet man nach Abschluss der Installation die Datei /boot/grub/menu.lst zur Bearbeitung [3].
Mittels der Befehle unhide (hdX,Y)
und hide (hdX,Y)
kann man beim Aufruf eines Starteintrages innerhalb von GRUB eine Partition sichtbar machen oder verstecken. Die Boot-Markierung setzt GRUB Legacy mittels des Befehls makeactive
:
Das Ganze kann dann so aussehen:
### END DEBIAN AUTOMAGIC KERNELS LIST title Windows XP hide (hd0,1) unhide (hd0,0) root (hd0,0) makeactive savedefault chainloader +1 title Windows Vista x64 hide (hd0,0) unhide (hd0,1) root (hd0,1) makeactive savedefault chainloader +1
In diesem Fall liegt Windows XP auf sda1 und Windows Vista auf sda2. Sollte sich das anders verhalten, muss man die Einträge entsprechend anpassen.
Diese Revision wurde am 11. Januar 2017 20:13 von XM-Franz erstellt.