Zoeken op website

Een basisgids voor verschillende stadia van het Linux-opstartproces


Elke keer dat u uw Linux-pc inschakelt, doorloopt deze een reeks fasen voordat deze uiteindelijk een inlogscherm weergeeft waarin om uw gebruikersnaam of wachtwoord wordt gevraagd. Er zijn vier verschillende fasen die elke Linux-distributie doorloopt in een typisch opstartproces.

In deze handleiding zullen we de verschillende stappen belichten die het Linux-besturingssysteem heeft genomen vanaf het moment dat het wordt ingeschakeld tot het moment dat u inlogt. Houd er rekening mee dat deze handleiding alleen rekening houdt met de GRUB2 bootloader en systemd init zoals ze momenteel worden gebruikt door een grote meerderheid van moderne Linux-distributies.

Het opstartproces bestaat uit de volgende 4 stappen die we in meer detail zullen bespreken:

  • BIOS Integriteitscontrole (POST)
  • Laden van de bootloader (GRUB2)
  • Initialisatie van de kernel
  • Start systemd, de ouder van alle processen

1. De BIOS-integriteitscontrole (POST)

Het opstartproces wordt meestal geïnitialiseerd wanneer een gebruiker op de aan-knop drukt (als de pc al was afgesloten) of het systeem opnieuw opstart via de GUI of via de opdrachtregel.

Wanneer het Linux-systeem opstart, treedt het BIOS (Basic Input Output System) in werking en voert een Power On Self Test (POST ). Dit is een integriteitscontrole die een overvloed aan diagnostische controles uitvoert.

De POST onderzoekt de hardwarewerking 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 harde schijf of SSD, verschijnt er een foutmelding op het scherm waarin u wordt gevraagd tussenkomst.

In sommige gevallen klinkt er een piepgeluid, vooral als er een RAM-module ontbreekt. Als de verwachte hardware echter aanwezig is en naar verwachting functioneert, gaat het opstartproces door naar de volgende fase.

2. De bootloader (GRUB2)

Zodra de POST is voltooid en de kust veilig is, onderzoekt het BIOS de MBR (Master Boot Record) naar de bootloader- en schijfpartitioneringsinformatie.

De MBR is een code van 512 bytes die zich op de eerste sector van de harde schijf bevindt, meestal /dev/sda of /dev/hda afhankelijk van de architectuur van uw harde schijf. Houd er echter rekening mee dat de MBR zich soms op een Live USB of DVD installatie van Linux kan bevinden.

Er zijn drie hoofdtypen bootloaders in Linux: LILO, GRUB, en GRUB2. De GRUB2 bootloader is de nieuwste en belangrijkste bootloader in moderne Linux-distributies en informeert ons besluit om de andere twee, die in de loop van de tijd verouderd zijn geworden, weg te laten.

GRUB2 staat voor GRand Unified Bootloader versie 2. Zodra het BIOS de grub2-bootloader heeft gevonden, wordt deze uitgevoerd en in het hoofdgeheugen geladen (GRUB2 >RAM).

Met het grub2-menu kun je een aantal dingen doen. Hiermee kunt u de Linux-kernelversie selecteren die u wilt gebruiken. Als u uw systeem een paar keer hebt geüpgraded, ziet u mogelijk verschillende kernelversies vermeld. Bovendien geeft het u de mogelijkheid om enkele kernelparameters te bewerken door op een combinatie van klaviertoetsen te drukken.

Bovendien kunt u in een dual-boot-installatie waarbij u meerdere besturingssystemen hebt geïnstalleerd, met het grub-menu selecteren in welk besturingssysteem u 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 bestuurt alle processen op uw Linux-systeem. Zodra de geselecteerde Linux-kernel door de bootloader is geladen, moet deze zichzelf uit de gecomprimeerde versie extraheren voordat hij enige taak uitvoert. Bij het zelf uitpakken koppelt de geselecteerde kernel het rootbestandssysteem aan en initialiseert het /sbin/init programma dat gewoonlijk init wordt genoemd.

Init is altijd het eerste programma dat wordt uitgevoerd en krijgt de proces-ID of PID van 1 toegewezen. Het is het init-proces dat verschillende daemons voortbrengt en alle partities aankoppelt die zijn opgegeven in /etc/ fstab bestand.

De kernel koppelt vervolgens de initiële RAM-schijf (initrd), wat een tijdelijk rootbestandssysteem is, totdat het echte rootbestandssysteem is aangekoppeld. Alle kernels bevinden zich in de map /boot, samen met de initiële RAM-schijfkopie.

4.Systeem starten

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

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

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

Hier is een overzicht van de systematische doelen:

  • poweroff.target (runlevel 0): Schakel het systeem uit of sluit het af.
  • rescue.target (runlevel 1): start een reddingsshellsessie.
  • multi-user.target (runlevel 2,3,4): Configureert het systeem naar een niet-grafisch (console) systeem voor meerdere gebruikers.
  • graphical.target (runlevel 5): Stel het systeem in om een grafische multi-user interface met netwerkdiensten te gebruiken.
  • reboot.target (runlevel 6): start het systeem opnieuw op.

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

systemctl get-default

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

init runlevel-value

Init 3 configureert het systeem bijvoorbeeld naar een niet-grafische status.

Met de opdracht init 6 wordt uw systeem opnieuw opgestart en met init 0 wordt het systeem uitgeschakeld. Zorg ervoor dat u sudo command aanroept als u naar deze twee doelen wilt overschakelen.

Het opstartproces eindigt zodra systemd alle daemons heeft geladen en de doel- of runniveauwaarde heeft ingesteld. Op dit punt wordt u om uw gebruikersnaam en wachtwoord gevraagd, waarna u toegang krijgt tot uw Linux-systeem.