Secvența de boot a linux

Secvența de boot a sistemului Linux constă în următorii pași:

BIOS-ul este interfața de nivel inferior dintre computer și periferic, care caută și execută sectorul de pornire de pe orice dispozitiv de stocare conectat la computer.







De obicei, aceasta este:

  • Unitate CD-ROM
  • Unitate hard disk
  • Unitate de disc (folosită mai rar)

Lista depinde de capabilitățile BIOS-ului respectiv, precum și de hardware-ul dvs.

Prioritatea de încărcare poate fi modificată în BIOS. Pentru a intra în meniul de configurare BIOS, puteți apăsa de obicei Del, F1, F2 sau F10 în timp ce computerul pornește.

Primul sector al dispozitivului de stocare încărcat este rezervat pentru înregistrarea de boot master. Când dispozitivul pornește de la dispozitiv, BIOS-ul încarcă și execută încărcătorul de boot, situat în MBR.

În special, stage2 grub boot loader citește datele din fișier /boot/grub/grub.conf (sau /boot/grub/menu.lst, în funcție de versiune), care conține o listă cu toate sistemele de operare disponibile și opțiuni de boot. Apoi, ecranul afișează o listă de sisteme de operare din care utilizatorul selectează sistemul de operare pentru boot.

În unele cazuri, încărcătorul stage1 GRUB (GRand Unified Bootloader) descarcă stadiul 1.5, al cărui cod este în primele treizeci de kilobyte de dispozitiv de stocare urmând imediat după MBR, iar stadiul1.5 descărcări stage2.

Când etapa 2 primește control, este afișat un meniu (pseudo) grafic pentru ca utilizatorul să aleagă sistemul de operare pentru boot. Trebuie remarcat faptul că parametrii de încărcare pot fi modificate din acest meniu care vă permite să restaurați sistemul după menu.lst sau grub.conf au fost deteriorate accidental.

Odată ce au fost selectați parametrii de încărcare, GRUB încarcă nucleul selectat în memorie și trece controlul la kernel-ul, care deja continuă să booteze sistemul în sine. De asemenea, GRUB poate transfera controlul nu la kernel, ci la un alt încărcător, folosind o încărcare așa-numită a lanțului (încărcare în lanț), de exemplu, un încărcător OS care nu acceptă standardul Multiboot.







La rândul său, kernel-ul verifică configurația hardware, inițializează dispozitivele și lansează initrd-ul (opțional), apoi montează dispozitivul specificat în parametrii de boot ca "rădăcină" ca sistem de fișiere rădăcină.

Sistemul de fișiere al dispozitivului este detectat automat. Dacă, din anumite motive, mount-ul nu reușește, sistemul emite o panică de kernel și descărcarea se oprește.

După instalarea cu succes a sistemului de fișiere, kernelul pornește daemonul init, care primește ID-ul procesului egal cu unul și pornește restul sistemului.

init este ultimul pas în secvența de boot a sistemului. init este parintele (sau cel mai indepartat stramos) pentru toate procesele care ruleaza pe sistem. Acest proces este lansat primul în sistem și este pornit direct de kernel. De asemenea, rulează toate procesele de sistem, așa cum este indicat în / etc / inittab.

Atâta timp cât sistemul rulează, init nu va fi terminat. Merită menționat faptul că init este un proces de utilizator, nu un proces de sistem, chiar dacă rulează ca root.

Fiecare intrare în / etc / inittab conține așa-numita "runlevel" pentru proces, adică informații despre ce nivel de pornire a sistemului trebuie inițiat.

În sistemele Linux există șapte valori posibile pentru nivelul de pornire: 0 la 6 inclusiv:

  1. Opriți sistemul
  2. Modul pentru un singur utilizator
  3. Definită de utilizator, de obicei un mod multi-utilizator fără suport de rețea și o coajă grafică
  4. Modul multi-utilizator fără coajă grafică
  5. Acesta este definit de către utilizator, de regulă, nu este utilizat
  6. Modul multi-utilizator cu coajă grafică
  7. repornire

Bazat pe curent rula nivel, init rulează script-uri situate în subdirectoare /etc/rc.d/, pentru fiecare nivel de declanșare are propria subdirector de /etc/rc.d/rc0.d la /etc/rc.d/rc6.d .

De fapt, începutul fiecărui script-uri la nivel de a alerga executa script-ul / etc / rc, care este invocată la fiecare rulare nivel cu parametrul egal cu nivelul actual. Apelarea aceluiași parametru / etc / rc este înregistrată în / etc / inittab, pentru fiecare dintre nivelurile posibile de pornire.

Nivelul implicit de pornire este determinat de intrarea în / etc / inittab:

Nivelul actual de declanșare poate fi modificat prin apelarea:

Unde # este nivelul de pornire dorit. Ie apelul "/ sbin / telinit 6" va determina reportarea sistemului.







Articole similare

Trimiteți-le prietenilor: