Hat man Windows vor $langerzeit installiert, wird das System vermutlich einen MBR und BIOS-Boot nutzen. Auch wenn diese Methode meist noch funktioniert, ist sie doch nicht mehr ganz zeitgemäß und kann in einigen Situationen dazu führen, dass man plötzlich etwas Bootfunktionalität vermisst. Insbesondere mit virtuellen Systemen, oder bei Dual-Boot, ist EFI oft flexibler und GPT im Zweifel resilienter gegen Störungen. Glücklicherweise kann man solche Systeme oft mit ein paar Befehlen, etwas Geduld und vielen gedrückten Daumen erfolgreich umwandeln, ohne dass eine Neuinstallation oder größere Kopiervorgänge notwendig sind.
Vorbedingungen
Um erfolgreich auf das GPT-Partitionsschema und einen EFI-Bootloader umzustellen, müssen einige Vorbedingungen erfüllt sein. Zuallererst muss die drunterliegende Hardware bzw. der Hypervisor natürlich das Booten per EFI unterstützen. Für Hardware sollte alles aus den letzten 10+ Jahren funktionieren. Bei VMs muss ggf. in der Konfiguration der Boot-Modus umgestellt werden.

Weiterhin wird etwas Platz benötigt. Etwa 150MB reichen aus. Bei VMs kann man z.B. die virtuelle Festplatte vergrößern, andernfalls kann man in Windows die Datenträgerverwaltung bemühen und die letzte Partition des Datenträgers verkleinern. Für Profis: Zumindest ein paar Byte müssen am ENDE des Datenträgers frei sein.

Verschlüsselungen wie Bitlocker habe ich nicht genutzt, im Zweifel sollte man diese für die Dauer der Umstellung abschalten. Ein Boot-Stick des Betriebssystem (bei aktuellen Systemen als Download, teils über Media Creation Tool) sollte zur Hand sein. Ich nutze Ventoy mit den zugehörigen ISOs.
Zu guter Letzt sollte man natürlich ein getestetes(!) Backup besitzen. Auch wenn die Methode bei mir bisher zuverlässig funktionierte, kann immer etwas schief gehen. Jedes System ist anders.
Part 1: Partitionsschema umwandeln
Erster Schritt ist die Umwandlung von MBR zu GPT. Letzteres ist deutlich neuer, hat Mechanismen um Beschädigungen zu erkennen/reparieren, kann mit größeren Datenträgern umgehen (MBR max. 2TB) und kann mehr als 4 (primäre) Partitionen pro Datenträger verwalten. Um keine Konflikte mit dem eigentlichen System zu provozieren nutze ich ein Linux-Livesystem, namentlich GParted. Technisch sollte auch das Windows-Tool mbr2gpt.exe funktionieren, dieses hat jedoch einige Einschränkungen.
Als Erstes startet man also GParted. Die Standardeinstellungen sind meist OK, bestenfalls das Tastaturlayout sollte man auf QWERTZ ändern, falls man mit QWERTY nicht klar kommt. Die GUI kann direkt über den „Block“ oben rechts geschlossen werden, stattdessen benötigen wir das Terminal. Hier macht man sich über „sudo su
“ zum Systemverwalter. Wir wissen ja was wir tun und haben ein Backup – oder so. Mit lsblk
kann man die aktuellen Datenträger und Partitionen raussuchen. Hier notiert man sich den Namen der Festplatte/SSD (Type: disk), welche man umwandeln möchte. Für S-ATA ist dies meist „sda„, bei NVME „nvme0n1„.
Nun geht es an die eigentliche Umwandlung. Mit „gdisk /dev/sda
“ (name passend Tauschen) öffnet man das Gerät im GPT-Editor. Dieser sollte nun energisch darauf Hinweisen, dass er Magie anwendet und keine Gewähr für fehlende Körperteile oder Daten übernimmt:
Found invalid GPT and valid MBR; converting MBR to GPT format in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if you don't want to convert your MBR partitions to GPT format!
Wichtig: Es darf keine Warnung bzgl. überlappenden Partitionen geben.
Warning! Secondary partition table overlaps the last partition by 33 blocks!
You will need to delete this partition or resize it in another utility.
Ist dies der Fall, steht am Ende des Datenträgers nicht genug Speicher zur Verfügung, es wurde also wohl nicht, wie oben beschrieben, passend verkleinert. Eventuell kann man in diesem Fall über die GParted-GUI die dortige Partition nochmal verkleinern bzw. verschieben und es erneut versuchen.
Alles OK? Dann haben wir nichts weiter zu tun. Gdisk hat bereits alle MBR-Partitionen in das GPT-Equivalent umgerechnet. Wer möchte kann mit „p
“ einen Blick drauf werfen. Mit „w
“ wird – nach Bestätigung – die neue Partitionstabelle auf den Datenträger geschrieben. Der GPT-Part ist somit abgeschlossen.
Part 2: EFI-Boot
Für UEFI benötigen wir jedoch noch etwas: Eine spezielle Boot-Partition. Diese ist vom Typ FAT32 und sollte >=100MB groß sein. Ich nutze für Umstellungen meist 128MB, Standard für Neusysteme ist bei den meisten Betriebssystemen etwa 512MB. Da GParted noch gebootet ist, kann man diese z.B. über die GParted-GUI an einer freien Stelle passend anlegen – ist meist übersichtlicher als auf der Konsole freie Blöcke zu finden. Windows lässt gerne mal ein paar Sektoren zwischendrin frei und verwirrt die Automatiken von fdisk & co. Also: In der GUI einen freien Block suchen, Rechtsklick→New, ggf. bei „New Size“ die gewünschte Größe anpassen und als File System „FAT32“ wählen. Ich schiebe die Partition meist noch oben nach rechts und vergrößere die Partition des Betriebssystems um eventuelle Lücken zu füllen. Über den grünen Haken schreibt man die Änderungen auf den Datenträger. Nach Abschluss des Vorgangs muss die Partition noch als „EFI System Partition“ markiert werden. Dazu macht man einen Rechtsklick auf die frische FAT32-Partition und wählt unter „Manage Flags“ die Einträge „esp“ und „boot„. Der Datenträger ist somit für EFI vorbereitet und GParted kann heruntergefahren werden.

sda1; RECOVERY, ntfs; 3.02/512MiB – 8Mib unallocated – sda2; OS; ntfs; 68.26MiB/122.07MiB – 4.42GiB unallocated (ausgewählt). Kontextmenü mit „New“ ausgewählt.



Jetzt muss nur noch das Betriebssystem überzeugt werden mit der neuen Basis zu starten. Hierzu startet man einen passenden Installationsdatenträger, wählt aber über Repair→Troubleshoot die Eingabeaufforderung/Command line.



Hier werden dann erst mal die Laufwerksbuchstaben sortiert – ist mir sonst zu viel Chaos. Mit diskpart
gelangt man in den passenden Editor, mit list volume
kann man die aktuellen Partitionen und deren Buchstaben anzeigen lassen. Möchte man etwas ändern, wählt man z.B. mit „select partiton 3
“ aus und weist mit „assign letter=s
“ den Buchstaben zu. Ich habe die Windows-Partition auf C und die kleine EFI-Partition auf S.

Ist man Fertig kann man das Tool mit exit
beenden. Zuletzt wird der Windows-Bootloader neu aufgebaut – dies geschieht über die folgenden Befehle:
Bcdboot C:\Windows /s S:
Bootrec /fixmbr
Bootrec /fixboot
Bootrec /rebuildbcd
Nun kann man mit Exit
und den passenden Menüpunkten das System ausschalten. Mit ausreichend gedrückten Daumen sollte beim nächsten Versuch Windows dann wieder starten und das gewohnte System präsentieren. Dieses kann man nun bewundern und die durch Umwandlung statt Neuinstallation gewonnene Zeit nutzen um darüber nachzudenken, wie man die Anwendung zukünftig auf ein freies Betriebssystem umziehen kann.