En grundlæggende vejledning til forskellige faser af Linux-startprocessen


Hver gang du tænder din Linux-pc, gennemgår den en række faser, inden den endelig viser en login-skærm, der beder om dit brugernavn eller din adgangskode. Der er 4 forskellige faser, som hver Linux-distribution gennemgår i en typisk opstartsproces.

I denne vejledning fremhæver vi de forskellige trin, der tages af Linux OS fra det tidspunkt, det tændes, til det tidspunkt, hvor du logger ind. Bemærk venligst, at denne vejledning kun tager hensyn til GRUB2 bootloader og systemd init, da de i øjeblikket er i brug af langt de fleste moderne Linux-distributioner.

Startprocessen tager følgende 4 trin, som vi vil diskutere mere detaljeret:

  • BIOS-integritetskontrol (POST)
  • Indlæsning af Boot loader (GRUB2)
  • Kernens initialisering
  • Start systemd, forælder til alle processer

1. BIOS-integritetskontrol (POST)

Startprocessen initialiseres normalt, når en bruger trykker på tænd/sluk-knappen - hvis pc'en allerede var lukket ned - eller genstarter systemet ved hjælp af enten GUI eller kommandolinjen.

Når Linux-systemet tændes, starter BIOS (Basic Input Output System) og udfører en Power On Self Test (POST). Dette er en integritetskontrol, der udfører en overflod af diagnostiske kontroller.

POST undersøger hardwarebetjening af komponenter som HDD eller SSD, tastatur, RAM, USB-porte og ethvert andet hardware. Hvis en eller anden hardwareenhed ikke registreres, eller hvis der er en fejl i nogen af enhederne, såsom en korrupt harddisk eller SSD, sprøjtes en fejlmeddelelse på skærmen, der beder om din indgriben.

I nogle tilfælde vil en biplyd slukke, især i tilfælde af et manglende RAM-modul. Men hvis den forventede hardware er til stede og fungerer som forventet, fortsætter opstartsprocessen til næste trin.

2. Bootloader (GRUB2)

Når POST er afsluttet, og kysten er klar, undersøger BIOS MBR (Master Boot Record) til bootloader- og diskpartitioneringsoplysninger.

MBR er en 512-byte kode, der er placeret på den første sektor af harddisken, som normalt er /dev/sda eller /dev/hda afhængigt af din harddisk arkitektur. Bemærk dog, at MBR nogle gange kan placeres på en Live USB- eller DVD-installation af Linux.

Der er 3 hovedtyper af bootloadere i Linux: LILO, GRUB og GRUB2. GRUB2 bootloader er den nyeste og primære bootloader i moderne Linux-distributioner og informerer vores beslutning om at udelade de to andre, som er blevet forældede med tiden.

GRUB2 står for GRand Unified Bootloader version 2. Når BIOS har fundet grub2 bootloader, udfører den og indlæser den i hovedhukommelsen (RAM).

Grub2-menuen giver dig mulighed for at gøre et par ting. Det giver dig mulighed for at vælge den Linux-kerneversion, du vil bruge. Hvis du har opgraderet dit system et par gange, kan du muligvis se forskellige kerneversioner på listen. Derudover giver det dig muligheden for at redigere nogle kerneparametre ved at trykke på en kombination af tastaturtaster.

I en dual-boot-opsætning, hvor du har flere OS-installationer, giver grub-menuen dig også mulighed for at vælge, hvilket OS du vil starte i. Grub2-konfigurationsfilen er /boot/grub2/grub2.cfg-filen. GRUBs hovedmål er at indlæse Linux-kernen i hovedhukommelsen.

3. Kernel initialisering

Kernen er kernen i ethvert Linux-system. Det grænseflader pc'ens hardware med de underliggende processer. Kernen styrer alle processerne på dit Linux-system. Når den valgte Linux-kerne er indlæst af bootloaderen, skal den selv udpakke fra sin komprimerede version, inden der foretages en opgave. Efter selvudpakning monterer den valgte kerne rodfilsystemet og initialiserer/sbin/init-programmet, der almindeligvis kaldes init.

Init er altid det første program, der skal udføres, og tildeles proces-id eller PID på 1. Det er init-processen, der gyder forskellige dæmoner og monterer alle partitioner, der er specificeret i/etc/fstab-filen.

Kernen monterer derefter den oprindelige RAM-disk (initrd), som er et midlertidigt rodfilsystem, indtil det rigtige rodfilsystem er monteret. Alle kerner findes i mappen /boot sammen med det oprindelige RAM-diskbillede.

4.Start af systemd

Kernen indlæser endelig Systemd, som er erstatningen for den gamle SysV-init. Systemd er mor til alle Linux-processer og administrerer blandt andet montering af filsystemer, start og stop af tjenester for blot at nævne nogle få.

Systemd bruger filen /etc/systemd/system/default.target til at bestemme den tilstand eller det mål, som Linux-systemet skal starte i.

  • For en stationær arbejdsstation (med en GUI) er standardmålværdien 5, hvilket svarer til kørselsniveau 5 for den gamle SystemV-init.
  • For en server er standardmålet multi-user.target, der svarer til kørselsniveau 3 i SysV init.

Her er en oversigt over systemd-målene:

  • poweroff.target (runlevel 0): Sluk eller luk systemet.
  • rescue.target (runlevel 1): lancerer en redningsskal-session.
  • multi-user.target (runlevel 2,3,4): Konfigurerer systemet til et ikke-grafisk (konsol) multi-user system.
  • graphical.target (runlevel 5): Indstil systemet til at bruge en grafisk flerbrugergrænseflade med netværkstjenester.
  • reboot.target (runlevel 6): genstarter systemet.

For at kontrollere det aktuelle mål på dit system skal du køre kommandoen:

$ systemctl get-default

Du kan skifte fra et mål til et andet ved at køre følgende kommando på terminalen:

$ init runlevel-value

For eksempel konfigurerer init 3 systemet til en ikke-grafisk tilstand.

Kommandoen init 6 genstarter dit system, og init 0 slukker for systemet. Sørg for at påkalde sudo-kommando, når du vil skifte til disse to mål.

Startprocessen slutter, når systemd indlæser alle dæmoner og indstiller mål- eller kørselsniveauværdien. Det er på dette tidspunkt, du bliver bedt om dit brugernavn og din adgangskode, hvorpå du får adgang til dit Linux-system.