MBR2GPT - Partitionenschma unter Windows ändern

Dieser Artikel befasst sich mit dem konvertieren vom MBR Partitionierung zu GPT Partitionierung für ein Installiertes Windows System.
Für diesen Artikel muss man wissen, was es mit Partitionierungsschema auf sich hat. Ferner Grundsätzlich dass man früher MBR Partitionierung verwendete und heute GPT Partitionierung.
Dieser Artikel ist eine Erweiterung des Microsoft Hilfe Artikels zu dem Windows Kommandozeilen Tool "MBR2GPT" welches benutz werden kann, um das Partitionierungsschema einer Windows von MBR zu GPT zu ändern, ohne die Daten auf dem Speicher verlieren zu müssen.
Es sei hier darauf hingewiesen, dass man bei dem, was man hier tut, äußerst vorsichtig sein muss. Es wird an dem Partitionierungsschema gespielt. Das bedeutet, es kann im schlimmsten Fall zu Datenverlust und der eigenen Windows installation kommen. Daher ist hier eine vorhergehende Datensicherung am besten. Am besten empfiehlt sich hier sogar ein Diskdump.
Ferner wird hier kurzzeitig ein Desktop Linux verwendet. Dies sollte man zur Hand haben und soweit damit umgehen können, dass man weiß wie man zu den gezeigten Schritten kommt.

Hintergrund

Hierbei geht es um das Umstellen des Partitionsschema, wenn bereits ein Windows installiert ist. Das ist unter anderem bei Upgrade zu Windows 11 interessant. Dafür gibt es ein Kommandozeilentool von Microsoft, welches in Windows enthalten ist. Um die Verwndung und ein Paar hinweisen geht es hier.

MBR, BIOS, UEFI, GPT und Windows

Der Grund für das Thema liegt in den beiden verwendeten Partitionierungsschema MBR und GPT. Was ein Partitionierungschema ist, will ich hier nicht erklären.
Das MBR Schema wurde früher verwendet. Es unterstützt bis zu vier sog. Primäre Partitionen. Eine davon konnte unter Windows seit Windows 95 eine sog. Erweiterte Partition sein, die dann wiederum mehrere Logische Partitionen aufnehmen konnte. Es wurde eine Partition als "aktiv" markiert, damit das alte BIOS diese als Kandidaten für das Booten des Betriebssystems angenommen hat. Das kann man bis heute verwenden.
Das GPT Schema ist jünger. Hier gibt es, verglichen mit MBR, nur noch Primäre Partitionen. Dafür können diese verschiedene Typen haben. Dabei gibt es spezielle reservierte Typen. Einer davon ist die EFI System Partition (ESP). Aktuelle Computer haben kein klassisches BIOS mehr sondern ein UEFI. Dieses sucht zum Starten eines Betriebssystems nach GPT Datenträgern mit einer ESP. Diese muss auch mit FAT32 Dateisystem formatiert sein und es werden nur Startprogramme mit der Endung ".efi" unterstützt. Es soll theoretisch nur eine ESP geben, weshalb auch nie eine weitere angelegt wird, sofern eine bestehende erkannt wird. Es werden aber alle ausgewertet für den Start des Computers, die gefunden werden.
Windows 10 unterstützt das starten von beiden Varianten. Windows 11 tut direkt die Unterstützung nicht fallen lassen. Jedoch verlangt es für den Betrieb das sog. "Secure Boot" Feature, welches nur UEFI unterstützt (wenn im UEFI Modus gestartet wird). Dadurch unterstützt Windows 11 indirekt nur noch den start unter UEFI.
Alte Installationen, die eventuell über die Jahre per Windows Upgrade von Windows 7 oder älter gekommen sind, wurden eventuell noch trotz UEFI im sog. "Legacy Modus", also im BIOS Modus installiert. Der Wechsel auf Windows 11 durch ein Upgrade wäre zwar nett, um Umzüge, neu Einrichtung usw. zu vermeiden. Jedoch ginge dies nur bei Umstellung auf UEFI Boot.

Besonderes Hindernis - Mehrere Recovery Partitionen

In seltenen Fällen kommt es auch noch zu einer Besonderheit, die einem bei der Verwendung des Tools Probleme bereiten kann. Deshalb behandle ich diese hier gleich mit.
Durch das Jährliche Upgrade von Windows 10 kam es bei mir zu dem Problem, dass ich mehrere Recovery Partitionen hatte. Ja auch wenn GPT sehr viele "primäre" Partitionen kann, unterstützt MBR ja nur vier. Windows Legt zum Starten eine "System-Reserviert" Partition an, eine für die Windows Installation mit ihren Daten und Programmen und ferner auch eine Wiederherstellungspartition. Letztere musste zwischen den Windows 10 Versionen wohl von 500MB auf 800MB vergrößert werden. Aber Windows hat nicht die bestehende Partition vergrößert, sondern eine weitere Partition hinzugefügt und die Partition mit der eigentlichen Installation verkleinert.
Somit hatte ich die übliche Startpartition, eine Partition für Windows und zwei Partitionen mit Recovery. Windows machte das bislang nichts. Es hat einen Bootloader, den BCD, in dem die Einträge einfach auf die neue Partition geändert wurden. Die alte wurde einfach da liegen gelassen. Damit hatte ich aber vier Primäre Partitionen in meinem MBR Partitionsschema.
Das Tool, um das es hier geht, benötigt jedoch maximal drei Primäre Partitionen in der MBR Partitionstabelle, da es als Zwischenzustand die zukünftige ESP in das MBR Schema einbauen muss. Bedeutet maximal 3 Partitionen + eine neue ESP = vier Partitionen maximum ausgehend vom alten MBR Schema. Also musste ich die nicht mehr benötigte Recovery Partition auch noch los werden. Und dabei kommen ein Paar Fallen, die ich hier Zeige.

Wichtige Vorbedingungen

Entfernen der Recovery aus dem BCD

Nicht in jedem Fall relevant, aber in meinem Fall ist das entfernen einer doppelten Recovery. Diese liegen wie bereits einmal erwähnt auf dem Datenträger als Partitionen am Ende. Zu beiden gibt es auch einen Eintrag im BCD. Das ist der Bootmanager von Windows. Man sieht von diesen aber nur bei näherem hinsehen mit Werkzeugen für das Editieren des BCD, dass diese vorhanden sind. Beim start von Windows und den einfachen Einstellung bezüglich des Startvorgangs sieht man nur ein Eintrag für Windows selbst. Andere sichbare Einträge hätten damit nichts zu tun, sondern stehen eher für andere Bootoptionen. Handelt es sich in solchem Fall um ein Windows 10 / 11, können diese wiederum eigene Partitionen haben und einträge für die Recovery im BCD.

HINWEIS: Dieser Schritt wird in mehren Teilen gemacht, da durch das spätere ändern von Partitionen bezüge im BCD gelöscht werden (der Eintrag bleibt jedoch). Diese müssen zwischendurch wiederhergestellt werden, sonst geht die Umstellung nicht.

Verwenden von Bootice für des Entfernen

Das Ändern wird hier mit dem Tool Bootice ausgeführt. Ferner wird es in der Installationsumgebung von einem Windows ISO (egal welche Version) ausgeführt.
Bootice (die exe Datei(en)) legt man am Besten auf dem Windows Laufwerk [C:] gut zu finden ab. Somit steht es gleich in der Umgebung des Windows Installations Image zur Verfügung.
Nun ein Windows Installations Image in Form von USB-Stick an den Rechner stecken oder als DVD in das Laufwerk legen und davon starten.
Angekommen bei dem Begrüßungsdialog wählen wir folgende Dinge aus, um Bootice zu öffnen:

  1. Sprache auswählen und bestätigen
    Sprache auswählen und bestätigen
  2. Am unteren linken rand auf den Link "Reperaturoptionen" klicken
    Am unteren linken rand auf den Link "Reperaturoptionen" klicken
  3. "Problembehandlung" auswählen
    "Problembehandlung" auswählen
  4. "Eingabeaufforderung" auswählen
    "Eingabeaufforderung" auswählen
  5. "notepad" eingeben und Enter drücken. Oder den Pfad wissen, eingeben und Enter zum Starten.
    "notepad" eingeben und Enter drücken. Oder den Pfad wissen, eingeben und Enter zum Starten.
  6. Den Datei öffnen Dialog wählen. Das ist fast ein Explorer. Dateityp auf "Alle Dateien" umstellen.
    Den Datei öffnen Dialog wählen. Das ist fast ein Explorer. Dateityp auf "Alle Dateien" umstellen.
  7. Bootice auswählen, mit Rechstklick im Menü "Als Administrator ausführen" auswählen.
    Bootice auswählen, mit Rechstklick im Menü "Als Administrator ausführen" auswählen.

Um sich einen Überblick zu verschaffen öffnet man kurz in Bootice das Menü "Partition Management" über den Button "Parts Manage" im ersten Tab des Hauptfensters. Man sieht eine Tabelle aller Partitionen, auch derer, die Windows sonst nicht zeigt.
Die Spalte "Label" gibt bereits ein Paar hinweise wo Windows installiert ist. Ferner erkennt man vielleicht die Partition mit "System Reserviert" als Label. Dort liegt aktuell der BCD. Dorthin muss gleich der BCD Dateipfad gesucht werden.
Alle Disks haben Laufwerksbuchstaben bekommmen. Dadurch kann man sich [C:] hier für den BCD merken und Windows ist aktuell auf [D:] zu finden. Die Beiden Partition [E:] und [F:] sind die beiden Recovery Partitionen.
Die Partition mit Lauferk [E:] ist hierbei die Größere (siehe Spalte "Capacity" ganz rechts). Das ist die aktuelle Recovery, wie uns der BCD gleich mitteilen wird.
Um im Schritt des Partitionen entfernen es leichter zu haben, klicken wir zunächst auf die Tabellenzeile für [F:] und danach auf den Button "Hide". Die Markierung sehen wir bim Entfernen der Partion dann und müssen nicht suchen. Nach bestätigung der Dialogbox verlassen wir mit "Close" das Fenster für die Partitionen und wählen im Hauptfenster den Tab "BCD" aus.

Der Pfad von dem BCD ist nicht einfach auswählbar. Man hat eine Pfad zeile, an deren Ende ein Button mit drei Punkten ist. Dieser ist zum Pfad suchen und wird ausgewählt. Der BCD liegt also unter [C:] deswegen geht man via "Dierser PC" auf den Laufwerksbuchstaben und sieht erst mal sehr wenig. In das Feld unten neben "Dateiname:" trägt man kurz "\boot" ein unt drückt die Enter Taste. Die Eingabe Verschwindet und jetzt sieht man mehr. Man wählt aus der Liste die Datei "BCD" und bestätigt. Man landet wieder im Hauptfenster und der Pfad steht nun in der Zeile.
Für das was wir vorhaben brauchen wir leider den "Professional Mode" dessen Button man nun klicken muss.

Übersicht über alle Bootoptionen. Makiert ist Windows 10 und rechts die GUID der Recovery Sequenz.

In dem neuen Fenster sieht man links einen Baum, wo man überall die Ansicht wechseln kann. Man hat "BCD Store", darunter "Application Objects" und darunter zwei mal "Windows Recovery Environment" und "Windows 10". Etwas weiter Unten im Baum sind noch "Device Objects" und "Windows Recovery". Diese Punkte sind interessant. Im Bild habe ich "Windows 10" aus den "Application Objects" ausgewählt.
Rechts kommen jeweils die Einträge, zu dem was links im Baum angeklickt wurde. In der Tabelle steht die Teile "RecoverySequence". In der spalte zu der Zeile daneben steht in den geschweiften Klammern die GUID der aktuellen Recovery, die wir behalten sollen. Es reicht sich die letzten stellen zu merken, also hier "...d4081}".
Als nächstes wählen wir im Baum links eine der "Windows Recovery Environment" Einträge.

Im Bild 2x ein Screenshot. Einmal die Recovery die gelöscht wird. Darunter die aktuelle. Zu unterscheiden an GUID und Laufwerk zuordnung.

Mit der GUID unter "RecoverySequence" kann man nun den alten Recovery Eintrag identifizieren und löschen. Man klickt links im Baum zum vergleichen jeweils auf die einträge der Recoverys neben dem "Windows 10" Eintrag und verleicht rechts die den Wert der Zeile "GUID Alias" mit der "RecoverySequence" von Windows 10. Bei dem einen Eintrag passt die GUID nicht und die Zeilen wie "ApplicationDevice" und OSDevice" enthalten keinen Laufwerksbuchstaben. Bei dem anderen Eintrag ist die GUID passend (vergl. über das Ende) und die beiden anderen Zeilen weisen jeweils [E:] in der Spalte auf.
Gelöscht wird nun also der, bei dem die GUID nicht passt und ohne Laufwerksbuchstaben. Die macht man, in dem man im Baum einen rechtklick auf den entsprechenden Recovery eintrag macht und "Delete this entry" aus dem Menü wählt. Man wird noch einmal gefragt und die GUID wird noch mal genannt. Stimmt diese, bestätigen und der Eintrag ist gelöscht.
Nun ist der Eintrag weg und die Arbeit mit Bootice (Teil 1) ist fertig. Als nächstes muss die Partition entfernt werden. Das schreibe ich unten bei der Partitionierung unter Linux.
Man schließt nun alle Fenster von Bootice. Bei demm immer noch offenen Datei öffnen Dialog von Notepad klickt man auf abbrechen und ignoriert eine folgende Fehlermeldung. Notepad wird geschlossen. In die Eingabeaufforderung trägt man "exit" ein und drückt Enter. Zurück auf der Auswahl bezüglich "Problembehandlung", wählt man nun "PC ausschalten".

Partitionen Anzahl und Anordnung Vorbereiten

Der Rechner wird als nächstes mit einem Linux gestartet, welches das Programm "GParted" enthält. Das sind System ISOs wie "Debian", "Ubuntu" oder "Linux Mint". Es gibt auch ein Spezial ISO von den GParted Entwicklern, welches nichts weiter enthält außer ein Mini Linux und GParted. Ist der Rechner gestarted, ruft man GParted auf. In meinem Beispiel habe ich nur eine Festplatte. Man kann die Platten rechts oben auswählen. Man erkennt die richtige Platte an den Partitionen mit dem Windows und einer Partition die als Markierung (flag) "hidden" hat.
In meinem Beispiel habe ich 4 Partitionen. Die letzte mit dem "hidden" Flag ist Rest des letzten Schritt mit Bootice und soll nun entfernt werden. Ganz generell muss auf die Anordnung der Partitionen geachtet werden.

Doppelte Recovery entfernen mit GParted

Die Partition der Recovery erkennen wir an dem Flag "hidden". Mit rechts klick anwählen und mit "Delete" zum Entfernen markieren

In GParted wählt man nun die Zeile mit der Recovery aus, die man in Bootice als "hidden" markiert hat. Diese löscht man. Dazu einen rechtsklick auf die Partition in der Tabelle und im Menü "Delete" auswählen. GParted merkt sich das nur vor, auch wenn es das als gelöscht anzeigt. Das hat den dass man zuerst in ruhe weiter machen kann und wenn etwas schief geht, kann man GParted beenden und nichts ist kaputt. Die Partition wird entfernt und der Speicherplatz steht zur verfügung. Die Anzahl der Partition geht in diesem Fall von 4 auf 3 zurück. Damit ist die zweite Bedingung für die Konvertierung fertig. Die dritte bedingung kommt gleich mit den rest der Partitionen.

Position und Abstand der Partitionen ändern

Die verbleibende Recovery sollte an das Ende verschoben werden. Am Anfang & am Ende müssen 2kB frei Speicherplatz seien. GParted lässt nur MB zuu, daher wird am Anfang und am Ende jeweils 1MB frei gelassen.
So wird im Move Dialog für die Recovery bei "Free space following" eine 1 eingetragen und in das Feld mit dem Label "New Size" geklickt. GParted verschiebt die Partition nun ans Ende und vorne wird nun der freie Speicher (-1MB) angegeben. Dies wird bestätigt.
Die Windows Partition wird nun auch an das Ende bis zur verbleibenden Recovery geschoben. Wenn man in dem Menü für "Move/Resize" ist, wird in die Zeile "Free space preceding" eine 2 eingetragen und einfach mit der Maus am Partitions-Balken oben das Ende festgehalten und bis zum Ende gezogen. Die werte unten ändern sich Automatisch bis bei "Free space following" eine 0 steht. Das wird auch bestätigt.
Zuletzt haben wir noch die alte "System Reserviert" Partition. Am Anfang muss 1MB frei bleiben. Also muss auch diese wieder verschoben werden. Hier wird jetzt im bekannten Dialog bei dem Feld "Free space preceding" eine 1 bzw. eine 2 eingetragen und bestätigt.
Ist das alles Eingestellt, wird oben in GParted auf "Apply all Operations" geklickt. Das Tool fragt noch kurz ob wir sicher sind, dass wir das durchführen wollen und das bestätigen wir mit "Yes". GPrated löscht dann wirklich die Recovery Partition und verschiebt die anderen Partition. Durch das Verschieben der Windows Partition kann das ganze jetzt jeh nach Größe und Speicher dauern.
Wenn alles Fertig ist, wird der Recher wieder heruntergefahren.

  1. Um Partitionen in der Größe zu verändern und/oder zu verschieben, per rechts klick auf die Zeile im Menü "Resize/Move" auswählen.
  2. Man trägt nur die 1 in das letzte Feld ein und klickt in das Größen Feld. Rest macht GParted wie gewünscht alleine.
  3. Windows wird hier ans Ende verschoben. Das geht durch eintragen der 2 in der ersten Zeile und Ziehen mit der Maus am Ende des Balken oben.
  4. Die alte System Reserviert Partition wird 1MB vom Anfang weg geschoben.
  5. So sieht die Partitionstabelle aus, bevor man sie übernimmt.

Konvertierung durchführen

Nun ist (fast) alles vorbereitet. Nun kann die Konvertierung von MBR Partitionierungsschema zu GPT erfolgen. Dazu wird nun der Rechner wieder mit Windows Setup gestartet. Es wird auch hierbei wieder eine Kommandozeile und kurzzeitig auch noch einmal Bootice benötigt. Wie man an alles kommt habe ich bereit oben erwähnt. Deshalb setzte ich gleich an der offenen Kommandozeile bzw. dem gestarteten Bootice und offenem "Professional Mode" Dialog an.

BCD Einträge kurz beheben

Für das bekannte "Windows 10" und "Windows Recovery Environment" Laufwerksbuchstaben setzen wie gezeigt. Hier nun auch Bei "Device objects" das "SdiDevice" ändern.

Bevor nun die Konvertierung los gehen kann wird noch einmal kurz Bootice benötigt.
Wenn sich die Anzahl der Partitionen ändert, verlieren im BCD die jeweiligen Einträge automatisch alle Bezüge. Über den Sinn dahinter lässt sich streiten. Da in dem Schritt mit GParted Partitionen entfernt wurden sind nun bei dem Haupteintrag für Windows und dem Eintrag der Recovery die Laufwerksbezüge weg. Das kann man mit Bootice ganz leicht beheben.
Ferner ein Hinweis: Das Tool "mbr2gpt" um das es hier geht, hat auch einige Fehlermeldungen, die man nicht gleich versteht. In diesem Zusammenhang aber erwähne ich dass eine Fehlermeldung "Can not find OS partition" auf die Einträge im BCD deutet und das diese nicht in Ordnung sind. Es kann in diesem Fall an mehr als eine "Windows Recovery Environment" liegen, als auch daran, dass die Laufwerksbezüge nicht stimmen.
Um das zu fixen geht man wieder in Bootice in die BCD Datei mit dem "Professional Mode" (s. oben). Bei der Entfernung der doppelten Recovery wurde oben bereits gezeigt, wie die Einträge lauten und wo Einstellungen zu finden sind. Man Klickt unter "Application objects" auf den Windows Eintrag und Stellt jeweils für "Application Device" und "OSDevice" [D:] ein. Dies geht per Doppelklick auf die Tabellenzeile. Man bekommt einen Auswahldialog und wählt dort [D:] aus und bestätigt. Die ganze Prozedur wird noch einmal wiederholt für den Eintrag "Windows Recovery Environment" und nimmt hier jedoch [E:].
Ein drittes mal muss diese Prozedur gemacht werden. Im Baum unten unter den "Device objects" findet man noch einmal "Windows Recovery". Klickt man da drauf, zeigt sich rechts in der Tabelle eine andere aufzählung von Wertezeilen. Hier muss man die Prozedur nur auf die Zeile "SdiDevice" ausführen. Also wieder nur durch Doppelklick im Dialog [E:] einstellen und bestätigen.
Jetzt kann Bootice geschlossen werden. Die Konvertierung kann nun durchgeführt werden.

Konvertierung mit MBR2GPT

Man beötigt dafür nun den Rechner mit den Vorbedingungen so wie oben geschaffen. Wie darüber gezeigt müssen im BCD die Einträge alle auf das richtige Laufwerk zeigen. Durch den Start von Bootice ist dann ggf. noch Notepad offen, das kann geschlossen werden. Nun geht es in der Eingabeaufforderung weiter.
Diese befindet sich im Pfad unter "[X:]\sources". Man wechselt nun den Pfad mit cd ..\Windows\System32. Man muss nun die Nummer der Platte wissen, wo Windows installiert ist. Man kann das herrausfinden indem man sich diskpart aufruft (kurze Sekunde warten bis DISKPART> erscheint) und probiert dann jeh nach Anzahl der Platten von 0-(+~) select disk N (N ist die Nummer) und list partition. Werden einem die erwarteten Partitionen angezeigt (sieh oben) dann merkt man sich (N) und verlässt diskpart mit exit.
Nun wird mbr2gpt aufgerufen. Zunächst sollte man das immer mit der Prüfung ausführen. Man gibt ein mbr2gpt /validate /disk:N und verwendet für (N) die Nummer aus diskpart. Sagt einem das Tool MBR2GPT: Validation completed successfully kann man weiter machen. Ein beliebter Fehler steht oben beim BCD Fix. Haben wir keinen Fehler, haben wir noch keine Gewissheit. Jetzt wird es ernst. Jetzt sollten wir für Notfälle ein Backup haben.
Man startet die Konvertierung nun mit mbr2gpt /convert /disk:N. Jetzt kann tatsächlich etwas schiefgehen. Aber dass sollte durch die Tipps oben mit GParted nicht passieren. Ein fehler ist u.a. "Cannot find room for the EFI system partition", dann haben wir nicht wie oben gezeigt am Anfang und am Ende >= 1MB freien Platz gelassen. Leider hat das Tool gerade die "System Reserviert" Partition gelöscht und Windows kann von Festplatte nicht mehr Booten. Deshalb der Hinweis mit dem Backup.
Andernfalls sollte das tool nun erfolgreich die Konvertierung durchführnen können.
Ist das Tool fertig, warnt es uns, dass wir jetzt nur noch Booten können, wenn wir im UEFI des Rechners die Booteinstellungen auf UEFI Boot einstellen. Das ist pro Hardware unterschiedlich und kann jetzt hier nicht gezeigt werden. Ist UEFI Boot aktiviert, können wir jetzt den Rechner mit dem normalen Windows starten. Dazu ggf. die Komandozeile mit exit verlassen und im Menü "PC aussachlten" auswählen. Die Quelle für Windows Setup entfernen und den Rechner starten lassen. Nun haat man ein Windows mit UEFI Boot und können Secure Boot verwenden.

X:\sources>cd ..\Windows\System32

X:\Windows\System32>MBR2GPT.EXE /validate /disk:0
MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Validation completed successfully

X:\Windows\System32>MBR2GPT.EXE /convert /disk:0

MBR2GPT will now attempt to convert disk 0.
If conversion is successful the disk can only be booted in GPT mode.
These changes cannot be undone!

MBR2GPT: Attempting to convert disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Backing up the system partition
MBR2GPT: Creating the EFI system partition
MBR2GPT: Installing the new boot files
MBR2GPT: Performing the layout conversion
MBR2GPT: Migrating default boot entry
MBR2GPT: Adding recovery boot entry
MBR2GPT: Fixing drive letter mapping
MBR2GPT: Conversion completed successfully
MBR2GPT: Update WinRE config file
MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!

X:\Windows\System32>