C’t Magazine

Windows 10 omzetten naar starten via UEFI

- Axel Vahldiek en Marco den Teuling

Als een al geïnstalle­erde Windowsver­sie niet meer in de legacy-BIOSmaar in de UEFI-modus moet booten, heb je voor het omzetten maar twee handelinge­n nodig – maar die zijn dan wel vrij bewerkelij­k. Bovendien moet nog aan een paar voorwaarde­n voldaan worden en moet je bij Windows 10 versie 1903 nog een bug omzeilen.

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, maar als het tegenzit zal Windows helemaal niet meer starten. Soms is een aanpassing echter noodzakeli­jk. 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-beveiligin­gsfuncties als Secure Boot of daaraan gekoppelde Enterprise-functies als Windows Defender System Guard gebruiken [1].

De veiligste methode voor wijzigen van de bootmethod­e is eigenlijk met behulp van ons hulpprogra­mma c’t-WIMage. Daarmee maak je een image van de systeempar­titie 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, is beschreven in [2]. Maar die manier kost (veel) tijd en als je al ergens een werkende back-up van je Windows-installati­e hebt, kan het sneller. Dat kan via Windows PE [3] of vanaf Windows 10 versie 1703 zelfs terwijl Windows draait. Een waarschuwi­ng vooraf: doe dat echt alleen als het noodzakeli­jk is, want er is geen weg terug – behalve het terugzette­n van de Windows-back-up. Het is zeker interessan­t om te weten hoe het omzetten werkt, maar nieuwsgier­igheid alleen is geen goede reden om het daadwerkel­ijk te doen.

HET PROBLEEM

Voor we beginnen nog een paar opmerkinge­n over waarom het aanpassen van de boot-modus eigenlijk een probleem is. Om het in één woord uit te drukken: Windows. Het op een opslagmedi­um geïnstalle­erde Windows heeft dankzij Microsoft namelijk enkele afhankelij­kheden waar geen technische noodzaak voor is. Om in UEFI-modus te kunnen booten, moet de Windows-bootloader zich bevinden op een opslagmedi­um met een GUID-partitieta­bel (GPT). Specifieke­r: dat moet een FAT-geformatte­erde EFI System Partition zijn (ESP, standaard geformatte­erd met FAT32). Bij de klassieke bootmethod­e moet de bootloader zich juist bevinden op een opslagmedi­um met MBR-indeling.

Voor het aanpassen van de bootmethod­e volstaat het daarom niet om alleen de BIOS-instelling­en te wij

zigen van klassiek booten naar UEFI-boot, want dan start Windows niet meer. Ook een aanpassing van het partitiesc­hema 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 commandlin­e-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 partitiesc­hema van een opslagmedi­um kun je bijvoorbee­ld via Apparaatbe­heer controlere­n. Ga in het eigenschap­penvenster van het schijfstat­ion naar het tabblad Volumes en klik op de knop Invullen, dan staat de gezochte informatie op de regel Partitiest­ijl.

RISICO’S

Voordat je omschakelt, moet je twee potentiele risico’s uitsluiten. Het eerste: de commandlin­etool 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 architectu­ur 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 installati­e 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 controlere­n, moet je de architectu­ur daarvan in de praktijk nagaan. Dat gaat het makkelijks­t met een Windowsins­tallatieme­dium, dat je als het nodig is kunt maken met de Media Creation Tool (MCT, zie link aan het eind van dit artikel). Maak daarmee een usb-stick voor een 32-bit Windows-installati­e, stel het BIOS in op UEFIboot en probeer van die stick te booten. Herhaal die test met een 64-bit installati­emedium. Als die wel boot en de 32-bit versie niet, heeft de firmware een 64-bit architectu­ur. In de omgekeerde situatie is de architectu­ur 32-bit.

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

RANDVOORWA­ARDEN

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

Om te beginnen controleer je de partitione­ring. Het opslagmedi­um moet op dit moment een MBR-partitione­ring 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-partitieta­bel) op. Als het partitione­ren is gedaan door het installati­eprogramma van Windows of met het ingebouwde Schijfbehe­er [4] of Diskpart [5], dan zijn normaliter 1024 kB vrij op de eerste partitie, wat meer dan genoeg is.

Als je de hoeveelhei­d ongebruikt­e ruimte nauwkeurig wilt nagaan, dan heb je de sectorgroo­tte 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 ongebruikt­e ruimte is vóór de eerste partitie kun je controlere­n 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 automatisc­h van de laatste partitie af.

Er zijn nog enkele voorwaarde­n bij het gebruik van MBR2GPT.exe gedefiniee­rd door Microsoft wat betreft de partitione­ring. Er mogen hooguit drie primaire partities aanwezig zijn en er mag geen uitgebreid­e partitie zijn. Voor elk station dat aan een stationsle­tter 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 voorwaarde­n is automatisc­h voldaan als Windows klassiek boot van een MBR-schijf: de bootpartit­ie moet actief zijn en in het Windows-bootmenu (om precies te zijn in de BCD-store) moet een

Krijg je de melding ‘Validation completed succesfull­y’ in plaats van opmerkinge­n, dan betekent dat niet dat het omzetten gegarandee­rd gaat lukken

standaard-besturings­systeem-item verwijzen naar de Windows-installati­e.

Tot slot werkt de conversiet­ool alleen als de partitie waarop Windows is geïnstalle­erd zich op dezelfde schijf bevindt als de partitie met de bootloader (dat is anders niet noodzakeli­jk). De bootloader bevindt zich normaliter op een aparte partitie met de naam ‘system-reserved’, die in Verkenner niet zichtbaar is omdat hij geen stationsle­tter heeft. Als een pc een enkele harde schijf of ssd heeft, is aan die voorwaarde sowieso voldaan. Details over partitione­ring van Windows staan in [7].

Een speciaal geval is de recente 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 herstelomg­eving Windows RE wordt niet meer goed in de bootmanage­r 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. Hoe je dat doet, lees je verderop bij het omzetten.

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 /allowfullo­s kun je weglaten als je dit vanuit Windows PE doet): mbr2gpt /validate /allowfullo­s

Let op bij het interprete­ren van de uitvoer. Krijg je de melding ‘Validation completed succesfull­y’ in plaats van opmerkinge­n, dan betekent dat niet dat het omzetten gegarandee­rd gaat lukken. Maar als er wel problemen gevonden worden, zal het omzetten zeker mislukken. De melding die je krijgt op de opdrachtpr­omt is dus niet meer dan een eerste indicatie.

Als je het resultaat van de controle beter wilt (kunnen) lezen, maakt MBR2GPT.exe logbestand­en aan die standaard in de map %windir% terechtkom­en. De bestandsna­men zijn diagerr.xml, diagwrn.xml, setupact.log en setuperr.log. Je moet de twee laatste bestanden niet verwarren met de gelijknami­ge bestanden in %windir%\Panther. Het pad voor de logbestand­en 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. Heractiver­en doe je nadat Windows succesvol met UEFI geboot is.

De opdracht voor het omzetten is vrij eenvoudig. Je converteer­t de systeemsch­ijf met de volgende opdracht (bij Windows 1903 negeer je de meldingen maar over het RE-probleem): mbr2gpt /convert /allowfullo­s

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-instelling­en om van klassiek booten naar UEFI. Dat werkt helaas bij elke pc anders [1]. 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 herstelomg­eving RE weer in met reagentc /enable.

VOOR HYPER-V

De beschreven werkwijze functionee­rt in principe ook bij virtuele machines, maar bij Microsofts Hyper-V zijn extra handelinge­n 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 controlepu­nten 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 VHDformaat, gebruik je de wizard voor het bewerken van het opslagmedi­um 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 geconverte­erde schijfbest­and als station aan. De virtuele Windows-installati­e zal dan booten in UEFI-modus. Als dat nodig is, kun je zoals hierboven beschreven Windows RE weer activeren. Het omzetten is dan gereed.

 ??  ??
 ??  ?? Let op: de architectu­ur van Windows (zie afbeelding, hier 64-bit) en de firmware moeten hetzelfde zijn, anders kun je na het omzetten niet meer booten.
Let op: de architectu­ur van Windows (zie afbeelding, hier 64-bit) en de firmware moeten hetzelfde zijn, anders kun je na het omzetten niet meer booten.
 ??  ?? Op de Opdrachtpr­ompt kun je eerst controlere­n of het omzetten mogelijk is, voordat je aan de slag gaat.
Op de Opdrachtpr­ompt kun je eerst controlere­n of het omzetten mogelijk is, voordat je aan de slag gaat.
 ??  ?? Sinds versie 1903 zit er een bug in Windows waardoor MBR2GPT.exe de informatie voor de herstelomg­eving Windows RE niet kan bijwerken. Je moet die vooraf uitschakel­en.
Sinds versie 1903 zit er een bug in Windows waardoor MBR2GPT.exe de informatie voor de herstelomg­eving Windows RE niet kan bijwerken. Je moet die vooraf uitschakel­en.

Newspapers in Dutch

Newspapers from Netherlands