Een basisgids voor het Linux-bootproces

Telkens wanneer je je Linux PC inschakelt, doorloopt het een reeks fasen voordat het uiteindelijk een aanmeldingsscherm weergeeft dat vraagt om je gebruikersnaam of wachtwoord. Er zijn 4 verschillende fasen die elke Linux distributie doorloopt in een typisch opstartproces.

User Login Prompt

In deze handleiding zullen we de verschillende stappen belichten die door het Linux-besturingssysteem worden genomen vanaf het moment dat het wordt ingeschakeld tot het moment dat je inlogt. Let op: deze handleiding houdt alleen rekening met de GRUB2 bootloader en systemd init omdat deze momenteel worden gebruikt door een groot aantal moderne Linux distributies.

Het opstartproces verloopt in de volgende 4 stappen die we uitvoeriger zullen bespreken:

  • BIOS-integriteitscontrole (POST)
  • Laden van de bootloader (GRUB2)
  • Kernelinitialisatie
  • Het starten van systemd, de ouder van alle processen

1. De BIOS Integriteitscontrole (POST)

Het opstartproces wordt meestal geïnitialiseerd wanneer een gebruiker op de aan-uit knop drukt – als de pc al was uitgeschakeld – of het systeem opnieuw opstart via zowel de GUI als op de commandoregel.

Wanneer het Linux-systeem wordt ingeschakeld, komt het BIOS (Basic Input Output System) in actie en voert een Power On Self Test (POST) uit. Dit is een integriteitscontrole die een groot aantal diagnostische controles uitvoert.

De POST controleert de hardwarefunctionaliteit van componenten zoals de HDD of SSD, Toetsenbord, RAM, USB-poorten, en elk ander stuk hardware. Als een hardwareapparaat niet wordt gedetecteerd, of als er een storing is in een van de apparaten zoals een beschadigde HDD of SSD, wordt er een foutmelding op het scherm weergegeven om uw tussenkomst te vragen.

In sommige gevallen gaat er een pieptoon af, vooral bij een ontbrekende RAM-module. Als echter de verwachte hardware aanwezig is en functioneert zoals verwacht, gaat het opstartproces verder naar de volgende fase.

2. De Opstartlader (GRUB2)

Zodra de POST is voltooid en alles in orde is, controleert het BIOS de MBR (Master Boot Record) voor de opstartlader en informatie over de schijfpartitionering.

De MBR is een 512-byte code die zich bevindt op de eerste sector van de harde schijf, meestal /dev/sda of /dev/hda, afhankelijk van de architectuur van uw harde schijf. Merk echter op dat de MBR soms kan worden gevonden op een Live USB of DVD-installatie van Linux.

Er zijn 3 hoofdtypen opstartladers in Linux: LILO, GRUB, en GRUB2. De opstartlader GRUB2 is de nieuwste en primaire opstartlader in moderne Linux-distributies en dit informeert onze beslissing om de andere twee uit te sluiten die verouderd zijn geworden met de tijd.

GRUB2 staat voor GRand Unified Bootloader versie 2. Zodra de BIOS de grub2 bootloader vindt, voert het deze uit en laadt het in het hoofdgeheugen (RAM).

Het grub2-menu stelt je in staat een paar dingen te doen. Het stelt je in staat om de Linux kernelversie te selecteren die je zou willen gebruiken. Als je je systeem een paar keer hebt geüpgraded, zie je misschien verschillende kernelversies vermeld. Daarnaast geeft het je de mogelijkheid om sommige kernelparameters te bewerken door een combinatie van toetsen op het toetsenbord in te drukken.

Select Kernel Version

Ook, in een dual-boot opstelling waar je meerdere OS-installaties hebt, stelt het grub-menu je in staat om te selecteren welk OS je wilt opstarten. Het grub2 configuratiebestand is het /boot/grub2/grub2.cfg-bestand. Het hoofddoel van GRUB is om de Linux kernel in het hoofdgeheugen te laden.

3. Kernel Initialisatie

De kernel is de kern van elk Linux-systeem. Het verbindt de hardware van de PC met de onderliggende processen. De kernel controleert alle processen op je Linux-systeem. Zodra de geselecteerde Linux kernel door de bootloader is geladen, moet deze zichzelf uitpakken uit zijn gecomprimeerde versie voordat hij enige taak onderneemt. Na het uitpakken, monteert de geselecteerde kernel het root-bestandssysteem en initialiseert het /sbin/init-programma dat vaak wordt aangeduid als init.

Kernel Initialization Process

Init is altijd het eerste programma dat wordt uitgevoerd en krijgt het proces-ID of PID van 1 toegewezen. Het is het init-proces dat verschillende daemon-processen spawnen en alle partities mount die zijn gespecificeerd in het /etc/fstab-bestand.

De kernel mount vervolgens het initiële RAM-schijf (initrd), dat een tijdelijk root-bestandssysteem is totdat het echte root-bestandssysteem is gemount. Alle kernels bevinden zich in de /boot-directory samen met het initiële RAM-schijfafbeelding.

4. Het starten van Systemd

De kernel laadt uiteindelijk Systemd, dat de vervanging is van het oude SysV init. Systemd is de moeder van alle Linux-processen en beheert onder andere het mounten van bestandssystemen, het starten en stoppen van services om er maar een paar te noemen.

Systemd gebruikt het /etc/systemd/system/default.target-bestand om de staat of het doel te bepalen waarin het Linux-systeem moet opstarten.

  • Voor een desktopwerkstation (met een GUI) is de standaarddoelwaarde 5, wat equivalent is aan runlevel 5 voor het oude SystemV-init.
  • Voor een server is het standaarddoel multi-user.target, wat overeenkomt met runlevel 3 in SysV-init.

Hier volgt een uitsplitsing van de systemd-doelen:

  • poweroff.target (runlevel 0): Schakelt het systeem uit.
  • rescue.target (runlevel 1): Start een reddingssessie.
  • multi-user.target (runlevel 2,3,4): Configureert het systeem naar een niet-grafisch (console) multi-user systeem.
  • graphical.target (runlevel 5): Stel het systeem in om een grafische multi-gebruikersinterface met netwerkservices te gebruiken.
  • reboot.target (runlevel 6): herstart het systeem.

Om het huidige doel op uw systeem te controleren, voert u het commando uit:

$ systemctl get-default
Check Run Level

U kunt overschakelen van het ene doel naar het andere door het volgende commando uit te voeren in de terminal:

$ init runlevel-value

Bijvoorbeeld, init 3 configureert het systeem naar een niet-grafische staat.

Het init 6 commando herstart uw systeem en init 0 schakelt het systeem uit. Zorg ervoor dat u sudo commando aanroept wanneer u wilt overschakelen naar deze twee doelen.

Het opstartproces eindigt zodra systemd alle daemons laadt en het doel- of runlevel-waarde instelt. Op dat moment wordt u gevraagd om uw gebruikersnaam en wachtwoord, waarna u toegang krijgt tot uw Linux-systeem.

Source:
https://www.tecmint.com/linux-boot-process/