π Hoofdstuk 5.3: Linux Bootloaders
ββββββββββββββββββββββββββββββ
βοΈ Wat is een Bootloader?
ββββββββββββββββββββββββββββββ
Een **bootloader** is verantwoordelijk voor het **laden van het besturingssysteem**
na het opstarten van de firmware (BIOS of UEFI).
π In Linux zijn er meerdere bootloaders beschikbaar.
De meest gebruikte is: **GRUB2**.
ββββββββββββββββββββββββββββββ
β LILO (Linux Loader) β Verouderd:
ββββββββββββββββββββββββββββββ
β’ Eerste Linux-bootloader
β’ Configuratiebestand: `/etc/lilo.conf`
β’ Kon alleen Linux laden via BIOS
β’ β Geen ondersteuning voor UEFI
β’ β Wordt niet meer gebruikt
ββββββββββββββββββββββββββββββ
π§© GRUB (Grand Unified Bootloader) β Legacy:
ββββββββββββββββββββββββββββββ
β Vervanger van LILO
β Ondersteunt **multiboot** (meerdere besturingssystemen)
β Gebruiker kan een besturingssysteem of kernel kiezen
π Configuratiebestand:
`/boot/grub/menu.lst`
(of soms `grub.conf`)
π Structuur van GRUB Legacy-configuratie:
π§ Globale instellingen:
Instelling | Beschrijving
---------------|--------------------------------------------------------
color | Kleuren voor- en achtergrond van het bootmenu.
default | Stelt standaard bootmenu-item in.
fallback | Alternatieve optie bij fout.
hiddenmenu | Verbergt menu tenzij toets wordt ingedrukt.
splashimage | Afbeelding als achtergrond voor het menu.
timeout | Tijd voordat automatisch wordt geboot.
π₯οΈ Per besturingssysteem:
Commando | Beschrijving
-------------|----------------------------------------------------------
title | Weergavenaam in het bootmenu.
root (hd0,0) | Schijf en partitie (eerste schijf, eerste partitie).
kernel | Pad naar kernelbestand (in /boot).
initrd | Initieel RAM-bestandssysteem (initrd.img).
rootnoverify | Voor niet-Linux systemen zoals Windows.
π Installatie GRUB Legacy:
`grub-install /dev/sda`
β `grub-install '(hd0)'` gebruikt GRUBβs eigen schijfnummers
π Bewerken tijdens het booten:
- `E` β Bewerken van een menu-optie
- `B` β Booten met gewijzigde instellingen
- `C` β GRUB-shell openen
ββββββββββββββββββββββββββββββ
π GRUB2 β Moderne versie van GRUB:
ββββββββββββββββββββββββββββββ
β Ondersteunt dynamische logica en drivers tijdens boot
β Detecteert systemen automatisch
π Configuratiebestand:
`/boot/grub/grub.cfg`
β οΈ **Niet handmatig bewerken!**
π Debian-gebaseerde systemen:
symbolische link naar `/etc/grub2.cfg`
π Belangrijkste verschillen:
GRUB Legacy | GRUB2
----------------------|-------------------------------
`title` | `menuentry { }`
Partities beginnen bij 0 | Partities beginnen bij 1
`rootnoverify`, `kernel` | Niet meer nodig
menu.lst | grub.cfg, via `/etc/default/grub`
π GRUB2-installatie en beheer:
β’ Automatisch aanwezig in moderne distroβs
β’ Aanpassingen toepassen via:
`grub2-mkconfig -o /boot/grub2/grub.cfg`
π Versie controleren:
`grub-mkconfig -V`
ββββββββββββββββββββββββββββββ
π οΈ Alternatieve Bootloaders (Syslinux Project):
ββββββββββββββββββββββββββββββ
Hoewel GRUB2 de standaard is, biedt **Syslinux** diverse alternatieven:
Bootloader | Gebruik
------------|-------------------------------------------------------------
SYSLINUX | Opstarten vanaf FAT-bestandssystemen (USB, oude partities)
EXTLINUX | Minimalistische bootloader voor ext2/ext3/ext4/btrfs
ISOLINUX | Voor LiveCDβs of LiveDVDβs (vereist `isolinux.bin`)
PXELINUX | Netwerkboot via PXE (Preboot Execution Environment)
MEMDISK | Boottool voor het laden van oude DOS-images
ββββββββββββββββββββββββββββββ