Usa ka Batakang Giya sa Nagkalainlain nga Mga Yugto sa Proseso sa Pag-boot sa Linux


Matag higayon nga mo-power ka sa imong Linux PC, moagi kini og sunod-sunod nga mga yugto sa dili pa magpakita og login screen nga mag-aghat sa imong username o password. Adunay 4 nga lahi nga mga yugto nga ang matag pag-apod-apod sa Linux moagi sa usa ka sagad nga proseso sa pag-boot.

Sa kini nga giya, among ipasiugda ang lainlaing mga lakang nga gihimo sa Linux OS gikan sa panahon nga kini gipaandar hangtod sa oras nga imong pag-log in. Palihug timan-i nga kini nga giya nagkonsiderar lamang sa GRUB2 bootloader ug systemd init ingon nga kini gigamit karon pinaagi sa kadaghanan sa modernong mga distribusyon sa Linux.

Ang proseso sa pag-boot nagkinahanglan sa mosunod nga 4 nga mga lakang nga atong hisgutan sa mas detalyado:

  • BIOS Integrity check (POST)
  • Pagkarga sa Boot loader (GRUB2)
  • Kernel initialization
  • Pagsugod sa systemd, ang ginikanan sa tanang proseso

1. Ang BIOS Integrity Check (POST)

Ang proseso sa pag-boot sa kasagaran gisugdan kung ang usa ka tiggamit mopilit sa power-on nga buton - kung ang PC gisirhan na - o i-reboot ang sistema gamit ang GUI o sa command line.

Sa diha nga ang sistema sa Linux modagan, ang BIOS (Basic Input Output System) magsugod ug mohimo ug Power On Self Test (POST). Kini usa ka pagsusi sa integridad nga naghimo sa daghang mga pagsusi sa diagnostic.

Gisusi sa POST ang operability sa hardware sa mga sangkap sama sa HDD o SSD, Keyboard, RAM, USB port, ug bisan unsang ubang piraso sa hardware. Kung ang pipila ka hardware device wala mamatikdan, o kung adunay usa ka malfunction sa bisan unsang mga device sama sa usa ka dunot nga HDD o SSD, usa ka mensahe sa sayup ang nagsabwag sa screen nga nag-aghat sa imong interbensyon.

Sa pipila ka mga kaso, ang usa ka beep nga tunog mogawas labi na kung adunay nawala nga module sa RAM. Bisan pa, kung ang gipaabut nga hardware naa ug naglihok sama sa gipaabut, ang proseso sa pag-boot nagpadayon sa sunod nga yugto.

2. Ang Bootloader (GRUB2)

Kung kompleto na ang POST ug klaro na ang baybayon, gisusi sa BIOS ang MBR (Master Boot Record) para sa impormasyon sa bootloader ug disk partitioning.

Ang MBR usa ka 512-byte code nga nahimutang sa unang sektor sa hard drive nga kasagaran /dev/sda o /dev/hda depende sa imong hard drive arkitektura. Hinumdomi, bisan pa, nga usahay ang MBR mahimong makit-an sa usa ka Live USB o DVD nga pag-install sa Linux.

Adunay 3 ka nag-unang matang sa mga bootloader sa Linux: LILO, GRUB, ug GRUB2. Ang GRUB2 bootloader mao ang pinakabag-o ug panguna nga bootloader sa modernong mga distribusyon sa Linux ug nagpahibalo sa among desisyon nga biyaan ang laing duha nga nahimong karaan na sa paglabay sa panahon.

Ang GRUB2 nagpasabot sa GRand Unified Bootloader version 2. Sa higayon nga makit-an sa BIOS ang grub2 bootloader, kini magpatuman ug magkarga niini ngadto sa main memory (RAM).

Ang grub2 nga menu nagtugot kanimo sa pagbuhat sa pipila ka mga butang. Gitugotan ka niini nga mapili ang bersyon sa kernel sa Linux nga gusto nimong gamiton. Kung nag-upgrade ka sa imong sistema sa pipila ka mga higayon, mahimo nimong makita ang lainlaing mga bersyon sa kernel nga gilista. Dugang pa, kini naghatag kanimo og abilidad sa pag-edit sa pipila ka mga parameter sa kernel pinaagi sa pagpindot sa kombinasyon sa mga yawe sa keyboard.

Usab, sa usa ka dual-boot setup diin ikaw adunay daghang mga pag-install sa OS, ang grub menu nagtugot kanimo sa pagpili kung asa nga OS ang pag-boot. Ang grub2 configuration file mao ang /boot/grub2/grub2.cfg file. Ang panguna nga katuyoan sa GRUB mao ang pagkarga sa Linux kernel sa panguna nga panumduman.

3. Pag-initialize sa Kernel

Ang kernel mao ang kinauyokan sa bisan unsang sistema sa Linux. Gi-interface niini ang hardware sa PC sa nagpahiping mga proseso. Gikontrol sa kernel ang tanan nga mga proseso sa imong sistema sa Linux. Sa higayon nga ang pinili nga Linux kernel gikarga sa bootloader, kini kinahanglan nga mokuha sa kaugalingon gikan sa iyang compressed nga bersyon sa dili pa mobuhat sa bisan unsa nga buluhaton. Sa pag-extract sa kaugalingon, ang pinili nga kernel mo-mount sa root file system ug magsugod sa /sbin/init nga programa nga sagad gitawag nga init.

Ang Init mao kanunay ang unang programa nga ipatuman ug gi-assign ang proseso ID o PID sa 1. Kini ang init nga proseso nga nagpatunghag lain-laing mga daemon ug nag-mount sa tanang partisyon nga gipiho sa /etc/fstab file.

Ang kernel dayon mo-mount sa inisyal nga RAM disk (initrd) nga usa ka temporaryo nga root filesystem hangtod nga ang tinuod nga root filesystem ma-mount. Ang tanang kernels anaa sa /boot directory uban sa inisyal nga RAM disk image.

4.Pagsugod Systemd

Ang kernel sa katapusan nagkarga sa Systemd, nga mao ang kapuli sa daan nga SysV init. Ang Systemd mao ang inahan sa tanan nga mga proseso sa Linux ug nagdumala taliwala sa ubang mga butang sa pag-mount sa mga file system, pagsugod ug paghunong sa mga serbisyo aron mahisgutan ang pipila lang.

Gigamit sa Systemd ang /etc/systemd/system/default.target nga file aron mahibal-an ang estado o target nga kinahanglan mag-boot ang sistema sa Linux.

  • Alang sa desktop workstation (nga adunay GUI) ang default nga target value kay 5 nga katumbas sa run level 5 para sa daan nga SystemV init.
  • Alang sa usa ka server, ang default nga target mao ang multi-user.target nga katumbas sa pagpadagan sa lebel 3 sa SysV init.

Ania ang usa ka pagkahugno sa mga target sa systemd:

  • poweroff.target (runlevel 0): Poweroff o I-shutdown ang sistema.
  • rescue.target (runlevel 1): naglunsad og rescue shell session.
  • multi-user.target (runlevel 2,3,4): I-configure ang sistema ngadto sa non-graphical (console) multi-user system.
  • graphical.target (runlevel 5): Itakda ang sistema sa paggamit ug graphical multi-user interface uban sa network services.
  • reboot.target (runlevel 6): i-reboot ang sistema.

Aron masusi ang kasamtangan nga target sa imong sistema, padagana ang command:

$ systemctl get-default

Mahimo kang mobalhin gikan sa usa ka target ngadto sa lain pinaagi sa pagpadagan sa mosunod nga command sa terminal:

$ init runlevel-value

Pananglitan, ang init 3 nag-configure sa sistema sa usa ka non-graphical nga estado.

Ang init 6 nga komand nag-reboot sa imong sistema ug ang init 0 nagpagawas sa sistema. Siguruha nga gamiton ang sudo nga mando kung gusto nimo nga magbalhin sa duha nga mga target.

Ang proseso sa pag-boot matapos sa higayon nga ma-load sa systemd ang tanan nga mga daemon ug itakda ang target o run level value. Niini nga punto ikaw giaghat alang sa imong username ug password diin ikaw makasulod sa imong Linux system.