UEFI-problemen oplossen doe je zo
Tenzij je pc al flink wat jaren oud is, is de kans groot dat het om een uefi-systeem gaat. UEFI is de opvolger van het klassieke BIOS dat lange tijd de standaardinterface was tussen het besturingssysteem en de eigenlijke systeemfirmware. UEFI heeft onmiskenbaar voordelen, maar de voorwaarden zijn behoorlijk streng en kunnen een succesvolle opstart zomaar in de weg zitten. We bekijken enkele typische opstartproblemen en bieden een uitweg.
Het BIOS oftewel basic input output system zorgt ervoor dat je pc kan opstarten, nog voor het besturingssysteem aan de beurt is. Het BIOS voert eerst een ‘post’ (power-on self test) uit en initialiseert cruciale hardwarecomponenten. Daarna zoekt het op de opslagmedia naar een besturingssysteem, of eigenlijk naar de mbr (master boot record), een sector aan het begin van de schijf. Die bevat informatie over het bestandssysteem en activeert uiteindelijk de bootloader, waarna het besturingssysteem opstart.
Bij opvolger UEFI (unified extensible firmware interface) loopt dat niet wezenlijk anders. Dat maakt dat men beide termen weleens door elkaar gebruikt of dat men het simpelweg over ‘UEFI-BIOS’ heeft. Toch biedt de UEFI enkele duidelijke voordelen. De configuratie-omgeving kan grafisch zijn, opstartschijven kunnen meer dan 2,2 TB bevatten, het opstartproces verloopt net iets sneller en vooral veiliger, mede dankzij ‘secure boot’. Deze functie zoekt naar een digitale handtekening in de bootloader van een besturingssysteem om te voorkomen dat malware als rootkits je systeem zomaar overnemen.
Op zich niets dan voordelen dus, maar UEFI stelt ook enkele technische voorwaarden en die kunnen weleens voor onverwachte problemen zorgen. Aangezien de UEFI als interface optreedt tussen de systeemfirmware en het besturingssysteem, zal het je weinig verbazen dat het meestal om bootproblemen gaat. Die kunnen zich vooral manifesteren bij het installeren en migreren van een bootschijf, bij het opstarten van een live bootmedium en in dualboot-opstellingen. In dit artikel bespreken we enkele uiteenlopende scenario’s.
01 Installatiemedium
Wanneer je Windows ‘schoon’ wilt (her)installeren gaat dat wellicht het makkelijkste met een usb-installatiemedium. Om hiervan zowel op UEFI- als legacy BIOS-systemen te kunnen opstarten, maak je het best gebruik van Microsofts Media Creation tool. Ga naar www.tiny.cc/w10down en klik op Hulpprogramma nu downloaden. Deze knop verschijnt alleen op een Windows-pc; bij macOS en Linux verschijnt een lijst met iso-bestanden die je dan met een andere tool op een installatiestick kunt plaatsen (zie ook paragraaf ‘Externe tool’).
Start het hulpprogramma op en kies Installatiemedia (USB-stick, dvd of ISO-bestand) voor een andere pc maken. In het volgende venster verwijder je het vinkje bij Gebruik de aanbevolen opties voor deze pc, zodat je zelf de opties Taal, Versie en Architectuur (64-bits, 32-bits of Beide) kunt selecteren. Vervolgens duid je USB-flashstation aan (tenzij je toch liever gewoon het ISO-bestand downloadt), verwijs je naar je usb-stick en start je het proces.
©PXimport
02 Partitiestructuur
Dit hulpprogramma is weliswaar een van de handigste manieren om Windows op zowat alle systemen geïnstalleerd te krijgen, maar toch kunnen ook hier obstakels opduiken.
We hebben het al een paar keer meegemaakt dat de tool de melding Kan geen USB-flashstation vinden toont, terwijl er wel degelijk een usb-stick in de pc zat.
Naast klassieke problemen als drivers of gebrekkige usb-hardware kan dat ook aan een foutieve partitiestijl van de stick liggen. Om op een UEFI-systeem van een extern station (zoals een usb-stick of -schijf) te kunnen opstarten, moet het station namelijk voorzien zijn van een mbr-partitiestructuur met een actieve partitie.
Dat kun je als volgt regelen en het is trouwens geen slecht idee om dit ‘preventief’ op elke usb-stick te doen die je als bootstick gaat gebruiken. Druk op Windows-toets+R, tik diskpart in, bevestig met Enter en voer de volgende commando’s uit:
list disk
select disk [n]
detail disk
clean
convert mbr
create partition primary
active
select partition 1
detail partition
assign
Belangrijk is dat je [n] vervangt door het disk-nummer van de usb-stick. Om zeker te zijn dat je wel het juiste station te pakken hebt, vraag je met het commando detail disk extra informatie op. Na afloop formatteer je het nieuwe station via Verkenner als fat32, zodat de stick ook op UEFI-systemen kan booten.
©PXimport
03 Architectuur
Heeft het hulpprogramma succesvol een installatiestick gemaakt, maar krijg je bij het booten met die stick de melding winload.efi missing of een foutcode als 0x0000359, dan heeft dat weer met UEFI te maken. UEFI start namelijk alleen applicaties op die overeenkomen met de UEFI-architectuur, ongeacht of het om een os-loader of om een systeemtool als een geheugentester of een recoveryprogramma gaat.
Een UEFI op 64 bit kan dus in principe geen 32bit-applicaties opstarten (in tegenstelling tot bijvoorbeeld 64bit-Windows die wel met 32bit-toepassingen overweg kan). In dit geval zorg je er dus voor dat je voor een 64bit-Windows-versie selecteert tijdens het samenstellen van de stick (zie ook paragraaf ‘Installatiemedium’). Wil je om een of andere reden toch met een 32bit-Windows-installatie aan de slag, dan kun je overwegen om in de UEFI-setup csm-mode te selecteren. Dat staat voor Compatibility Support Mode en zorgt ervoor dat een ‘legacy’ besturingssysteem toch in een UEFI-omgeving kan opstarten.
Wil je voor een reeds geïnstalleerde Windows nagaan welke architectuur het besturingssysteem en de UEFI hebben? Druk dan op Windows-toets+R en voer msinfo32 uit, waar je in de rubriek Systeemoverzicht de waarden bij Systeemtype en BIOS-modus nagaat. Bij een 64bit-Windows op een 64bit-UEFI lees je hier respectievelijk x64-based PC en UEFI af, terwijl dat bij een 32bit-Windows op 32bit-UEFI respectievelijk x86-based PC en UEFI is. Staat er bij BIOS-modus Legacy of Verouderd dan is het besturingssysteem niet in UEFI-modus opgestart, maar in legacy BIOS of in csm.
©PXimport
04 Alternatief medium
In de paragraaf ‘Installatiemedium’ zijn we ervan uitgegaan dat je het iso-schijfkopiebestand nog moest downloaden. Maar wat als je liever een iso-image gebruikt dat je al in je bezit hebt?
Gaat het om een Windows-installatie, dan kun je zo’n stick ook zonder externe hulpmiddelen voorbereiden. Bewerk eerst je stick met de tool diskpart, zoals beschreven in de paragraaf ‘Partitiestructuur’. De rest van de voorbereidingen doe je vanuit Verkenner. Formatteer de stick met fat32, zodat die ook op een UEFI-systeem zal booten. Stel Verkenner via het menu Beeld bij voorkeur zo in dat die ook Verborgen items toont. Vervolgens dubbelklik je op je iso-bestand zodat dit aan een virtueel cd-station wordt gekoppeld. Navigeer naar dit station, druk op Ctrl+A zodat je de complete inhoud selecteert en kopieer alles naar je stick. Je beschikt nu over een werkend installatiemedium.
©PXimport
05 Externe tool
Je kunt ook een externe tool inzetten om een installatie- of live medium (voor Windows of een ander besturingssysteem) te maken op basis van een iso-bestand. Een van de meest flexibele is het gratis Rufus. In tegenstelling tot de Media Creation Tool of diskpart moet je bij Rufus wel andere instellingen voorzien naargelang je een UEFI- of een legacy BIOS-systeem beoogt.
Download (de portable versie van) Rufus van https://rufus.ie en start die op. Bevestig de vraag om naar programma-updates te zoeken met Ja. Verwijs bij Apparaat naar je usb-stick, kies bij Opstartselectie de optie Schijf of ISO-image (selecteren), klik op Selecteren en verwijs naar je iso-bestand. Heb je een UEFI-systeem op het oog, kies bij Partitie-indeling dan GPT (zie ook de paragraaf ‘Gpt versus mbr’) en stel Doelsysteem in op UEFI (geen CSM). Voor een legacy BIOS-systeem kies je respectievelijk MBR en BIOS of UEFI. Vul een Volumelabel in en druk op Starten.
Overigens maakt Rufus het mogelijk dat Windows Home-gebruikers een draagbare Windows-versie kunnen maken. De werkwijze is dezelfde als hierboven, alleen kies je bij Image-optie de optie Windows To Go, stel je Partitie-indeling in op MBR en Doelsysteem op BIOS of UEFI (lukt dit niet, druk dan op Alt+E), zodat de stick op zowel legacy BIOS als UEFI zal werken. Onderliggend maakt Rufus nu niet alleen een ntfs-partitie met de Windows-bootloader en installatiebestanden, maar ook een kleine fat-partitie met een NTFS-driver. Houd wel rekening met wat je in de paragraaf ‘Architectuur’ hebt gelezen.
©PXimport
06 Gpt versus mbr
We zijn er tot nu toe van uitgegaan dat je Windows vers installeert van een usb-medium en dan kiest de Windows-installatieprocedure automatisch de juiste partitiestructuur. Voor UEFI is dat gpt oftewel GUID Partition Table (althans voor ingebouwde schijven), waarbij de Windows-bootloader op een met fat32 geformatteerde efi-systeempartitie moet staan (zie het kader ‘Bootloader-corruptie’). Een legacy BIOS-systeem verwacht een mbr-schijf.
Om na te gaan welke partitiestructuur een schijf bevat, kun je op Windows-toets+R drukken en diskmgmt.msc uitvoeren. In het venster van Schijfbeheer klik je linksonder met rechts op de gewenste schijf en kies je Eigenschappen: je leest de Partitiestijl af op het tabblad Volumes.
Stel, je hebt Windows op een mbr-schijf draaien en nu wil je de Windows- installatie naar een nieuwer systeem op basis van UEFI migreren. Een mogelijke optie is dat je het nieuwe systeem instelt op csm-modus, maar dan zet je in feite een stap terug.
©PXimport
07 Migratie naar UEFI
Boot je Windows op het nieuwe systeem liever in UEFI-modus, dan heb je een paar alternatieven, maar die zijn vrij delicaat. Zorg alleszins voor een complete systeemback-up, zodat je nog kunt terugkeren.
Wil je de installatie op een andere schijf overzetten, koppel die dan eveneens aan je huidige pc, eventueel met een adapter. Zo’n migratie verloopt het makkelijkste met een externe tool als EaseUS Partition Master (zo’n 43 euro voor de Pro-versie). Hier kies je dan OS overzetten en duid je de bron- en doelschijf aan. Deze laatste moet natuurlijk wel over voldoende niet-toegewezen ruimte beschikken.
Wil je dezelfde schijf inclusief Windows behouden in het nieuwe UEFI-systeem, dan kun je een conversie naar gpt overwegen. We gaan er hierbij wel van uit dat je huidige Windows-architectuur overeenkomt met die van de UEFI-firmware (zie ook de paragraaf ‘Architectuur’). Start hiervoor Opdrachtprompt op als administrator en voer het volgende commando uit:
mbr2gpt /validate /allowfullos /disk:[n]
Hierbij vervang je [n] door het juiste schijfnummer, zoals je dat via het commando diskpart of in Windows Schijfbeheer te zien krijgt. Verschijnt de melding dat de validatie succesvol is verlopen, dan kun je verder en dan voer je het best eerst dit commando uit:
reagentc /disable
Hiermee schakel je (tijdelijk) de Windows-herstelomgeving uit, aangezien die het proces kan tegenwerken.
Daarna voer je de volgende opdracht uit:
mbr2gpt /convert /allowfullos /disk:[n]
Als het goed is, kun je Windows na afloop op het nieuwe toestel (uitsluitend) in UEFI-bootmodus opstarten. Na de opstart schakel je de Windows-herstelomgeving weer netjes in met:
reagentc /enable
©PXimport
08 Dualboot
Over naar een ander scenario: je hebt Windows geïnstalleerd en je wilt daarnaast ook Linux installeren in een dualboot-opstelling. Start je Windows in UEFI-modus op (zie de paragraaf ‘Architectuur’), dan controleer je via msinfo32 het best ook de status van het item Status beveiligd opstarten. Blijkt die niet ingeschakeld, dan is de secure-boot-functie van UEFI niet geactiveerd.
Op zich hoeft dat niet problematisch te zijn. Sommige, vooral oudere Linux-varianten kunnen juist problemen geven met een ingeschakelde secure boot. Anderzijds schakelen sommige UEFI-systemen weleens automatisch over op csm-modus wanneer je een besturingssysteem installeert met uitgeschakelde secure boot, en twee besturingssystemen in twee verschillende modi (UEFI versus legacy/csm) kan ook weer problemen geven. Toch is het geen optie om secure boot zomaar om te schakelen, aangezien je reeds geïnstalleerde Windows dan niet langer doorstart.
Hoe dan ook, na de installatie van Linux voer je op de Linux-console het best het commando efibootmgr uit. Krijg je een foutmelding in plaats van de UEFI-bootvariabelen te zien, dan is Linux opgestart in legacy/csm-modus.
©PXimport
09 Linux weg
We gaan er nu van uit dat je Linux (na Windows) in dualboot op een UEFI-systeem hebt geïnstalleerd, maar dat je na verloop van tijd Linux toch weer wilt verwijderen. Dan ga je best als volgt te werk. Start je pc op met Windows en verwijder alvast de Linux-partitie(s) vanuit het Schijfbeheer. Je herkent deze partitie(s) aan het feit dat er geen stationsletter aan werd toegekend en er evenmin een bestandssysteem wordt vermeld. Klik met rechts op zo’n Linux-partitie en kies Volume verwijderen; de vrijgekomen ruimte kun je toevoegen aan een bestaande partitie voor dataopslag.
Het probleem is wel dat Linux-bootloader grub nog actief is. Die moet je dus eerst verwijderen. Start hiervoor de Opdrachtprompt of PowerShell op als administrator en voer dit commando uit:
mountvol [n:] /S
Hierbij vervang je [n:] door een vrije stationsletter. Dit commando zorgt ervoor dat de efi-systeempartitie aan de opgegeven stationsletter wordt gekoppeld. Vervolgens tik je de stationsletter in (bevestigd met Enter), gevolgd door nog twee opdrachten:
[n:]
cd /efi
dir
Je ziet nu een Linux-map verschijnen, bijvoorbeeld ubuntu of fedora, die de grub-bootloader bevat. Verwijder die met het dit commando:
rd <linux_mapnaam>
Bevestig dit met de Y-toets. Herstart je systeem: Windows duikt op en van Linux is geen spoor meer te zien.
©PXimport
Bootloader-corruptie
Het valt nooit uit te sluiten dat de UEFI-bootloader corrupt raakt en Windows niet meer opstart. Probeer het dan als volgt. Start je pc op met een Windows-installatiestick (zie de paragraaf ‘Installatiemedium’). Stel taal, tijd en toetsenbord in, klik op Volgende en op Uw computer herstellen / Problemen oplossen / Opstartherstel. Lukt het hier niet mee, kies dan Opdrachtprompt (in plaats van Opstartherstel). Voer het commando diskpart uit, gevolgd door: list disk select disk 0 list volume select volume [n] assign letter [x:] exit Noteer de getoonde stationsletters en vervang [n] door het volumenummer dat bij de systeempartitie staat (doorgaans een fat32-volume van 100 tot 500 MB); [x:] vervang je door een vrije stationsletter. Voer dit commando uit: *cd /d [x:]\efi\microsoft\boot* Maak daarna een back-up van het bcd-bestand (Boot Configuration Data) met: copy bcd bcd.bak Tik achtereenvolgens de genoteerde stationsletters in en bevestig telkens met Enter. Via het commando dir ga je na welk station de \Windows-map bevat. Voer dan het volgende commando uit: bcdboot [y:]\Windows /s [x:] /l nl-nl /f ALL waarbij je [y:] vervangt door het station met je Windows-installatie. De parameter /l nl-nl verwijst naar de locale (in Vlaanderen gebruik je normaliter /l nl-be). Met f/ ALL kopieer je bootbestanden voor zowel UEFI- als BIOS-systemen. Windows hoort nu opnieuw door te starten.
©PXimport