Als je nu naar je computer winkel gaat om een nieuwe PC te kopen dan zit daar nagenoeg altijd een voor geïnstalleerde Windows op. Soms kun je ook nog wat van korting krijgen als je dit niet wilt, maar vaak is dit voor de winkelier al te veel werk (en niet geheel ten onrechte). Mocht de winkelier het er wel af willen halen dan zal het je in de portemonnee ook niet veel schelen. Dus meestal neem je die Windows dan maar mee. Is de rest van de familie ook tevreden.(Arjan ten Hoopen)

Maar dan krijg je de volgende uitdaging, Linux erbij. De eerste stap, ruimte maken door de Windows partitie wat kleiner te maken, is meestal snel genomen. Windows heeft disk management die dit wel makkelijk maakt. Maar dan moet Linux er nog bij. In principe is dat ook geen grote hobbel. De echte uitdaging zit meestal in het booten. Met een beetje pech blijft het systeem booten in Windows. Ergens heb je dan wat fout gedaan.

UEFI en BIOS

Even terug naar het begin. In de tijd van de IBM-PC was er software, of beter, firmware nodig om het besturingssysteem te laten praten met de hardware. Deze firmware heet de BIOS, het Basic Input Output System. De BIOS werd ook geschreven om de voor in die tijd gangbare hardware toegankelijk te maken voor de software. Even kort door de bocht; wat deed de BIOS tijdens het opstarten. Alle hardware even langslopen om te zien wat er is (Power-On Self Test, ook wel POST genoemd). Daarna opzoek naar het Master Boot Record (MBR). Dit is een speciale sector op het gepartioneerde deel van je opstart schijf. In het Master Boot Record staat informatie over het bestandssysteem van de schijf. Hierna wordt de bootloader geactiveerd die vervolgens begint met het opstarten van het besturingssysteem.

Prachtig bedacht maar ondertussen heeft de aarde wel weer de nodige keren rond gedraaid en zijn we in een andere tijd terecht gekomen. Schijf capaciteit is enorm vergroot, 64 bit is vandaag de dag de norm (BIOS kwam niet verder dan 16). Het werd dus tijd voor een opvolger. De opvolger is Unified Extensible Firmware Interface, kortweg UEFI.

UEFI kan omgaan met nagenoeg alle opstartschijven van nu en de toekomst. UEFI zelf wordt  “ingebakken” in een flash-chip. Dit maak het ook mogelijk om in de toekomst updates te installeren. Tevens heeft het de beschikking over een groot geheugen en kan het omgaan met een muis en toetsenbord. Als je zelf weleens rondgekeken hebt in de UEFI van je eigen systeem zul je zien dat je heel veel kunt instellen. Je zou de UEFI misschien wel kunnen zien als een klein besturingssysteem op zich zelf. Een besturingssysteem dat opstart voor dat het “echte” besturingssysteem opstart, in ons geval Linux.

Dat klinkt allemaal prachtig, en dat is het ook, maar tijdens het installeren van een Linux naast de voor geïnstalleerde Windows kan het leiden tot het uitspreken van vele krachtkreten.

In dit artikel ga ik je aan de hand meenemen zodat een DualBoot systeem voor jou geen geheimen meer kent. In Afbeelding 1 zie je een voorbeeld van een UEFI interface. Het moederboard van je computer komt mogelijk van een andere leverancier, echter de functionaliteit zal nagenoeg identiek zijn.

UEFI

Als eerste ga je de UEFI in. Nadat je je computer hebt aangezet zie je waarschijnlijk (heel) kort een melding over hoe je in de UEFI komt. Allerlei toetsen worden daarvoor gebruikt, bij mijn systeem is het DEL. Tijdens het booten van het systeem, dus voor Linux/Windows, toets je op DEL en dit brengt je in de UEFI, zie Afbeelding 1. Je kunt de boot mode, of woorden van gelijke strekking, instellen op UEFI of “Legacy en UEFI” (legacy slaat hier op BIOS). Je moet er voor zorgen dat deze op UEFI staat. Elke UEFI implementatie doet dit weer anders, een goed start punt kan zijn zoeken (Search). Bedenk dat UEFI om kan gaan met de muis dus je hoeft niet met allerlei vreemde toetscombinaties te navigeren. Zoek op boot, dan komt er zeker iets boven waarmee je de boot mode kunt instellen. Stel haar in op UEFI als dat nog niet het geval is en reboot het systeem. Je komt dan nog gewoon in de voor geïnstalleerde Windows.

openSUSE installeren

Vervolgens stop je je installatie media in je computer, reboot haar en laat haar booten van de CD/DVD/USB-stick. Mogelijk moet je hiervoor manueel het boot device selecteren. In mijn geval was dit F11 (toets hierop tijdens het booten) en selecteer je boot device. Ik ga als voorbeeld openSUSE installeren. OpenSUSE heeft voor UEFI- en voor Legacy-boot verschillende opstart schermen. In afbeelding 2 staat een voorbeeld van het scherm dat openSUSE gebruikt voor UEFI. Dit geeft je de zekerheid dat je op de goede weg zit.

Voer vervolgens een installatie uit. Precies zoals je het hebben wilt. Bij het partitioneren moet je echter een klein trucje uithalen. Dit trucje is essentieel! We gaan uit van openSUSE maar voor andere distributies is de procedure vergelijkbaar.

Klik, bij het partitioneren scherm tijdens de installatie, op de knop “Expert Partitioneren” en selecteer vervolgens “Start met huidig voorstel”. Verwijder nu alle partities die met Linux te maken hebben (root, swap). Zeer waarschijnlijk is er een (tweede) /boot/efi partitie aangemaakt bij de Linux partities, verwijder deze ook!

In het windows deel zul je een partitie zien genaamd “EFI System Partition” (of “EFI boot”). Deze moet je gaan mounten als /boot/efi. Bij openSUSE selecteer je deze partitie, klikt op “modify” en vervolgens “Edit Partition”. Dit geeft je eigenschappen van deze partitie. Zorg ervoor dat je deze NIET gaat formateren, laat het type (EFI System Partition) ook zo staan. Niet encrypten maar WEL mounten als /boot/efi.

Maak vervolgens de partities aan die je nodig hebt (minimaal een swap van 2 á 4 GB en een root met de rest). Klik daarna op [Volgende]. Je krijgt dan een melding dat de /boot/efi partitie te klein is (100Mb). Negeer deze melding, is zuiver bangmakerij.

Vervolg daarna de installatie en maak daarin de voor jou juiste keuzes. Aan het eind van de installatie rebooten. Als je een beetje geluk hebt krijg je de GRUB bootloader te zien met daarin de keuzes voor Linux en Windows. Heb je dit; prijs jezelf gelukkig. Soms zit het tegen, soms zit het mee.

UEFI aanpassen via Linux

Mocht het tegen zitten, geen nood, gewoon rebooten en tijdens booten manueel het boot device kiezen (F11 bij mij). Deze zal je ongeveer het lijstje geven zoals weergegeven in Afbeelding 3. Zoals je ziet is de volgorde niet goed. Je zou willen dat “opensuse” tijdens het booten automatisch gekozen wordt (die brengt je naar GRUB). Selecteer “opensuse” en laat het systeem booten.

Login als root zodat je voldoende permissies hebt om vanuit Linux aanpassingen aan UEFI te gaan maken. Log je in als een gewone gebruiker dan zul je straks met het su of sudo commando voldoende privileges moeten verkrijgen.

Je hebt gezien dat de volgorde niet goed is. Windows stond bovenaan, je wilt opensuse bovenaan hebben. Met het tool efibootmgr kun je de volgorde aanpassen. Voer het eerst uit zonder argumenten. Je krijgt dan de huidige configuratie te zien. Vervolgens voer je het met de -o optie uit. Hiermee kun je de volgorde aanpassen. Daarna nogmaals zonder argumenten om te valideren of het geworden is wat je verwachte. In afbeelding 4 vindt je de uitwerking in een voorbeeld. Dat ziet er goed uit; rebooten.

Als je een beetje geluk hebt krijg je de GRUB bootloader te zien met daarin de keuzes voor Linux en Windows. Heb je dit; prijs jezelf gelukkig. Soms zit het tegen, soms zit het mee.

In de UEFI aanpassingen maken

Mocht het tegen zitten, dan nog steeds geen man overboord. We gaan vol vertrouwen dieper het systeem in. Aangezien het vanuit Linux niet lukte moeten we de UEFI in. Reboot het systeem en ga de UEFI in. In mijn geval moest ik op DEL toetsen. Dit brengt je weer bij het scherm zoals aangegeven in Afbeelding 1. Maar we moeten wat dieper graven en daarvoor naar de Advanced instellingen gaan (F7). Zie Afbeelding 5. Klik hier op Settings, om nog dieper de UEFI in te gaan. Je komt dan uit bij Afbeelding 6. Klik hier op Boot. Dit zal het scherm geven zoals op Afbeelding 7. We komen nu ergens. Onder FIXED BOOT ORDER zie je dat de UEFI eerst gaat speuren op de Hard Disk, als daar niets gevonden wordt door naar de CD/DVD etc. Klik nu op “UEFI Hard Disk Drive BBS Priorities”, dat brengt je naar het scherm zoals weergeven op Afbeelding 8. Daar willen we zijn! Als UEFI “wat” gevonden heeft, zitten daar mogelijk meerdere opties in. UEFI begint altijd bij de eerste (Boot Option #1). Door nu, in mijn geval met de + en – toetsen, te spelen kun je voor elke optie de juiste waarde kiezen. De eerste wordt natuurlijk opensuse. Vervolgens opslaan en rebooten. Het systeem zal je nu naar GRUB brengen.

Je hebt nu voldoende kennis om ook van je (nieuwe) PC een DualBoot machine te maken. Mogelijk dat het UEFI interface er wat anders uitziet, maar met de informatie uit dit artikel zul je ook daar je weg in vinden.