Osnovni vodnik po različnih stopnjah zagonskega procesa Linuxa


Vsakič, ko vklopite svoj računalnik Linux, gre skozi vrsto faz, preden se končno prikaže prijavni zaslon, ki zahteva vaše uporabniško ime ali geslo. Obstajajo 4 različne faze, ki jih vsaka distribucija Linuxa opravi v običajnem postopku zagona.

V tem priročniku bomo izpostavili različne korake, ki jih je naredil OS Linux od vklopa do trenutka, ko se prijavite. Upoštevajte, da ta priročnik upošteva samo zagonski nalagalnik GRUB2 in systemd init, kot sta trenutno v uporabi. velika večina sodobnih distribucij Linuxa.

Postopek zagona ima naslednje 4 korake, o katerih bomo podrobneje razpravljali:

  • Preverjanje integritete BIOS-a (POST)
  • Nalaganje zagonskega nalagalnika (GRUB2)
  • Inicializacija jedra
  • Zagon systemd, nadrejenega vseh procesov

1. Preverjanje integritete BIOS-a (POST)

Zagon se ponavadi inicializira, ko uporabnik pritisne gumb za vklop - če je bil računalnik že izklopljen - ali znova zažene sistem z uporabo GUI-ja ali ukazne vrstice.

Ko se sistem Linux vklopi, se vklopi BIOS (osnovni vhodni izhodni sistem) in izvede preskus ob vklopu (POST). To je preverjanje integritete, ki izvaja množico diagnostičnih pregledov.

POST preizkuša strojno delovanje komponent, kot so trdi disk ali SSD, tipkovnica, RAM, vrata USB in kateri koli drug del strojne opreme. Če katera strojna naprava ni zaznana ali če v kateri od naprav pride do okvare, na primer pokvarjenega trdega diska ali SSD-ja, se na zaslonu izpiše sporočilo o napaki, ki vas spodbudi.

V nekaterih primerih se oglasi zvočni signal, zlasti če manjka RAM modul. Če pa je pričakovana strojna oprema prisotna in deluje po pričakovanjih, se postopek zagona nadaljuje v naslednjo stopnjo.

2. zagonski nalagalnik (GRUB2)

Ko je POST končan in je obala čista, BIOS preizkusi MBR (Master Boot Record) za informacije o zagonskem nalagalniku in particiji diska.

MBR je 512-bajtna koda, ki se nahaja na prvem sektorju trdega diska, ki je običajno /dev/sda ali /dev/hda , odvisno od vašega trdega diska arhitektura. Upoštevajte pa, da je včasih MBR lahko nameščen na Live USB ali DVD namestitvi Linuxa.

V Linuxu obstajajo 3 glavne vrste zagonskih nalagalnikov: LILO, GRUB in GRUB2. Zagonski nalagalnik GRUB2 je najnovejši in primarni zagonski nalagalnik v sodobnih distribucijah Linuxa in obvešča o naši odločitvi, da opustimo druga dva, ki sta sčasoma zastarala.

GRUB2 pomeni GRand Unified Bootloader različice 2. Ko BIOS poišče zagonski nalagalnik grub2, ga izvrši in naloži v glavni pomnilnik (RAM).

Meni grub2 vam omogoča nekaj stvari. Omogoča vam, da izberete različico jedra Linux, ki jo želite uporabiti. Če ste sistem že nekajkrat nadgrajevali, boste morda videli različne različice jedra. Poleg tega vam omogoča urejanje nekaterih parametrov jedra s pritiskom na kombinacijo tipk na tipkovnici.

V nastavitvi z dvojnim zagonom, kjer imate več namestitev operacijskega sistema, meni grub omogoča izbiro operacijskega sistema, v katerega želite zagnati sistem. Konfiguracijska datoteka grub2 je datoteka /boot/grub2/grub2.cfg. Glavni cilj GRUB-a je naložiti jedro Linuxa v glavni pomnilnik.

3. Inicializacija jedra

Jedro je jedro katerega koli sistema Linux. Povezuje strojno opremo računalnika z osnovnimi procesi. Jedro nadzoruje vse procese v vašem sistemu Linux. Ko zagonski nalagalnik naloži izbrano jedro Linuxa, se mora pred samostojno nalogo izvleči iz stisnjene različice. Po samorazpakiranju izbrano jedro namesti korenski datotečni sistem in inicializira program/sbin/init, ki se običajno imenuje init.

Init je vedno prvi izveden program in mu je dodeljen ID ali PID procesa 1. To je postopek init, ki ustvari različne demone in pritrdi vse particije, ki so določene v datoteki/etc/fstab.

Jedro nato namesti začetni RAM disk (initrd), ki je začasni korenski datotečni sistem, dokler ni nameščen pravi korenski datotečni sistem. Vsa jedra se nahajajo v imeniku /boot skupaj z začetno sliko diska RAM.

4. Zagon Systemd

Jedro končno naloži Systemd, ki je zamenjava starega SysV init. Systemd je mati vseh procesov Linuxa in med drugim upravlja namestitev datotečnih sistemov, zagon in zaustavitev storitev, da omenim le nekatere.

Systemd z datoteko /etc/systemd/system/default.target določi stanje ali cilj, v katerega naj se zažene sistem Linux.

  • Za namizno delovno postajo (z grafičnim uporabniškim vmesnikom) je privzeta ciljna vrednost 5, kar je enakovredno stopnji 5 za staro invico SystemV.
  • Pri strežniku je privzeti cilj multiuser.cilj, ki ustreza 3. stopnji v SysV init.

Tu je razčlenitev sistemskih ciljev:

  • poweroff.target (stopnja 0): Poweroff ali zaustavitev sistema.
  • rescue.target (stopnja 1): zažene sejo reševalne lupine.
  • multi-user.target (runlevel 2,3,4): sistem konfigurira na negrafski (konzolni) sistem za več uporabnikov.
  • graphical.target (stopnja 5): sistem nastavite tako, da bo uporabljal grafični več uporabniški vmesnik z omrežnimi storitvami.
  • reboot.target (runlevel 6): znova zažene sistem.

Če želite preveriti trenutni cilj v sistemu, zaženite ukaz:

$ systemctl get-default

Z enega cilja na drugega lahko preklopite tako, da na terminalu zaženete naslednji ukaz:

$ init runlevel-value

Na primer, init 3 sistem konfigurira v negrafsko stanje.

Ukaz init 6 znova zažene sistem in init 0 izklopi sistem. Ko želite preklopiti na ta dva cilja, pokličite ukaz sudo.

Postopek zagona se konča, ko systemd naloži vse demone in nastavi ciljno vrednost ali vrednost teka. Na tej točki boste pozvani k vnosu uporabniškega imena in gesla, na podlagi katerih boste vstopili v svoj sistem Linux.