Pamata rokasgrāmata dažādiem Linux sāknēšanas procesa posmiem


Katru reizi, kad ieslēdzat Linux datoru, tas iziet cauri vairākām posmiem, pirms tiek parādīts pieteikšanās ekrāns, kurā tiek prasīts ievadīt jūsu lietotājvārdu vai paroli. Pastāv 4 atšķirīgas pakāpes, kuras katrs Linux izplatījums iziet tipiskā sāknēšanas procesā.

Šajā ceļvedī mēs uzsvērsim dažādos Linux OS soļus no brīža, kad tas ir ieslēgts, līdz brīdim, kad piesakāties. Lūdzu, ņemiet vērā, ka šajā rokasgrāmatā tiek ņemti vērā tikai GRUB2 sāknēšanas ielādētājs un systemd init, jo tie pašlaik tiek izmantoti lielāko daļu mūsdienu Linux izplatīšanas.

Sāknēšanas procesā tiek veiktas šādas 4 darbības, kuras mēs apspriedīsim sīkāk:

  • BIOS integritātes pārbaude (POST)
  • Boot loader (GRUB2) ielāde
  • kodola inicializēšana
  • Sākot sistēmu system, visu procesu vecāku

1. BIOS integritātes pārbaude (POST)

Sāknēšanas process parasti tiek inicializēts, kad lietotājs nospiež ieslēgšanas pogu - ja dators jau ir izslēgts - vai pārstartē sistēmu, izmantojot GUI vai komandrindā.

Kad Linux sistēma ieslēdzas, sāk darboties BIOS (Basic Input Output System) un veic Power On Self Test (POST). Šī ir integritātes pārbaude, kas veic daudz diagnostikas pārbaužu.

POST pārbauda tādu komponentu aparatūras darbību kā HDD vai SSD, tastatūra, RAM, USB porti un jebkura cita aparatūra. Ja kāda aparatūras ierīce netiek atklāta vai kādā no ierīcēm, piemēram, bojātā cietajā diskā vai SSD, ir darbības traucējumi, ekrānā tiek uzšļakstīts kļūdas ziņojums, kas mudina veikt jūsu iejaukšanos.

Dažos gadījumos atskan pīkstoša skaņa, it īpaši, ja trūkst RAM moduļa. Tomēr, ja paredzamā aparatūra ir klāt un darbojas kā paredzēts, sāknēšanas process pāriet uz nākamo posmu.

2. Bootloader (GRUB2)

Kad POST ir pabeigts un piekraste ir skaidra, BIOS pārbauda MBR (Master Boot Record) sāknēšanas un diska sadalīšanas informāciju.

MBR ir 512 baitu kods, kas atrodas cietā diska pirmajā sektorā, kas parasti ir /dev/sda vai /dev/hda atkarībā no cietā diska arhitektūra. Tomēr ņemiet vērā, ka dažreiz MBR var atrast uz Linux tiešraides USB vai DVD instalācijas.

Linux ir 3 galvenie sāknēšanas ielādētāju veidi: LILO, GRUB un GRUB2. GRUB2 sāknēšanas ielādētājs ir jaunākais un galvenais sāknēšanas ielādētājs mūsdienu Linux izplatījumos, un tas informē par mūsu lēmumu atstāt pārējos divus, kas laika gaitā ir novecojuši.

GRUB2 apzīmē GRand Unified Bootloader 2. versiju. Kad BIOS atrod grub2 sāknēšanas ielādētāju, tas izpilda un ielādē to galvenajā atmiņā (RAM).

Grub2 izvēlne ļauj jums izdarīt pāris lietas. Tas ļauj jums izvēlēties Linux kodola versiju, kuru vēlaties izmantot. Ja esat pāris reizes jauninājis sistēmu, iespējams, redzēsit dažādas kodola versijas. Turklāt tas dod jums iespēju rediģēt dažus kodola parametrus, nospiežot tastatūras taustiņu kombināciju.

Arī dubultās sāknēšanas iestatījumos, kur jums ir vairākas OS instalācijas, grub izvēlne ļauj jums izvēlēties, kurā OS palaist. Konfigurācijas fails grub2 ir fails /boot/grub2/grub2.cfg. GRUB galvenais mērķis ir ielādēt Linux kodolu galvenajā atmiņā.

3. Kodola inicializēšana

Kodols ir jebkuras Linux sistēmas kodols. Tas sasaista datora aparatūru ar pamatā esošajiem procesiem. Kodols kontrolē visus procesus jūsu Linux sistēmā. Kad sāknēšanas ielādētājs ir ielādējis izvēlēto Linux kodolu, tam pirms paša uzdevuma veikšanas pašam jāizvelk no saspiestās versijas. Pēc paša izvilkšanas atlasītais kodols uzmontē saknes failu sistēmu un inicializē/sbin/init programmu, ko parasti dēvē par init.

Init vienmēr ir pirmā izpildāmā programma, un tai tiek piešķirts procesa ID vai PID 1. Tas ir init process, kas rada dažādus dēmonus un piestiprina visus nodalījumus, kas norādīti failā/etc/fstab.

Pēc tam kodols uzmontē sākotnējo RAM disku (initrd), kas ir pagaidu saknes failu sistēma, līdz tiek pievienota īstā saknes failu sistēma. Visi kodoli atrodas direktorijā /boot kopā ar sākotnējo RAM diska attēlu.

4. Sistēmas palaišana

Kodols beidzot ielādē Systemd, kas ir vecā SysV init aizstājējs. Systemd ir visu Linux procesu māte un cita starpā pārvalda failu sistēmu uzstādīšanu, pakalpojumu palaišanu un apturēšanu, pieminot tikai dažus.

Systemd izmanto failu /etc/systemd/system/default.target, lai noteiktu stāvokli vai mērķi, kurā Linux sistēmai vajadzētu sāknēties.

  • Darbvirsmas darbstacijai (ar GUI) noklusējuma mērķa vērtība ir 5, kas ir vecās SystemV init 5. darbības līmeņa ekvivalents.
  • Servera noklusējuma mērķis ir multi-user.target, kas atbilst 3. līmenim SysV init.

Sistēmas mērķu sadalījums:

  • poweroff.target (0. līmenis): izslēdziet vai izslēdziet sistēmu.
  • glābšanas.mērķis (1. līmeņa līmenis): tiek sākta glābšanas čaulas sesija.
  • multi-user.target (izpildes līmenis 2,3,4): konfigurē sistēmu daudzgrafiskai (konsoles) daudzlietotāju sistēmai.
  • graphical.target (5. līmeņa līmenis): iestatiet sistēmu tīkla pakalpojumiem izmantot grafisku daudzlietotāju saskarni.
  • reboot.target (6. līmeņa līmenis): sistēma tiek pārstartēta.

Lai pārbaudītu pašreizējo mērķi jūsu sistēmā, palaidiet komandu:

$ systemctl get-default

Varat pārslēgties no viena mērķa uz otru, izpildot šādu komandu terminālā:

$ init runlevel-value

Piemēram, init 3 konfigurē sistēmu stāvoklī, kas nav grafisks.

Komanda init 6 pārstartē jūsu sistēmu un init 0 izslēdz sistēmu. Ja vēlaties pārslēgties uz šiem diviem mērķiem, noteikti izsauciet komandu sudo.

Sāknēšanas process beidzas, tiklīdz systemd ielādē visus dēmonus un nosaka mērķa vai palaišanas līmeņa vērtību. Šajā brīdī jums tiek lūgts ievadīt savu lietotājvārdu un paroli, ar kuru jūs iegūstat ievadi savā Linux sistēmā.