Procesul de pornire Linux: Procesul și erorile de pornire a nucleului

Odată ce am instalat un Linux sistem de operare (Ubuntu, Debian, Mint etc.), pentru a-l utiliza, trebuie doar să apăsați butonul de pornire al computerului și să așteptați încărcarea sistemului de operare. La fel ca orice alt sistem de operare, cum ar fi ferestre din. Cu toate acestea, procesul de boot este un proces destul de complex și este, de asemenea, împărțit în mai multe etape, fiecare esențial pentru ca distribuția noastră să înceapă cu succes. Prin urmare, dacă cunoaștem acest proces de pornire, va fi destul de ușor să identificăm și să rezolvăm orice posibilă problemă cu care ne putem confrunta.

Există unele distros Linux care sunt configurate astfel încât proces de pornire, de pornire, este în modul verbose, adică afișând pe ecran toate comenzile care se execută. Deși este adevărat că majoritatea, mai ales distro-urile „ușoare”, au un splash pe ecran care ne împiedică să-l vedem (deși îl putem arăta întotdeauna apăsând Esc pentru a controla procesul).

Procesul de pornire Linux: Procesul și erorile de pornire a nucleului

Cu toate acestea, atât în ​​modul text, cât și cu imaginea statică pe ecran, procesul de pornire este același. Și de când apăsăm butonul de alimentare până când putem vedea desktopul trecem prin mai multe faze pe care le vom detalia mai jos.

Faza BIOS / UEFI

Această fază este aceeași pentru toate sistemele de operare. Acest sistem mic, sau firmware, este stocat pe un cip de pe Plăci de bază și este responsabil pentru verificarea faptului că toate componentele computerului sunt conectate și funcționează corect. Pentru a face acest lucru, efectuați un POST (Auto-On Test Test) , verificați dacă perifericele necesare sunt conectate pentru a continua (în special tastatura) și localizați unitatea pe care am configurat-o ca „boot”, unde încărcătorul va continua cu încărcarea sistemului de operare.

Unele dintre Erori pe care îl putem găsi în acest moment sunt următoarele și, de cele mai multe ori, sunt legate direct de hardware (în special cu hard disk-urile), astfel încât acestea sunt rezolvate verificând dacă perifericele sunt bine conectate sau resetând BIOS-ul din fabrică. setări:

  • Corupție MBR.
  • Tabel de despărțire corupt.
  • Corupția PBR.
  • Corupția Bootsector.
  • Discul corupt.
  • Corupția Bootmgr.

Faza încărcătorului de încărcare

În această fază, computerul va încerca să acceseze Record de pornire master (MBR) sau Tabel cu partiții ghidate (GPT) a hard disk-ului, în funcție de configurația BIOS sau UEFI. Dacă această partiție nu este găsită, vom vedea direct un mesaj pe computer care indică faptul că sistemul de operare nu este găsit. În acest caz, va trebui să verificăm configurația de bootare a BIOS sau UEFI și, dacă este necesar, să reinstalăm sistemul de operare, astfel încât boot-ul să fie regenerat.

Dacă se găsește această partiție, următorul lucru pe care îl vom vedea va fi meniul de boot Linux, cunoscut și sub numele de „GRUB” (deși pot exista și alte încărcătoare de boot, cum ar fi LILO). Aici vom vedea toate sistemele de operare care sunt instalate pe computer, precum și alte intrări de încărcător de boot (kernel diferit, opțiuni de recuperare, RAM analizor de memorie etc.).

GRUB cu Ubuntu și Windows 10

Vom alege intrarea pe care dorim să o încărcăm (Ubuntu, de exemplu, pentru a continua cu bootarea Linux) și în următoarea etapă va începe încărcarea Kernel-ului în sine.

Erorile pe care le putem găsi în acest moment sunt intrări corupte în cadrul GRUB . Și modalitatea de a o rezolva este folosind un disc de recuperare (sau o distro Linux Live pe care o putem încărca din RAM) pentru a repara GRUB și a face ca intrările să fie îndreptate către hard disk-uri sau partiții corespunzătoare.

Faza de pornire a Kernel Linux

Acum vine cea mai importantă fază de pornire: Linux Kernel fază. Indiferent de distro-ul pe care îl utilizăm, toți vor folosi o versiune mai mult sau mai puțin personalizată a nucleului original al acestui sistem de operare. Din motive de spațiu și optimizare, Kernel-ul este păstrat comprimat pe disc, așa că primul lucru de făcut este să îl dezarhivați în memorie pentru a continua.

Porniți Linux 1

Următorul pas va fi inițializarea tuturor componentelor. Pentru a face acest lucru, majoritatea distro-urilor folosesc un controlor de demoni numit systemd (deși unii folosesc alternative precum init.d). Ceea ce se face în acest pas este să lansați toate procesele și serviciile care fac parte din sistem și sunt esențiale pentru buna funcționare a acestuia. Toate aceste procese permit hardware-ului să funcționeze și toate componentele sistemului de operare să fie sincronizate, în special memoria și discurile. Aceste servicii vor continua să funcționeze după procesul de pornire și vor fi închise la momentul opririi sistemului.

Pe lângă procesele și serviciile Linux esențiale, alte servicii personalizate pot fi, de asemenea, încărcate (de exemplu, un server pe care l-am montat și configurat, cum ar fi un SSH sau un FTP).

Cu excepția cazului în care am făcut modificări ale sistemului în sine, este foarte rar să întâlnim probleme în acest moment. Pornirea sistemului cu Systemd este de obicei un proces complet automat și nu necesită nicio intervenție din partea noastră. De asemenea, dacă un daemon nu poate fi încărcat, pur și simplu îl va marca ca o eroare și va trece la următorul. Ceea ce se poate întâmpla este că unii demoni durează multe secunde pentru a se încărca . Și atunci ceea ce ar trebui să facem este să verificăm în ce punct Systemd se blochează și să încerce să rezolve problema prin dezactivarea serviciului, configurarea corectă sau actualizarea sistemului.

Faza finală de boot Linux

În acest moment, distro-ul nostru va fi gata. Acest lucru este atunci când „Nivel de execuție“ intră în faza care va indica cu un număr tipul de operare a sistemului de operare în funcție de serviciile care au fost încărcate corect:

  • 0 - Halt. Eroare critică a sistemului.
  • 1 - Mod de utilizator unic.
  • 2 - Mod multi-utilizator fără acces la rețea.
  • 3 - Terminal multi-user mode.
  • 4 - Modul definit de utilizator.
  • 5 - Mod multi-utilizator cu mediu grafic. Este modul dorit și în care va încerca să pornească implicit întotdeauna
  • 6 - Necesită repornirea computerului.

Presupunând că am obținut un „5” în runlevel, atunci putem vedea deja ecranul de conectare al distro-ului nostru Linux și putem să ne conectăm. Odată conectat, vom avea desktopul la îndemână și putem începe să lucrăm cu computerul liber.

Desktop Ubuntu

Putem schimba valoarea runlevel-ului executând într-un terminal „telinit” urmat de valoarea dorită. De exemplu, o valoare „0” ar forța o oprire a PC-ului, în timp ce o valoare „1” ne-ar permite să folosim doar Linux în modul cu un singur utilizator.

De asemenea, putem vedea timpul necesar încărcării distro noastre cu comanda „systemd-analyze”:

systemd-analiza