ubuntuusers.deWikiMulti-Boot

Multi-Boot

Achtung!

Diese Seite wird aktuell überarbeitet. Bitte hier keine Änderungen mehr vornehmen, sondern in Baustelle/Multi-Boot!

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Multi-Boot-Installation mit versteckten Windows-Systemen

Wiki/Icons/ubuntu.png Wiki/Icons/windows_users.png

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.

Warum verstecken ?

Installiert man mehrere Windows-Systeme auf einem Computer, so landen die eigentlichen Startdateien, um Windows laden zu können, standardmäßig alle auf der gleichen Partition. Über den Bootmanager der zuletzt installierten Windows-Version werden dabei die schon vorhandenen Windows-Systeme gestartet.

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 hintereinander.

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. Über GRUB kann man dann jeweils direkt den Bootmanager der Windows-Version laden, die man auch starten möchte.

Vor- und Nachteile des Versteckens

Das Verstecken der Windows-System-Partitionen voreinander 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.
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.

Vorgehensweise

Dieser Artikel geht davon aus, dass noch keines der drei Betriebssysteme installiert ist. Sollte dies nicht der Fall sein, bitte den Unterpunkt Abweichungen beachten.

Schritt 1 - Vorbereitung der Festplatte mittels Ubuntu-Live-CD

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".

Schritt 2 - Installation der ersten Windows-Version

Wiki/Icons/hd-windows.png

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.

Achtung!

Ist eine Installation von Ubuntu bereits vorhanden, wird der MBR überschrieben. Weiterhin kann es bei einer separaten Partition für das Verzeichnis /boot dazu kommen, dass diese Partition beschädigt wird und daher formatiert werden muss. Daher sollte man schon vor der Installation von Windows unter Umständen auf der entsprechenden Partition vorhandene Splash Images oder Ähnliches und evtl. die menu.lst sichern.

Schritt 3 - Verstecken der Windows Partition mit der Ubuntu Live-CD

Nach erfolgreicher Windows-Installation startet man das System nun wieder mit der Ubuntu Live-CD 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".

Schritt 4 - Installation der nächsten Windows Version

Wiki/Icons/hd-windows.png

Nun startet man die zweite Windows-Version von der entsprechenden Installations-CD/DVD und installiert diese auf der zweiten Primär-Partition.

Hinweis:

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.

Schritt 5 - Installation von Ubuntu

Wiki/Icons/hd-linux.png

Jetzt kann Ubuntu wie gewohnt installiert und eingerichtet werden.

Ist Ubuntu bereits vorhanden, muss man nach Installation der Windows-Systeme nur den Bootloader Grub wiederherstellen.

Schritt 6 - Anpassen der Konfigurationsdatei des GRUB

Wiki/Icons/Oxygen/text-x-generic.png

Damit die Windows-Versionen entsprechend weiterhin voreinander versteckt bleiben, muss man die Konfigurationsdatei des GRUB Legacy bzw. das Konfigurationsskript von GRUB 2 anpassen.

Achtung!

Windows kann nicht von einer versteckten Partition starten!

GRUB Legacy

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:

Wiki/Icons/Oxygen/preferences-system.png

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.

GRUB 2

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:

Wiki/Icons/Oxygen/preferences-system.png

 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 vorherschenden 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 

Diese Revision wurde am 23. Dezember 2011 um 11:12 Uhr von Heinrich Schwietering erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Ubuntu, GRUB, Installation, Partitionierung

Passwort vergessen?