ubuntuusers.de

Multi-Boot

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Keine der angegebenen Windowsversionen wird noch unterstützt.

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

Vorgehensweise

Wie bereits eingangs erwähnt, spielt die Installations-Reihenfolge keine Rolle. Das gilt aber nur, wenn man folgende Grundsätze beachtet:

Achtung!

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.

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

  2. Um nach einer Windows-Installation sämtliche Systeme starten zu können, muss GRUB, sofern er bereits installiert war, wiederhergestellt und angepasst werden.

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 1erste 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.

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

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

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

Achtung!

Windows kann nicht von einer versteckten Partition starten!

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

Diese Revision wurde am 21. April 2020 00:54 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Partitionierung, GRUB, Ubuntu, Installation