Vermijd problemen bij Linux op een UEFI-pc installeren

Marco den Teuling
0

Inhoudsopgave

EFI dringt steeds nadrukkelijker door in de pc-wereld en is steeds moeilijker te ontlopen. Dat is verder geen probleem voor Linux-­gebruikers, want het opensource besturingssysteem kan intussen goed overweg met de technologie. Er zijn echter wel valkuilen. Met onze tips omzeil je de meeste.

UEFI heeft een slechte reputatie in de opensourcegemeenschap, hoewel het veel voordelen heeft voor Linux-gebruikers. Twee daarvan zijn de gemakkelijk BIOS-updates en een aanzienlijk robuustere parallelle installatie van meerdere besturingssystemen. Sommige oude rotten zullen nu wat spottend lachen, maar vroeg of laat zullen ze echter te maken krijgen met de moderne opstartprocedure, want nieuwe pc’s starten hun besturingssysteem bijna altijd op via UEFI-­mechanismen.

De meeste UEFI BIOS-versies kunnen een besturingssysteem weliswaar starten zoals de klassieke BIOS-systemen, maar voor de daarvoor benodigde CSM (Compatibility Support Module) is het grafschrift al geschreven. Bovendien kunnen steeds meer hardwarefuncties alleen nog maar gebruikt worden als het BIOS het besturingssysteem start met behulp van UEFI.

UEFI is nu hoe dan ook meestal de beste opstartprocedure, want de Linux- en firmware-ontwikkelaars hebben veel problemen opgelost die zich in het begin voordeden. Zolang je de CSM vermijdt, hoef je je over UEFI geen zorgen te maken. Ook niet bij de parallelle installatie van verschillende besturingssystemen.

Meer over Linux naast Windows installeren met UEFI lees je in c't jan-feb/2019

Veel elementaire informatie over UEFI laten we hier buiten beschouwing, want die is al eerder uitgebreid aan bod gekomen in c’t magazine of kun je vinden op deze website.

De basis bij UEFI

Om te beginnen het korte antwoord voor alleen Linux op een UEFI-pc: als je op een gloednieuw Windows-systeem van een grote fabrikant een Linux-distributie zoals Fedora, Linux Mint, OpenSuse Leap of Ubuntu wilt installeren, is er niet echt een verschil met tien of vijftien jaar geleden. Plaats gewoon het installatiemedium zoals beschreven door de distributeur van Linux, start daarvan op en volg de instructies van het installatieprogramma.

Over het bij nieuwe pc’s alomtegenwoordige UEFI hoef je je verder geen zorgen te maken, zolang je het installatieprogramma laat partitio­neren. Als je dit echter liever zelf doet, moet je een partitie van het type ‘EFI System Partition’ (ESP) maken of een bestaande integreren. Dat heet bij veel installers gewoon de ‘EFI Partition’. Dat is het gebied waar de installer de EFI-bootloader plaatst, waarmee het UEFI-BIOS later de op het systeem geïnstalleerde besturings­systemen start. Voor de meeste toepassingen is 100 MB genoeg. Als je echter vaak verschillende distributies uitprobeert of wilt experimenteren met EFI-boottechnieken, kun je de ESP beter 250 of 500 MB groot maken. Geef, indien nodig, /boot/efi/ op als mount-punt voor de ESP, want dat is de plaats waar Linux-programma’s de partitie later verwachten.

Linux op UEFI-pc installeren partitioneren ESP EFI System Partition

Op veel pc’s hoef je je bij het installeren van Linux geen zorgen te maken over UEFI, zolang je automatisch partitionieert. Als je dat liever zelf doet, moet je een EFI System Partition (ESP) opnemen of aanmaken.

De details bij UEFI en Linux

Het bovenstaande is al genoeg voor de vele gebruikers die Linux als enige besturingssysteem willen installeren, maar helaas niet voor iedereen. Het wordt ingewikkelder als je bijvoorbeeld Arch Linux (en afgeleiden zoals Manjaro) of Debian GNU/Linux wilt installeren: die booten niet op systemen van de grote fabrikanten. Dat komt door UEFI Secure Boot, dat vrijwel altijd actief is op dergelijke computers, maar dat door die distributies niet wordt ondersteund. Als je ze wilt installeren, moet je bij de BIOS-instellingen eerst die beveiliging uitschakelen. Dit kan ook voor Ubuntu en dergelijke interessant zijn, omdat je zo enkele beperkingen vermijdt.

Meer over de gevolgen van Secure Boot uitschakelen lees je in c't jan-feb/2019

Als je Secure Boot uitschakelt, wordt iets anders ook belangrijk, iets waar je ook op moet letten als
– iemand misschien de BIOS-instellingen heeft gewijzigd,
– het systeem afkomstig is van een kleinere fabrikant of
– je de pc zelf in elkaar hebt gezet.
In dergelijke gevallen is de CSM waarschijnlijk actief, die niet parallel gebruikt kan worden met Secure Boot. Sommige UEFI-BIOS-systemen schakelen daarom automatisch de BIOS-compatibiliteitsmodus in als je Secure Boot uitschakelt.

Het probleem is dat als de CSM actief is, opslagmedia dubbel voorkomen in het BIOS-boot-menu en bij de configuratie van de opstartvolgorde in de BIOS-instellingen. Dat hoeft geen verrassing te zijn, want het UEFI-BIOS kan de besturings­systemen op deze media zowel klassiek als via UEFI opstarten, tenminste als ze de opstartcode voor beide procedures bevatten. Dat is bij de installatiemedia van moderne besturingssystemen meestal het geval. Deze vermenging van procedures is de bron van veel problemen, zowel bij Linux als bij Windows. De manier waarop je het installatiemedium start, bepaalt al hoe een daarmee geïnstalleerd besturingssysteem opstart.

De grootste valkuil

Dat komt door de boot-ingangen die gebruikt worden bij de UEFI-start en die je na de installatie van het besturingssysteem in het BIOS-opstartmenu of in de configuratie van de opstartvolgorde bij de BIOS-­instellingen ziet. Die vloeien voort uit UEFI-variabelen die de installers opslaan in een geheugengebied van het BIOS. Die laten het UEFI-BIOS weten waar het de bootloaders van de geïnstalleerde besturings­systemen kan vinden.

Linux op UEFI-pc installeren boot variabele ID ESP bootloader

Een UEFI-BIOS start geïnstalleerde besturingssystemen via UEFI-boot-variabelen, die de unieke ID van de ESP en de daarop liggende bootloader specificeren.

Het kernprobleem is dat de installatieroutine de variabelen creëert via interfaces tussen het besturingssysteem en het UEFI-BIOS. Die manier van communicatie is alleen beschikbaar als de installatiemedia zelf al booten met behulp van UEFI. Daarom heeft een installer die per ongeluk en misschien zelfs ongemerkt via CSM is gestart, geen andere optie dan een klassiek startende Linux te installeren.

Als die procedures allebei gebruikt worden, is dat niet alleen verraderlijk voor live-Linux-systemen en installatiemedia, maar ook voor diagnostische en reparatiesystemen op dvd en usb, zoals partitioneringstools en imagers. Als je dergelijke hulpmiddelen gebruikt en niet opstart via het mechanisme waarmee het geïnstalleerde besturingssysteem opstart, is het resultaat vaak een rommeltje. Het besturingssysteem kan beschadigd worden waardoor het niet meer kan opstarten. Dat geldt met name voor multiboot-systemen en bij het knutselen aan de bootloader of de partitionering.

Nu is het werken met wisselende bootmechanismen echter niet aan te raden. Kies in plaats daarvan voor één opstart­methode, dus schakel bij voorkeur CSM uit en kies het toekomstbestendige UEFI. Als je UEFI echter voorlopig wilt vermijden, schakel dan de UEFI-boot-mechanismen uit bij de BIOS-instellingen. Hoe dan ook, die keuze moet je maken voordat je het eerste besturingssysteem installeert, zodat het de gewenste opstartprocedure gebruikt. Een geïnstalleerd besturings­systeem start namelijk niet langer als je bij de BIOS-instellingen de procedure uitschakelt waarmee het opstart.

Let op: het BIOS van sommige systemen activeert CSM onder bepaalde omstandigheden ongevraagd. Ook zijn er BIOS-versies waarbij je de opstartmethode maar moeilijk kunt vastleggen. Voordat je met de Linux-installatie begint, kun je het beste controleren of het installatiemedium op de gewenste manier is opgestart, zodat het systeem later ook met precies deze procedure begint. Roep daarvoor nadat het installatiemedium is opgestart eerst de opdrachtregelopdracht efibootmgr op, die de UEFI-boot-ingangen laat zien.

Let op: dit BIOS kan een besturingssysteem booten via UEFI of CSM, want het BIOS-bootmenu bevat twee verschillende ingangen om een usb-stick met het installatieprogramma van Linux te booten.

Als de opdracht meldt dat hij geen toegang heeft tot EFI-variabelen, is de installer op de klassieke manier gestart. Bij Ubuntu kun je de bootprocedure al herkennen aan de bootloader. Verschijnt hier een puur tekstmenu van GRUB, zoals je dat kent van geïnstalleerde Linux-systemen, dan heeft het BIOS het installatiemedium gestart met behulp van UEFI. De installer is echter klassiek gestart als er kleine grafische symbolen verschijnen en je met een druk op een toets een menu opent in het midden van het scherm.

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

Partitioneren

Bij het installeren is er nog een struikelblok als er al gegevens staan op de schijf waarop de ESP moet komen. In dat geval heeft hij waarschijnlijk ook een partitietabel. Dat kan een MBR (Master Boot Record) zijn, die afkomstig is uit het DOS-tijdperk en die een centrale rol speelt bij klassiek opstarten, of een GPT (GUID Partition Table), die in zwang is gekomen met UEFI. Theoretisch hoef je je niets van de partitionering aan te trekken, want Ubuntu en sommige andere Linux-distributies starten ook met UEFI van media met een MBR.

De combinatie UEFI-boot en MBR-partitionering komt in de praktijk nochtans zelden voor en daarom roept het nu en dan fouten op die in de UEFI-­BIOS-systemen of de Linux-distributies schuilgaan. Bovendien leidt deze combinatie tot problemen met een dual-boot met Windows, want die installer verwacht dat de ESP zich bevindt op een met GPT gepartitioneerd medium. Daarom kun je de ESP beter daarop plaatsen. Controleer eerst welke partitioneringen in gebruik zijn bij de schijven in het systeem:

sudo fdisk -l | grep -e ‘ /dev/’ -e ‘typ’

Als de schijf die je bestemd hebt voor de installatie een MBR bevat, moet je overschakelen. Daar is wel nogal wat kennis voor nodig als je daarbij geen gegevens wilt verliezen. In principe gaat het als volgt: je maakt eerst vooraan en achteraan op de schijf wat sectoren vrij (zeg 2048) voor de GPT (bijvoorbeeld met Gparted), waarna je in het opdrachtregelprogramma gdisk het expertmenu oproept, waarmee je naar GPT kunt overstappen. Voor zo’n gevaarlijke ingreep moet je altijd een volledige back-up maken. Dan kun je ook net zo goed overwegen om het medium helemaal leeg te maken, om het dan met fdisk of Gparted te voorzien van een lege GPT.

Nu we het over media hebben: zorg ervoor dat je het installatiemedium maakt op een van de manieren die de distributeur in de documentatie vermeldt. Universele tools zoals Unetbootin werken vaak wel, maar kunnen struikelen wanneer distributeurs iets in het opstartproces veranderen. Vooral bij een UEFI-boot kan het dan snel misgaan.

Linux op UEFI-pc installeren installatie UEFI Ubuntu Fedora Mint

Vermijd de valkuilen bij het installeren van Linux op een UEFI-pc.

Meer valkuilen

Een andere valkuil ligt op de loer bij sommige tablets en netbookachtige notebooks die een 64-bit x86-processor hebben, maar 32-bit UEFI-firmware. Om ervoor te zorgen dat Linux daarmee opstart, moet het installatiemedium een 32-bit UEFI-loader bevatten. Afgezien van de x86-64-versies van Fedora en de x86-32-versie van Debian voldoet vrijwel geen Linux-distributie aan die eis.

Bovendien zijn er nog steeds veel UEFI-­BIOS-systemen die fouten bevatten die pas zichtbaar worden bij gebruik van Linux. Dat is niet zo vreemd, omdat fabrikanten vaak alleen met Windows testen. Vooral in het begin waren er vreemde bugs, waardoor de BIOS-versies bijvoorbeeld boot-ingangen voor het starten van Linux lieten verdwijnen. Bij de huidige hardware treden dat soort problemen maar zelden op. Je hoeft ook niet meer bang te zijn dat Linux eventuele bugs in het UEFI-BIOS triggert die de hardware beschadigen, zoals enkele jaren geleden gebeurde met sommige notebooks van Lenovo en Samsung. Dat kan in de toekomst weliswaar opnieuw gebeuren, maar UEFI is maar één van de factoren die daarin meespelen, omdat dergelijke problemen ook optraden met klassieke BIOS-systemen. Het risico om op een dergelijk dramatisch probleem te stuiten is overigens kleiner dan de kans op alle zes goed in de Lotto.

Bij nieuwe pc’s is het vaak niet eenvoudig om de pc vanaf het installatiemedium te laten opstarten omdat de benodigde toetsen nogal eens verschillen. Bovendien is het tijdvenster waarin je op de knop moet drukken vaak erg klein door BIOS-functies als ‘Fast Boot’. Bij veel pc’s kun je de BIOS-instellingen oproepen om de opstartvolgorde in te stellen door op Del te drukken tijdens de zelftest. Soms is dat echter een functietoets zoals F1 of F2, wat uit de documentatie of de BIOS-status­informatie moet blijken, maar vaak niet staat vermeld.

Het opstartmenu van het BIOS (BIOS Boot Select, BBS) is heel geschikt om het installatiemedium een keer te starten. Bij veel pc’s open je het als je tijdens de zelftest drukt op F8, F10, F11 of F12. Als Windows nog op het systeem aanwezig is, kun je de pc vanuit Windows instrueren om de volgende keer op te starten vanaf een dvd of usb-stick of om de BIOS-instellingen te openen (zie pagina 134). Bij Linux kun je de pc via Efibootmgr bij de volgende start van een bepaald medium laten starten. In veel distributies bevat het opstartmenu van een via UEFI gestarte GRUB boven­dien ook een menu-optie om naar de BIOS-instellingen te gaan. Dat is allemaal mogelijk geworden met UEFI.

Meer over de UEFI-start van Linux lees je in c't jan-feb/2019

Tot slot

Deze tekst wekt juist als gevolg van de flexibiliteit van Linux misschien de indruk alsof de combinatie van UEFI en Linux vreselijk ingewikkeld is. Niets is minder waar. Zoals in het begin al werd gezegd, hoef je je bij een pc met Secure Boot geen zorgen te maken, zolang je een distributie kiest die daarmee overweg kan. Bij andere schakel je Secure Boot uit en moet je opletten dat je CSM vermijdt. Denk dan bij zelf partitioneren aan de ESP en alles komt goed.

(Thorsten Leemhuis, c’t magazine)

Lees uitgebreide achtergrondinfo en reviews in c't. Nieuwste uitgave: c't 05/2024

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

Chat GPT gebruiken: dit kun je allemaal doen met de chatbot van OpenAI

OpenAI heeft de ChatGPT-bot ontwikkeld als een taalmodel dat is getraind op een enorme hoeveelheid tekst op het internet. Je kunt ChatGPT gebruiken om...

GitHub Copilot: dit moet je weten over deze AI-programmeerassistent

Benieuwd naar wat GitHub Copilot is en wat je er nou eigenlijk mee kunt doen? In dit artikel leggen we je uit wat je allemaal kunt doen met de AI-assi...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er