Windows 10 omzetten naar UEFI booten (i.p.v. klassiek booten)

Marco den Teuling
0

Inhoudsopgave

Als een al geïnstalleerde Windows-versie niet meer in de legacy-BIOS- maar in de UEFI-modus moet booten, heb je voor het omzetten maar twee handelingen nodig – maar die zijn dan wel vrij bewerkelijk. Bovendien moet nog aan een paar voorwaarden voldaan worden.

Of een pc opstart met het klassieke legacy-BIOS of via UEFI speelt doorgaans geen rol, omdat je daar in de praktijk geen verschil tussen merkt. Je zult dan ook zelden de bootmodus willen aanpassen, want als het tegenzit zal Windows helemaal niet meer starten! Soms is een aanpassing echter noodzakelijk. Misschien wil je een ssd overzetten uit een pc die op de klassieke manier boot naar een nieuwe pc die alleen boot met UEFI. Of je wilt UEFI-beveiligingsfuncties als Secure Boot of daaraan gekoppelde Enterprise-functies als Windows Defender System Guard gebruiken.

UEFI BIOS

De veiligste methode voor wijzigen van de bootmethode is eigenlijk met behulp van ons hulpprogramma c’t-WIMage. Daarmee maak je een image van de systeempartitie met alles wat daarop staat, vervolgens stel je het BIOS in op UEFI-boot en tot slot zet je de image terug. Hoe dat gaat, hebben we beschreven in uitgave 5/2019. Maar die manier kost (veel) tijd en als je al ergens een werkende back-up van je Windows-installatie hebt, kan het sneller. Dat kan via Windows PE of vanaf Windows 10 versie 1703 zelfs terwijl Windows draait.
Een waarschuwing vooraf: doe het omzetten alleen als het noodzakelijk is, want er is geen weg terug – behalve het terugzetten van de Windows-back-up. Het is zeker interessant om te weten hoe het omzetten werkt, maar nieuwsgierigheid alleen is geen goede reden om het daadwerkelijk te doen.

Windows en booten

Voor we beginnen nog een paar opmerkingen over waarom het aanpassen van de boot-modus eigenlijk een probleem is. Om het in één woord uit te drukken: Windows. Het op een opslagmedium geïnstalleerde Windows heeft dankzij Microsoft namelijk enkele afhankelijkheden waar geen technische noodzaak voor is. Om in UEFI-modus te kunnen booten, moet de Windows-bootloader zich bevinden op een opslagmedium met een GUID-partitietabel (GPT). Specifieker: dat moet een FAT-geformatteerde EFI System Partition zijn (ESP, standaard geformatteerd met FAT32). Bij de klassieke bootmethode moet de bootloader zich juist bevinden op een opslagmedium met MBR-indeling.

Voor het aanpassen van de bootmethode volstaat het daarom niet om alleen de BIOS-instellingen te wijzigen van klassiek booten naar UEFI-boot, want dan start Windows niet meer. Ook een aanpassing van het partitieschema is nodig. Op zijn minst zal er een ESP gemaakt moeten worden, en moet die worden voorzien van de juiste bootloader. Dat hoef je niet handmatig te doen, want daarvoor heeft Windows de commandline-tool MBR2GPT.exe.

Of Windows klassiek of via UEFI is gestart, kun je nagaan met het in Windows ingebouwde msinfo32.exe. Op de regel ‘BIOS-modus’ staat daar ‘UEFI’ oftewel ‘Verouderd’. Dat laatste duidt op de klassieke bootmodus. Het partitieschema van een opslagmedium kun je bijvoorbeeld via Apparaatbeheer controleren. Ga in het eigenschappenvenster van het schijfstation naar het tabblad Volumes en klik op de knop Invullen, dan staat de gezochte informatie op de regel Partitiestijl.

uefi start secure boot BIOS modus opstarten

Risico’s

Voordat je omschakelt, moet je twee potentiële risico’s uitsluiten. Het eerste: de commandlinetool draait niet alleen onder 64-bit maar ook op 32-bit Windows-versies, maar daar heb je in de praktijk eigenlijk niets aan. In de UEFI-modus moet de architectuur van de bootloader namelijk passen bij die van de UEFI-­firmware en die is op bijna alle pc’s 64-bit. Zet je bij zo’n pc een 32-bit installatie om, dan kan het resultaat niet ­booten. Opstarten in de klassieke modus lukt dan niet meer, maar ook niet via UEFI!

Omdat je de firmware niet makkelijk kunt controleren, moet je de architectuur daarvan in de praktijk nagaan. Dat gaat het makkelijkst met een Windows-­installatiemedium, dat je als het nodig is kunt maken met de Media Creation Tool. Maak daarmee een usb-stick voor een 32-bit Windows-installatie, stel het BIOS in op UEFI­-boot en probeer van die stick te booten. Herhaal die test met een 64-bit installatiemedium. Als die wel boot en de 32-bit versie niet, heeft de firmware een 64-bit architectuur. In de omgekeerde situatie is de architectuur 32-bit.

Die test maakt bovendien meteen duidelijk of het tweede risico aanwezig is, namelijk dat de pc in UEFI-­modus helemaal niet wil booten. Vooral pc’s die zijn uitgebracht vóór het verschijnen van Windows 8.1 hebben daar soms problemen mee.

Windows 10 omzetten naar UEFI controleren 32-bit 64-bit architectuur

Let op: de architectuur van Windows (zie afbeelding, hier 64-bit) en de firmware moeten hetzelfde zijn, anders kun je na het omzetten niet meer booten.

Randvoorwaarden

Om ervoor te zorgen dat het omzetten lukt, moet aan bepaalde voorwaarden zijn voldaan. Controleren of dat het geval is, is echter niet makkelijk. Als je echt zeker weet dat je de back-up van je Windows-installatie in geval van nood terug kunt zetten, kun je ook gewoon meteen verder lezen vanaf de tussenkop ‘Het omzetten’. Een alternatief is de in het begin genoemde methode via c’t-WIMage. Wil je liever eerst alles controleren? Dan doe je dat als volgt.

Om te beginnen controleer je de partitionering. Het opslagmedium moet op dit moment een MBR-partitionering hebben en er moet nog minstens 16 kB plus 2 sectoren ruimte ongebruikt zijn. De tool kan die ruimte niet zelf vrij maken. Daar belandt later de GPT (GUID-partitietabel) op. Als het partitioneren is gedaan door het installatieprogramma van Windows of met het ingebouwde Schijfbeheer of Diskpart, dan zijn normaliter 1024 kB vrij op de eerste partitie, wat meer dan genoeg is.

Als je de hoeveelheid ongebruikte ruimte nauwkeurig wilt nagaan, dan heb je de sectorgrootte nodig. Die vind je met het commando fsutil fsinfo sectorinfo c:. Normaliter is dat 512 bytes en heb je dus 16 kB plus twee maal 512 bytes nodig – oftewel 17 kB. Wat er nog echt aan ongebruikte ruimte is vóór de eerste partitie kun je controleren met DiskPart. Kies in diskpart eerst de schijf met list disk en select disk 0 (bij meerdere schijven moet je het juiste nummer kiezen) en laat de partities daarvan zien met list partition. De in KB, MB of GB aangegeven ‘offset’ bij elke partitie geeft het startpunt aan. Alles voor de offset van de eerste partitie is ongebruikt.

Overigens wordt er ook een kopie van de GPT bewaard aan het einde van het station, maar de ruimte die daarvoor nodig is (16 kB plus 1 sector) haalt de tool automatisch van de laatste partitie af.

Er zijn nog enkele voorwaarden bij het gebruik van MBR2GPT.exe gedefinieerd door Microsoft wat betreft de partitionering. Er mogen hooguit drie primaire partities aanwezig zijn en er mag geen uitgebreide partitie zijn. Voor elk station dat aan een stationsletter is gekoppeld moet een volume-ID zijn op te vragen (dat kun je testen met fsutil volume list). De volume-ID in Windows is wat het Linux-programma lsblk benoemt als PARTUUID.

Aan twee andere voorwaarden is automatisch voldaan als Windows klassiek boot van een MBR-schijf: de bootpartitie moet actief zijn en in het Windows-bootmenu (om precies te zijn in de BCD-store) moet een standaard-besturingssysteem-item verwijzen naar de Windows-installatie.

Tot slot werkt de conversietool alleen als de partitie waarop Windows is geïnstalleerd zich op dezelfde schijf bevindt als de partitie met de bootloader (dat is anders niet noodzakelijk). De bootloader bevindt zich normaliter op een aparte partitie met de naam ‘system-reserved’, die in Verkenner niet zichtbaar is omdat hij geen stationsletter heeft. Als een pc een enkele harde schijf of ssd heeft, is aan die voorwaarde sowieso voldaan.

Een speciaal geval is de Windows 10-versie 1903 (‘Mei 2019 update’), want die heeft een bug die niet in eerdere versies aanwezig was: het omzetten lukt daarbij niet helemaal. Windows boot wel via UEFI, maar de herstelomgeving Windows RE wordt niet meer goed in de bootmanager gekoppeld. Microsofts ‘Windows as a Service’ ontpopt zich hier weer tot ‘Windows as a Problem’. Maar er is een oplossing: deactiveer RE voor het omzetten en schakel het naderhand weer in. Of dit ook bij 1909 nodig is hebben we niet getest, maar het kan geen kwaad. Hoe je dat doet, lees je verderop bij het omzetten.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Het omzetten

Controleer om te beginnen of MBR2GPT.exe op jouw systeem iets te klagen heeft. Dat doe je met de volgende opdracht (de optie /allowfullos kun je weglaten als je dit vanuit Windows PE doet):

mbr2gpt /validate /allowfullos

Let op bij het interpreteren van de uitvoer. Krijg je de melding ‘Validation completed succesfully’ in plaats van opmerkingen, dan betekent dat niet dat het omzetten gegarandeerd gaat lukken. Maar als er wel problemen gevonden worden, zal het omzetten zeker mislukken. De melding die je krijgt op de opdrachtprompt is dus niet meer dan een eerste indicatie.

Op de Opdrachtprompt kun je eerst controleren of het omzetten mogelijk is, voordat je aan de slag gaat.

Als je het resultaat van de controle beter wilt (kunnen) lezen, maakt MBR2GPT.exe logbestanden aan die standaard in de map %windir% terechtkomen. De ­bestandsnamen zijn diagerr.xml, diagwrn.xml, ­setupact.log en setuperr.log. Je moet de twee laatste bestanden niet verwarren met de gelijknamige bestanden in %windir%\Panther. Het pad voor de logbestanden kun je zelf opgeven met de optie /logs:.

Als je Windows 10 versie 1903 gebruikt, deactiveer je nu Windows RE. De opdracht daarvoor is reagentc /disable. Heractiveren doe je nadat Windows succesvol met UEFI geboot is.
De opdracht voor het omzetten is vrij eenvoudig. Je converteert de systeemschijf met de volgende opdracht (bij Windows 1903 negeer je de meldingen maar over het RE-probleem):

mbr2gpt /convert /allowfullos

Als optie kun je eventueel /disk:1 opgeven als schijf 1 in plaats van schijf 0 moet worden omgezet. De nummers zijn hetzelfde als je ziet bij de uitvoer van het commando list disk.

Als de opdracht met succes is voltooid, moet je Windows afsluiten. Schakel vervolgens bij de BIOS-instellingen om van klassiek booten naar UEFI. Dat werkt helaas bij elke pc anders. Daarna kun je Windows weer starten, maar ditmaal wordt de nieuwe bootmodus gebruikt. Pas als dat gebeurd is, schakel je bij Windows 10 versie 1903 de herstelomgeving RE weer in met reagentc /enable.

Windows 10 omzetten naar UEFI mbr2gpt Windows RE herstelomgeving reagent

Sinds versie 1903 zit er een bug in Windows waardoor MBR2GPT.exe de informatie voor de herstelomgeving Windows RE niet kan bijwerken. Je moet die vooraf uitschakelen.

Voor Hyper-V

De beschreven werkwijze functioneert in principe ook bij virtuele machines, maar bij Microsofts Hyper-V zijn extra handelingen nodig. Daar moet je namelijk bij het maken van een virtuele machine al opgeven hoe die moet booten en is achteraf wijzigen niet de bedoeling. Het kan desondanks wel, als je het bestand met de virtuele schijf opneemt in een nieuwe virtuele machine die identiek is op de bootmodus na. De bootmodus hangt af van de ‘generatie’: virtuele machines van generatie 1 booten op de klassieke manier, bij generatie 2 booten ze via UEFI.

Start de virtuele machine die je wilt omzetten. Laat vervolgens MBR2GPT.exe en bij versie 1903 ­reagentc hun werk doen. Schakel de virtuele machine uit. Verwijder dan de eventueel aanwezige controle­punten van de virtuele machine in Hyper-V-Manager (dat duurt een tijd en kun je in Verkenner volgen in de map ‘Virtual Hard Disks’ van de virtuele machine). Als de virtuele harde schijf is bewaard in het oudere VHD-­formaat, gebruik je de wizard voor het bewerken van het opslagmedium bewerken in Hyper-V om dat om te zetten naar het nieuwe VHDX-formaat. Virtuele machines generatie 2 accepteren het oude VHD-formaat namelijk niet. Maak dan een virtuele machine generatie 2 en koppel daar het geconverteerde schijfbestand als station aan. De virtuele Windows-installatie zal dan booten in UEFI-modus. Als dat nodig is, kun je zoals hierboven beschreven Windows RE weer activeren. Het omzetten is dan gereed.

(Axel Vahldiek en Marco den Teuling, c’t magazine)

Uitgebreide achtergrondinfo lees je op je gemak in c't 05/2024

Meer over

Moederborden

Deel dit artikel

Marco den Teuling
Marco den TeulingHad als eerste eigen computer ooit een 16-bit systeem, waar van de 48 kilobyte toch echt niet ‘genoeg voor iedereen’ was. Sleutelt graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen. Vindt ‘Software as a Service’ een onbedoeld ironische naamgeving.

Lees ook

Raspberry Pi als NAS-systeem gebruiken? Dit moet je weten!

Wist je dat je een Raspberry Pi als Network Attached Storage (NAS) kunt gebruiken? Zo voldoet de Raspberry Pi 4 aan de belangrijkste eisen om dit te k...

Je Raspberry Pi op afstand bedienen? Zo krijg je het voor elkaar met SSH!

De Raspberry Pi op afstand bedienen is handig en kan op verschillende manieren. Via SSH is het makkelijkste op te zetten, we laten zien hoe.

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er