GNU/Linux >> Znalost Linux >  >> Cent OS

CentOS / RHEL 7 :Proces spouštění

Pro řešení problémů se zaváděním systému je důležité porozumět procesu zavádění systému Linux. Toto jsou kroky na vysoké úrovni v procesu spouštění. Musíte si být vědomi souborů zapojených do procesu spouštění, protože chyby v těchto souborech mohou způsobit problémy se zaváděním.

Pokud se během spouštění vyskytne problém, musíte zjistit, ve které fázi procesu spouštění problém spočívá, abyste mohli podniknout příslušné kroky k vyřešení problému.

Představení systemd

systemd je nový správce systému a služeb v CentOS/RHEL 7. Je zpětně kompatibilní se SysV init skripty používanými předchozími verzemi RedHat Linuxu včetně RHEL 6. Nahrazuje Upstart jako výchozí inicializační systém.

Následující kroky shrnují, jak probíhá spouštěcí procedura v RHEL/CentOS 7.

  1. BIOS počítače provádí POST.
  2. BIOS načte MBR pro bootloader.
  3. Zavaděč GRUB 2 načte obraz jádra vmlinuz.
  4. GRUB 2 extrahuje obsah obrazu initramfs.
  5. Jádro načte moduly ovladačů z initramfs.
  6. Jádro spouští první proces systému, systemd.
  7. Vládu převezme systémový proces. To:
    • Čte konfigurační soubory z adresáře /etc/systemd
    • Čte soubor propojený pomocí /etc/systemd/system/default.target
    • Uvede systém do stavu definovaného cílem systému
    • Spustí /etc/rc.local

1. POST (Power on Self Test)

Ze systémového firmwaru, kterým může být moderní Universal Extended Firmware Interface (UEFI ) nebo klasický Basic Input Output System (BIOS ), provede se test POST (Power-On Self-Test) a inicializuje se hardware potřebný ke spuštění systému.

2. Výběr spouštěcího zařízení (s MBR)

– Master Boot Record (MBR) je prvních 512 bajtů spouštěcí jednotky, které systém BIOS načte do paměti.
– Dalších 64 bajtů obsahuje tabulku oddílů pro disk. Poslední dva bajty jsou „Magické číslo“, které se používá pro detekci chyb.

– MBR najde zaváděcí zařízení a nahraje zavaděč GRUB2 do paměti a přenese na něj kontrolu.

3. Načítání zavaděče (GRUB2)

– Výchozí zaváděcí program používaný na RHEL 7 je GRUB 2. GRUB je zkratka pro GRand Unified Bootloader . GRUB 2 nahrazuje starší zavaděč GRUB nazývaný také jako starší GRUB.
– Konfigurační soubor GRUB 2 se nachází na /boot/grub2/grub.cfg (Tento soubor přímo neupravujte).

– Nastavení konfigurace nabídky GRUB 2 jsou převzata z /etc/default/grub při generování grub.cfg.
– Ukázkový soubor /etc/default/grub :

# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"

– Pokud dojde ke změně některého z těchto parametrů, musíte spustit grub2-mkconfig znovu vygenerovat soubor /boot/grub2/grub.cfg.

# grub2-mkconfig –o /boot/grub2/grub.cfg

– GRUB2 prohledá komprimovaný soubor obrazu jádra nazývaný také jako vmlinuz v adresáři /boot.
– GRUB2 načte soubor obrazu jádra vmlinuz do paměti a rozbalí obsah souboru obrazu initramfs do dočasného souborového systému založeného na paměti (tmpfs).
– Počáteční RAM disk (initrd) je počáteční kořenový souborový systém, který je připojen před skutečný kořenový souborový systém.

initramfs
– Úkolem počátečního souborového systému RAM je předběžně načíst moduly blokových zařízení, například pro IDE, SCSI nebo RAID, aby pak bylo možné přistupovat ke kořenovému systému souborů, ve kterém se tyto moduly běžně nacházejí. připojený.
– Initramfs je svázán s jádrem a jádro tento initramfs připojí jako součást dvoufázového zaváděcího procesu.
– Nástroj dracut vytvoří initramfs pokaždé, když je nainstalováno nové jádro.
– Použijte příkaz lsinitrd k zobrazení obsahu obrázku vytvořeného pomocí dracut:

# lsinitrd | less

4. Načítání jádra

– Jádro spustí proces systemd s ID procesu 1 (PID 1).

– Také načte potřebné moduly ovladačů z obrazu initrd.
– Zavaděč (GRUB2) může uživateli nabídnout zaváděcí nabídku nebo jej lze nakonfigurovat tak, aby automaticky spouštěl výchozí operační systém.
– Chcete-li načtete Linux, jádro se načte společně s initramfs. Initramfs obsahuje moduly jádra pro veškerý hardware, který je nutný ke spouštění, a také počáteční skripty potřebné k přechodu do další fáze zavádění.
– Na RHEL 7 obsahuje initramfs kompletní operační systém (který může být používá se pro účely odstraňování problémů).

5. Spouštění systemd

– Jádro spustí proces systemd s ID procesu 1 (PID 1).

root          1      0  0 02:10 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 23

– systemd je první proces, který se spustí po nabootování systému, a je posledním procesem, který běží, když se systém vypne.
– Řídí poslední fáze spouštění a připravuje systém k použití. Také urychluje bootování souběžným načítáním služeb.
– systemd čte soubor propojený souborem /etc/systemd/system/default.target (například /usr/lib/systemd/system/multi-user.target) k určení výchozího cíle systému (ekvivalentní úrovni běhu). Systémový cílový soubor definuje služby, které systemd spouští.
– systemd umožňuje spravovat různé typy jednotek v systému, včetně služeb (name.service) a cílů (name.target), zařízení (name.device) , body připojení systému souborů (název.připojení) a sokety (název.zásuvka).

Porovnání úrovní běhu SysV a cílových jednotek

Úroveň běhu Cílové jednotky Popis
0 runlevel0.target, poweroff.target Vypnout a vypnout
1 runlevel1.target, rescue.target Nastavit záchranný shell
2,3,4 runlevel[234].target, multi-user.target Nastavte negrafický víceuživatelský shell
5 runlevel5.target, graphical.target Nastavte grafický víceuživatelský shell
6 runlevel6.target, reboot.target Vypněte a restartujte systém

systemd uvádí systém do stavu definovaného cílem systému a provádí úlohy inicializace systému, jako jsou:
1. Nastavení názvu hostitele
2. Inicializace sítě
3. Inicializace SELinuxu na základě jeho konfigurace
4. Tisk uvítacího banneru
5. Inicializace hardwaru systému na základě zaváděcích argumentů jádra
6. Připojení systémů souborů, včetně virtuálních systémů souborů, jako je souborový systém /proc
7. Čištění adresářů ve /var
8. Spouštění výměny

Zobrazit výchozí/aktuální cílovou jednotku

Pomocí následujícího příkazu zobrazíte, která cílová jednotka se používá ve výchozím nastavení:

# systemctl get-default
graphical.target

graphical.target cílová jednotka označuje, že systém běží v grafickém stavu pro více uživatelů. Je to podobné jako spuštění úrovně 5 v inicializačním systému SysV. Můžete to ověřit pomocí starého příkazu runlevel :

# runlevel
N 5

Výchozí cílovou jednotku představuje /etc/systemd/system/default.target soubor. Tento soubor je symbolickým odkazem na aktuální výchozí cílovou jednotku. Například:

# ls -lrt /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 36 Sep 23 20:01 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target

Změnit výchozí cílovou jednotku

Ke změně výchozí cílové jednotky použijte následující příkaz (například ke změně výchozí jednotky na multi-user.target):

# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

Všimněte si, že symbolický odkaz default.target se změnil a nyní ukazuje na jednotku multi-user.target:

# ls -lrt /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 41 Sep 24 11:58 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target

Níže uvedená tabulka shrnuje, kde je nakonfigurována konkrétní fáze a co můžete udělat pro odstraňování problémů, pokud se něco pokazí.

Fáze spouštění Konfigurace
POSTÁVAT Konfigurace hardwaru (F2, ESC, F10 nebo jiná klávesa)
Vyberte spouštěcí zařízení Konfigurace BIOS/UEFI nebo nabídka spouštění hardwaru
Načítání zavaděče grub2-install a úpravy /etc/defaults/grub
Načítání jádra Úpravy konfigurace GRUB a /etc/dracut.conf
spuštěním /sbin/init Zkompilováno do initramfs
Zpracování initrd.target Zkompilováno do initramfs
Přepněte na kořenový souborový systém /etc/fstab
Spuštění výchozího cíle /etc/systemd/system/default.target
CentOS / RHEL 7 :Průvodce pro začátečníky k systemd
CentOS / RHEL 7 :Průvodce pro začátečníky k cílům systemd (náhrada úrovní spuštění SysV init)


Cent OS
  1. Nelze spustit operační systém Linux s auditem (CentOS/RHEL)

  2. Oprava problémů se souborovým systémem při spouštění v CentOS/RHEL 7 a 8

  3. Jak ladit proces spouštění systemd v CentOS/RHEL 7 a 8

  1. Režim jednoho uživatele v CentOS 7 / RHEL 7

  2. Nainstalovat Skype na systém CentOS 7 – proces krok za krokem?

  3. Jak ladit proces spouštění systemd v CentOS/RHEL 7 a 8

  1. Jak nainstalovat a nakonfigurovat R na RHEL 8 / CentOS 8 Linux System

  2. RHEL 8 / CentOS 8 obnoví heslo uživatele root

  3. Jak deaktivovat ACPI v CentOS/RHEL 7