Wyszukiwanie w witrynie

Podstawowy przewodnik po różnych etapach procesu uruchamiania systemu Linux


Za każdym razem, gdy włączasz komputer z systemem Linux, przechodzi on przez szereg etapów, zanim w końcu wyświetli się ekran logowania z monitem o podanie nazwy użytkownika i hasła. Istnieją 4 różne etapy, przez które przechodzi każda dystrybucja Linuksa w typowym procesie uruchamiania.

W tym przewodniku podkreślimy różne kroki wykonywane przez system operacyjny Linux od momentu włączenia zasilania do momentu zalogowania. Należy pamiętać, że w tym przewodniku uwzględniono jedynie program ładujący GRUB2 i systemd init, ponieważ są one obecnie używane w zdecydowanej większości nowoczesnych dystrybucji Linuksa.

Proces uruchamiania składa się z 4 następujących kroków, które omówimy bardziej szczegółowo:

  • BIOS Kontrola integralności (POST)
  • Ładowanie modułu ładującego (GRUB2)
  • Inicjalizacja jądra
  • Uruchamianie systemd, rodzica wszystkich procesów

1. Kontrola integralności BIOS-u (POST)

Proces uruchamiania jest zwykle inicjowany, gdy użytkownik naciśnie przycisk włączenia – jeśli komputer był już wyłączony – lub ponownie uruchomi system za pomocą interfejsu GUI lub wiersza poleceń.

Po włączeniu systemu Linux uruchamia się BIOS (podstawowy system wejścia/wyjścia) i przeprowadza samotest po włączeniu zasilania (POST ). Jest to kontrola integralności, która wykonuje mnóstwo kontroli diagnostycznych.

POST sprawdza działanie sprzętu takich komponentów, jak HDD lub SSD, Klawiatura, RAM<, porty USB i dowolny inny sprzęt. Jeśli jakieś urządzenie sprzętowe nie zostanie wykryte lub jeśli wystąpi awaria któregokolwiek z urządzeń, np. uszkodzony dysk twardy lub dysk SSD, na ekranie pojawi się komunikat o błędzie z prośbą o interwencję.

W niektórych przypadkach rozlegnie się sygnał dźwiękowy, szczególnie w przypadku braku modułu RAM. Jeśli jednak oczekiwany sprzęt jest obecny i działa zgodnie z oczekiwaniami, proces uruchamiania przechodzi do następnego etapu.

2. Program ładujący (GRUB2)

Po zakończeniu POST i zwolnieniu wybrzeża, BIOS sprawdza MBR (główny rekord rozruchowy) pod kątem informacje o programie ładującym i partycjonowaniu dysku.

MBR to 512-bajtowy kod umieszczony w pierwszym sektorze dysku twardego, zwykle /dev/sda lub /dev/hda w zależności od architektury dysku twardego. Należy jednak pamiętać, że czasami plik MBR może znajdować się na instalacji Live USB lub DVD systemu Linux.

W Linuksie istnieją 3 główne typy programów ładujących: LILO, GRUB i GRUB2. Program ładujący GRUB2 jest najnowszym i głównym programem ładującym we współczesnych dystrybucjach Linuksa i informuje nas o decyzji o pominięciu dwóch pozostałych, które z biegiem czasu stały się przestarzałe.

GRUB2 oznacza GRand Unified Bootloader w wersji 2. Gdy BIOS zlokalizuje program ładujący Grub2, uruchamia go i ładuje do pamięci głównej (RAM).

Menu grub2 umożliwia wykonanie kilku czynności. Pozwala wybrać wersję jądra Linuksa, której chcesz używać. Jeśli aktualizowałeś system kilka razy, na liście mogą pojawić się różne wersje jądra. Dodatkowo daje możliwość edycji niektórych parametrów jądra poprzez naciśnięcie kombinacji klawiszy klawiatury.

Ponadto w konfiguracji z podwójnym rozruchem, w której masz wiele instalacji systemu operacyjnego, menu Grub pozwala wybrać system operacyjny, w którym chcesz się uruchomić. Plik konfiguracyjny Grub2 to plik /boot/grub2/grub2.cfg. Głównym celem GRUB-a jest załadowanie jądra Linuksa do pamięci głównej.

3. Inicjalizacja jądra

Jądro jest rdzeniem każdego systemu Linux. Łączy sprzęt komputera z leżącymi u jego podstaw procesami. Jądro kontroluje wszystkie procesy w systemie Linux. Gdy wybrane jądro Linuksa zostanie załadowane przez program ładujący, musi ono samodzielnie rozpakować się ze swojej skompresowanej wersji przed wykonaniem jakiegokolwiek zadania. Po samorozpakowaniu wybrane jądro montuje główny system plików i inicjuje program /sbin/init, powszechnie nazywany init.

Init jest zawsze wykonywanym programem jako pierwszy i ma przypisany identyfikator procesu lub PID równy 1. Jest to proces inicjujący, który tworzy różne demony i montuje wszystkie partycje określone w pliku /etc/ plik fstab.

Następnie jądro montuje początkowy dysk RAM (initrd), który jest tymczasowym głównym systemem plików do czasu zamontowania prawdziwego głównego systemu plików. Wszystkie jądra znajdują się w katalogu /boot wraz z początkowym obrazem dysku RAM.

4. Uruchamianie Systemd

Jądro w końcu ładuje Systemd, co zastępuje starą inicjację SysV. Systemd jest matką wszystkich procesów Linuksa i zarządza między innymi montowaniem systemów plików, uruchamianiem i zatrzymywaniem usług, żeby wymienić tylko kilka.

Systemd używa pliku /etc/systemd/system/default.target do określenia stanu lub miejsca docelowego, w którym powinien uruchomić się system Linux.

  • W przypadku stacji roboczej typu desktop (z graficznym interfejsem użytkownika) domyślną wartością docelową jest 5, co odpowiada poziomowi uruchomienia 5 dla starej inicjalizacji SystemV.
  • W przypadku serwera domyślnym celem jest multi-user.target, który odpowiada poziomowi uruchomienia 3 w init SysV.

Oto zestawienie celów systemowych:

  • poweroff.target (poziom działania 0): wyłączenie lub zamknięcie systemu.
  • rescue.target (poziom działania 1): uruchamia sesję powłoki ratunkowej.
  • multi-user.target (poziom działania 2,3,4): konfiguruje system do pracy z wieloma użytkownikami w trybie niegraficznym (konsola).
  • graphical.target (poziom działania 5): ustaw system tak, aby korzystał z graficznego interfejsu wielu użytkowników z usługami sieciowymi.
  • reboot.target (poziom działania 6): uruchamia ponownie system.

Aby sprawdzić bieżący cel w systemie, uruchom polecenie:

systemctl get-default

Możesz przełączać się z jednego celu na inny, uruchamiając następujące polecenie na terminalu:

init runlevel-value

Na przykład init 3 konfiguruje system do stanu innego niż graficzny.

Polecenie init 6 powoduje ponowne uruchomienie systemu, a polecenie init 0 wyłącza system. Pamiętaj, aby wywołać polecenie Sudo, jeśli chcesz przełączyć się na te dwa cele.

Proces uruchamiania kończy się, gdy systemd załaduje wszystkie demony i ustawi wartość docelową lub na poziomie działania. W tym momencie zostaniesz poproszony o podanie nazwy użytkownika i hasła, dzięki którym uzyskasz dostęp do systemu Linux.