Osnovni vodič za različite faze procesa pokretanja sustava Linux


Svaki put kada uključite svoje Linux računalo, ono prolazi kroz niz faza prije nego što konačno prikaže ekran za prijavu koji traži vaše korisničko ime ili lozinku. Postoje 4 različite faze kroz koje svaka distribucija Linuxa prolazi u tipičnom procesu podizanja sustava.

U ovom ćemo vodiču istaknuti različite korake koje poduzima Linux OS od trenutka kada se uključi do trenutka kada se prijavite. Imajte na umu da ovaj vodič uzima u obzir samo GRUB2 bootloader i systemdinit jer ih trenutno koristi velika većina modernih Linux distribucija.

Proces dizanja sastoji se od sljedeća 4 koraka o kojima ćemo detaljnije govoriti:

  • Provjera integriteta BIOS-a (POST)
  • Učitavanje pokretačkog programa (GRUB2)
  • Inicijalizacija kernela
  • Pokretanje systemd, roditelja svih procesa

1. Provjera integriteta BIOS-a (POST)

Proces pokretanja obično se inicijalizira kada korisnik pritisne gumb za uključivanje – ako je računalo već isključeno – ili ponovno pokrene sustav koristeći GUI ili naredbeni redak.

Kada se sustav Linux uključi, BIOS (Basic Input Output System) se uključuje i izvodi Power On Self Test (POST ). Ovo je provjera integriteta koja obavlja mnoštvo dijagnostičkih provjera.

POST ispituje operativnost hardvera komponenti kao što su HDD ili SSD, tipkovnica, RAM<, USB priključci i bilo koji drugi dio hardvera. Ako se neki hardverski uređaj ne otkrije ili ako postoji kvar na bilo kojem uređaju, poput oštećenog HDD-a ili SSD-a, na zaslonu se prikazuje poruka o pogrešci koja zahtijeva vašu intervenciju.

U nekim slučajevima oglasit će se zvučni signal, posebno u slučaju nedostatka RAM modula. Međutim, ako je očekivani hardver prisutan i funkcionira kako se očekuje, proces dizanja nastavlja na sljedeću fazu.

2. Bootloader (GRUB2)

Nakon što je POST završen i obala je čista, BIOS ispituje MBR (Master Boot Record) za bootloader i informacije o particioniranju diska.

MBR je kod od 512 bajta koji se nalazi na prvom sektoru tvrdog diska koji je obično /dev/sda ili /dev/hda ovisno o arhitekturi vašeg tvrdog diska. Međutim, imajte na umu da se ponekad MBR može nalaziti na Live USB ili DVD instalaciji Linuxa.

U Linuxu postoje 3 glavne vrste programa za podizanje sustava: LILO, GRUB, i GRUB2. GRUB2 bootloader je najnoviji i primarni bootloader u modernim distribucijama Linuxa i informira našu odluku da izostavimo druga dva koja su s vremenom postala zastarjela.

GRUB2 označava GRand Unified Bootloader verziju 2. Nakon što BIOS locira grub2 bootloader, izvršava ga i učitava u glavnu memoriju (RAM).

Izbornik grub2 omogućuje vam da učinite nekoliko stvari. Omogućuje vam da odaberete verziju Linux kernela koju želite koristiti. Ako ste nadogradili svoj sustav nekoliko puta, mogli biste vidjeti različite verzije kernela na popisu. Dodatno, daje vam mogućnost uređivanja nekih parametara jezgre pritiskom kombinacije tipki na tipkovnici.

Također, u konfiguraciji dvostrukog pokretanja gdje imate više instalacija OS-a, grub izbornik vam omogućuje da odaberete koji OS želite pokrenuti. Konfiguracijska datoteka grub2 je datoteka /boot/grub2/grub2.cfg. GRUB-ov glavni cilj je učitati Linux kernel u glavnu memoriju.

3. Inicijalizacija kernela

Kernel je jezgra svakog Linux sustava. Povezuje hardver računala s temeljnim procesima. Kernel kontrolira sve procese na vašem Linux sustavu. Nakon što program za pokretanje sustava učita odabranu jezgru Linuxa, ona se mora sama izdvojiti iz svoje komprimirane verzije prije poduzimanja bilo kakvog zadatka. Nakon samoraspakiranja, odabrani kernel postavlja korijenski datotečni sustav i inicijalizira program /sbin/init koji se obično naziva init.

Init je uvijek prvi program koji se izvršava i dodijeljen mu je ID procesa ili PID 1. To je init proces koji stvara razne demone i montira sve particije koje su navedene u /etc/ fstabdatoteka.

Kernel tada montira početni RAM disk (initrd) koji je privremeni korijenski datotečni sustav dok se pravi korijenski datotečni sustav ne montira. Sve jezgre nalaze se u direktoriju /boot zajedno s početnom slikom RAM diska.

4. Pokretanje Systemd

Kernel konačno učitava Systemd, koji je zamjena za stari init SysV. Systemd je majka svih Linux procesa i upravlja između ostalog montiranjem datotečnih sustava, pokretanjem i zaustavljanjem usluga da spomenemo samo neke.

Systemd koristi datoteku /etc/systemd/system/default.target za određivanje stanja ili cilja u kojem se Linux sustav treba pokrenuti.

  • Za desktop radnu stanicu (s GUI-jem) zadana ciljna vrijednost je 5, što je ekvivalentno razini pokretanja 5 za stari SystemV init.
  • Za poslužitelj, zadani cilj je multi-user.target što odgovara razini 3 pokretanja u SysV pokretanju.

Evo raščlambe systemd ciljeva:

  • poweroff.target (runlevel 0): Isključite ili isključite sustav.
  • rescue.target (runlevel 1): pokreće sesiju ljuske za spašavanje.
  • multi-user.target (runlevel 2,3,4): Konfigurira sustav na negrafički (konzolni) višekorisnički sustav.
  • graphical.target (runlevel 5): Postavite sustav da koristi grafičko višekorisničko sučelje s mrežnim uslugama.
  • reboot.target (runlevel 6): ponovno pokreće sustav.

Da provjerite trenutni cilj na vašem sustavu, pokrenite naredbu:

systemctl get-default

Možete se prebaciti s jednog cilja na drugi pokretanjem sljedeće naredbe na terminalu:

init runlevel-value

Na primjer, init 3 konfigurira sustav u negrafičko stanje.

Naredba init 6 ponovno pokreće vaš sustav, a init 0 isključuje sustav. Obavezno pozovite naredbu sudo kada se želite prebaciti na ova dva cilja.

Proces dizanja završava kada systemd učita sve demone i postavi ciljnu ili vrijednost razine pokretanja. U ovom trenutku od vas se traži vaše korisničko ime i lozinka na temelju kojih možete pristupiti svom Linux sustavu.