En grunnleggende veiledning til forskjellige stadier av Linux Boot Process


Hver gang du slår på Linux-PC-en din, går den gjennom en rekke stadier før den til slutt viser en påloggingsskjerm som ber om brukernavnet eller passordet ditt. Det er 4 forskjellige stadier som hver Linux-distribusjon går gjennom i en typisk oppstartsprosess.

I denne veiledningen vil vi fremheve de ulike trinnene tatt av Linux OS fra det tidspunktet det slås på til du logger på. Vær oppmerksom på at denne veiledningen kun tar hensyn til GRUB2 oppstartslasteren og systemdinit ettersom de for tiden er i bruk av et stort flertall av moderne Linux-distribusjoner.

Oppstartsprosessen tar følgende 4 trinn som vi vil diskutere mer detaljert:

  • BIOS-integritetssjekk (POST)
  • Lasting av oppstartslasteren (GRUB2)
  • Kjernen initialisering
  • Starter systemd, overordnet for alle prosesser

1. BIOS-integritetssjekken (POST)

Oppstartsprosessen initialiseres vanligvis når en bruker trykker på -knappen – hvis PC-en allerede var slått av – eller starter systemet på nytt ved å bruke enten GUI eller på kommandolinjen.

Når Linux-systemet slås på, starter BIOS (Basic Input Output System) og utfører en Power On Self Test (POST ). Dette er en integritetssjekk som utfører en mengde diagnostiske kontroller.

POST undersøker maskinvareoperabiliteten til komponenter som HDD eller SSD, tastatur, RAM<, USB-porter og annen maskinvare. Hvis en maskinvareenhet ikke oppdages, eller hvis det er en funksjonsfeil på noen av enhetene, for eksempel en korrupt HDD eller SSD, vises en feilmelding på skjermen som ber deg om å gripe inn.

I noen tilfeller vil en pipelyd høres ut, spesielt i tilfelle en manglende RAM-modul. Men hvis den forventede maskinvaren er til stede og fungerer som forventet, fortsetter oppstartsprosessen til neste trinn.

2. Bootloader (GRUB2)

Når POST er fullført og kysten er klar, sonderer BIOS MBR (Master Boot Record) for oppstartslasteren og diskpartisjoneringsinformasjonen.

MBR er en 512-byte kode som er plassert på den første sektoren av harddisken, som vanligvis er /dev/sda eller /dev/hda kode> avhengig av harddiskens arkitektur. Vær imidlertid oppmerksom på at noen ganger kan MBR være plassert på en Live USB- eller DVD-installasjon av Linux.

Det er 3 hovedtyper oppstartslastere i Linux: LILO, GRUB, og GRUB2. GRUB2-oppstartslasteren er den nyeste og primære oppstartslasteren i moderne Linux-distribusjoner og informerer vår beslutning om å utelate de to andre som har blitt foreldet med tiden.

GRUB2 står for GRand Unified Bootloader versjon 2. Når BIOS finner oppstartslasteren for grub2, kjører den og laster den inn i hovedminnet ( >RAM).

grub2-menyen lar deg gjøre et par ting. Den lar deg velge Linux-kjerneversjonen du vil bruke. Hvis du har oppgradert systemet et par ganger, kan det hende du ser forskjellige kjerneversjoner oppført. I tillegg gir det deg muligheten til å redigere noen kjerneparametere ved å trykke på en kombinasjon av tastaturtaster.

Også, i et dual-boot-oppsett der du har flere OS-installasjoner, lar grub-menyen deg velge hvilket OS du vil starte opp i. Grub2-konfigurasjonsfilen er /boot/grub2/grub2.cfg-filen. GRUBs hovedmål er å laste Linux-kjernen til hovedminnet.

3. Kjerneinitialisering

Kjernen er kjernen i ethvert Linux-system. Den kobler PC-ens maskinvare med de underliggende prosessene. Kjernen kontrollerer alle prosessene på Linux-systemet ditt. Når den valgte Linux-kjernen er lastet inn av oppstartslasteren, må den selv trekke ut fra den komprimerte versjonen før den utfører noen oppgave. Ved selvutpakken monterer den valgte kjernen rotfilsystemet og initialiserer /sbin/init-programmet som vanligvis refereres til som init.

Init er alltid det første programmet som kjøres og er tildelt prosess-ID eller PID på 1. Det er init-prosessen som skaper forskjellige daemoner og monterer alle partisjoner som er spesifisert i /etc/ fstab-fil.

Kjernen monterer deretter den innledende RAM-disken (initrd) som er et midlertidig rotfilsystem til det virkelige rotfilsystemet er montert. Alle kjerner er plassert i /boot-katalogen sammen med det opprinnelige RAM-diskbildet.

4.Starter Systemd

Kjernen laster til slutt Systemd, som er erstatningen av den gamle SysV init. Systemd er mor til alle Linux-prosesser og styrer blant annet montering av filsystemer, start og stopp av tjenester for bare å nevne noen.

Systemd bruker filen /etc/systemd/system/default.target for å bestemme tilstanden eller målet som Linux-systemet skal starte opp i.

  • For en stasjonær arbeidsstasjon (med en GUI) er standard målverdi 5 som tilsvarer kjørenivå 5 for den gamle SystemV init.
  • For en server er standardmålet multi-user.target som tilsvarer kjørenivå 3 i SysV init.

Her er en oversikt over systemmålene:

  • poweroff.target (runlevel 0): Slå av eller slå av systemet.
  • rescue.target (runlevel 1): starter en redningsskalløkt.
  • multi-user.target (runlevel 2,3,4): Konfigurerer systemet til et ikke-grafisk (konsoll) flerbrukersystem.
  • graphical.target (runlevel 5): Angi at systemet skal bruke et grafisk flerbrukergrensesnitt med nettverkstjenester.
  • reboot.target (runlevel 6): starter systemet på nytt.

For å sjekke gjeldende mål på systemet ditt, kjør kommandoen:

systemctl get-default

Du kan bytte fra ett mål til et annet ved å kjøre følgende kommando på terminalen:

init runlevel-value

Init 3 konfigurerer for eksempel systemet til en ikke-grafisk tilstand.

Kommandoen init 6 starter systemet på nytt og init 0 slår av systemet. Sørg for å påkalle sudo-kommandoen når du vil bytte til disse to målene.

Oppstartsprosessen avsluttes når systemd laster alle demonene og setter mål- eller kjørenivåverdien. Det er på dette tidspunktet du blir bedt om ditt brukernavn og passord som du får tilgang til Linux-systemet.