Přehled procesu spouštění CentOS 7 a RHEL 7 a řešení problémů

Tento článek popisuje proces spouštění pro systémy CentOS/RHEL 7.x. I když to může zůstat podobné předchozím verzím, s RHEL 7 se zavádí systemd. Kromě procesu spouštění poskytnu tipy a triky pro odstraňování problémů.

Než budete moci aktivně řešit problém při spouštění, musíte porozumět procesu spouštění. Projděte si níže uvedené kroky, dokud se s procesem neseznámíte.

Přehled na vysoké úrovni

  • Síla + příspěvek.
  • Vyhledávání firmwaru zařízení.
  • Firmware čte bootloader.
  • Boot loader načte konfiguraci (grub2).
  • Boot loader načte jádro a initramfs.
  • Boot loader předá řízení jádru.
  • Kernel inicializuje hardware + spustí se /sbin/initjako pid 1.
  • Systemd spustí všechny cíle initrd (připojí souborový systém na /sysroot).
  • Kernel root FS přešel z initramfs root ( /sysroot) na systémový rootfs ( /) a systemd se znovu spustí jako verze systému.
  • Systemd hledá výchozí cíl a spouští/zastavuje jednotky podle konfigurace, přičemž automaticky řeší závislosti a zobrazí se přihlašovací stránka.

Další informace o procesu spouštění naleznete v oficiální dokumentaci operačního systému pro váš systém.

Systemd cíle

Cíle jsou v podstatě kontroly závislosti. Mají konfiguraci „před“ a „po“ přesně pro to, jaké služby jsou vyžadovány ke splnění tohoto cíle. Například: arp.ethernet.service, firewalld.service, a tak dále je třeba spustit a pracovat, než network.targetse k nim dostanete. Pokud není dosaženo, služby jako httpd, nfs, a ldapnelze spustit. V RHEL/CentOS 7 lze nastavit 4 cíle.

  • graphical.target (GUI rozhraní)
  • multi-user.target (režim více uživatelů, textové přihlášení)
  • rescue.target (výzva k suloginu, základní inicializace systému)
  • nouzové.target (výzva k sulogin, pivot initramfs dokončen a kořen systému připojen k / pouze pro čtení)

Chcete-li zobrazit aktuální výchozí cíl spouštění, použijte následující:

systemctl get-default

Mějte na paměti, že to můžete změnit za běhu izolováním cíle. Tím se spustí/zastaví všechny služby spojené s novým cílem, takže buďte opatrní (viz systemctl isolate new.target).

Režim jednoho uživatele

Jsou chvíle, kdy budete muset zavést do režimu jednoho uživatele, abyste vyřešili problém s operačním systémem. V tomto příkladu vám ukážu, jak používat rescue.targetrežim pro jednoho uživatele na RHEL/CentOS 7.

  1. Po zobrazení výzvy v nabídce grub přerušte nabídku grub2 stisknutím „e“ pro úpravy.
  2. Najděte řádek, který určuje verzi jádra ( vmlinuz ) a připojte k němu následující:systemd.unit=rescue.target
  3. Stiskněte "Ctrl+x" pro spuštění.
  4. Poté budete vyzváni heslem uživatele root, abyste pokračovali, jakmile opustíte záchranný shell, proces zavádění bude pokračovat v načítání vašeho výchozího cíle.

Obnovení hesla uživatele root

Tento proces se trochu liší od toho, co jsme používali v minulých verzích, ale je to jednoduchý úkol a vyžaduje jen velmi málo kroků. Pokud potřebujete obnovit jakékoli přihlašovací údaje, můžete tuto metodu použít k získání přístupu k virtuálnímu počítači. Stále můžete zavést systém z živého CD, připojit kořenový souborový systém a upravit heslo, ale tato metoda je zastaralá a vyžaduje více úsilí.

  1. Restartujte systém.
  2. Po zobrazení výzvy v nabídce grub přerušte nabídku grub2 stisknutím „e“ pro úpravy.
  3. Přesuňte kurzor na konec řádku, který určuje jádro ( vmlinuz ). Možná budete chtít odebrat všechny ostatní konzole kromě TTY0, ale tento krok nemusí být ve vašem prostředí nutný.
  4. Append rd.break( bez uvozovek ), který přeruší zaváděcí proces těsně předtím, než je řízení předáno z initramfs skutečnému systému.
  5. Ctrl+x pro spuštění.

V tomto okamžiku se zobrazí root shell s kořenovým souborovým systémem připojeným v režimu pouze pro čtení na /sysroot. Budeme jej muset znovu připojit s právy zápisu.

Znovu namontovat /sysroot.

# mount -oremount,rw /sysroot

Přepněte se do chrootového vězení.

# chroot /sysroot

Změňte heslo pro uživatele, ve kterém máme zastaralé přihlašovací údaje.

# passwd <username>

Pokud používáte SElinux, měli byste zvážit přejmenování všech souborů, než budete pokračovat v procesu zavádění. Pokud nepoužíváte SElinux, můžete tuto část přeskočit.

# touch /.autorelabel

Ukončete dvakrát a systém se čistě spustí z místa, kde jsme jej přerušili.

Kontrola protokolů z předchozích bootů

Může být užitečné zobrazit protokoly předchozích neúspěšných pokusů o spuštění. Pokud byly žurnálované protokoly trvalé (normálně uloženy v paměti a uvolněny při bootování), lze to provést pomocí journalctlnástroje. Pokud potřebujete nastavit trvalé protokolování spouštění, postupujte podle těchto kroků.

Jako root vytvořte soubor protokolu pro uložení těchto informací.

# mkdir -p 2775 /var/log/journal && chown :systemd-journal /var/log/journal
# systemctl restart systemd-journald

Chcete-li zkontrolovat protokoly předchozího spouštění, použijte -bvolbu s journalctl. Bez jakýchkoli argumentů -bbude výstup filtrovat pouze na zprávy týkající se posledního spuštění. Záporné číslo k tomuto argumentu bude filtrovat předchozí bootování. Například:

# journalctl -b-1 -p err

Zobrazí se vám protokoly chyb ze spouštění, ke kterému došlo před tím posledním. Měli byste změnit číselnou hodnotu tak, aby odrážela spouštění, které potřebujete zobrazit.

Oprava chyb disku a souborového systému

Jednou z nejčastějších chyb při spouštění je nesprávně nakonfigurovaný /etc/fstabsoubor. Budete NELZE použít rescue.targetopravit /etc/fstabchybu. Většina těchto problémů bude vyžadovat použití, emergency.targetprotože „záchrana“ vyžaduje funkčnější systém.

Níže jsou uvedeny příklady problémů, které vyžadují emergency.target:

  1. Poškozený souborový systém.
  2. Neexistující UUID v /etc/fstab.
  3. Neexistující přípojný bod v /etc/fstab.
  4. Nesprávná možnost montáže v /etc/fstab.

Důležité : Po úpravě /etc/fstabsouboru v nouzovém režimu musíte kvůli bezpečnostním opatřením spustit následující:

# systemctl daemon-reload

Zde je ukázkový příklad. Chystáme se nabootovat do nouzového režimu, abychom odstranili falešný záznam v /etc/fstab.

  1. Po zobrazení výzvy v nabídce grub přerušte nabídku grub2 stisknutím „e“ pro úpravy.
  2. Najděte řádek, který určuje verzi jádra ( vmlinuz ) a připojte k němu následující:systemd.unit=emergency.target
  3. Stiskněte "Ctrl+x" pro spuštění.
  4. Budete vyzváni k pokračování pomocí hesla root.
  5. Znovu připojte /, abychom mohli provést změny v fstabsouboru:# mount -oremount,rw /
  6. Pomocí mountpříkazu můžeme zjistit, která položka způsobuje chybu:# mount -a
  7. Odstraňte problematickou položku ze fstabsouboru.
  8. Použijte mount -aznovu, abyste se ujistili, že chyba byla vyřešena.
  9. Použijte, systemctl daemon-reloadjak jsem již zmínil, k opětovnému načtení všech souborů jednotek a opětovnému vytvoření celého stromu závislostí.

Jakmile opustíte nouzový shell, systém dokončí bootování z nouzového cíle a od tohoto bodu budete moci pokračovat jako obvykle. Tento příklad byl právě použit k tomu, abychom vám ukázali proces použití nouzového cíle k provádění trvalých změn souborů v systému.

Problémy se zavaděčem u Grub 2

/boot/grub2/grub.cfgSoubor je hlavní konfigurační soubor. DO NOT nikdy upravovat tento soubor ručně. Místo toho použijte grub2-mkconfigke generování nové konfigurace grub2 pomocí sady různých konfiguračních souborů a seznamu nainstalovaných jader. grub2-mkconfigPříkaz se bude zabývat /etc/default/grubna možnosti, jako je časový limit výchozí menu a jádra příkazového řádku k použití, pak použít sadu skriptů v /etc/grub.d/generování výsledného konfigurační soubor.

Zde je textový diagram tohoto vztahu.

/boot/grub2/grub.cfg
               |
               |__________________
               |                  |
         /etc/default/grub         /etc/grub.d/*

Důležité: Chcete-li upravit hlavní soubor grub.cfg, budete muset provést požadované změny /etc/default/grubv souborech a v souborech /etc/grub.d/a poté vytvořit nový grub.cfgspuštěním:

# grub2-mkconfig > /boot/grub2/grub.cfg

Odstraňování problémů grub

/boot/grub2/grub.cfgPřed řešením potíží je důležité porozumět syntaxi souboru.

  • Za prvé, zaváděcí položky jsou zakódovány uvnitř bloků 'menuentry'. V těchto blocích linux16a initrd16řádky ukazují na jádro, které se má načíst z disku (spolu s příkazovým řádkem jádra) a initramfs, které se má načíst. Během interaktivních úprav při spouštění se k nalezení těchto řádků používá tab.
  • Řádky "set root" uvnitř těchto bloků neukazují na kořenový souborový systém pro systém RHEL/CentOS 7, ale místo toho ukazují na souborový systém, ze kterého by měl grub2 načíst soubory jádra a initramfs. Syntaxe je harddrive.partitionkde hd0je první pevný disk v systému a kde hd1je druhý. Oddíly jsou označeny jako msdos1pro první oddíl MBR nebo gpt1pro první oddíl GPT.

Příklad z /boot/grub2/grub.cfg:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-514.el7.x86_64-advanced-a2531d12-46f8-4a0f-8a5c-b48d6ef71275' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'  123455ae-46f8-4a0f-8a5c-b48d6ef71275
    else
      search --no-floppy --fs-uuid --set=root 123455ae-46f8-4a0f-8a5c-b48d6ef71275
    fi

Pokud potřebujete znovu nainstalovat bootloader na zařízení, použijte následující příkaz.

# grub2-install <device>

Oprava poškozené instalace žlabu

Pro případy, kdy se systém nespustí po dosažení nabídky grub2.

  • Měli byste začít úpravou nabídky grub a hledáním syntaktických chyb. Pokud nějaký najdete, opravte jej a přejděte do systému, abyste provedli trvalé změny k vyřešení problému.
  • Pokud nemůžete najít žádné chyby, podívejte se na výše uvedenou část, kde zavádíme nouzový cíl. Budete muset znovu připojit root ( /).
  • Prohlédněte si aktuální konfiguraci grub2 pomocí následujícího příkazu: # grub2-mkconfig
  • Pokud nevidíte žádné chyby, je pravděpodobné, že někdo /boot/grub2/grub.cfgsoubor upravil . Tento soubor neupravujte. Znovu sestavte konfiguraci pomocí následujícího příkazu:# grub2-mkconfig > /boot/grub2/grub.cfg

Jakmile přestavíte konfiguraci grub, měli byste být schopni restartovat bez jakýchkoli problémů.


Zvyšte produktivitu pomocí Z a Zsh na CentOS

Zvyšte produktivitu pomocí Z a Zsh na CentOS

Úvod Práce na systémech Linux znamená, že člověk používá příkazový řádek častěji než ne. Stejně tak musíte znovu a znovu zadávat dlouhé názvy adresářů

Nastavte RethinkDB Cluster na CentOS 7

Nastavte RethinkDB Cluster na CentOS 7

Úvod RethinkDB je databáze NoSQL, která ukládá data jako dokumenty JSON. Má super intuitivní dotazovací jazyk a má běžně dostupné funkce, např

Nainstalujte DirectAdmin na CentOS 6 nebo 7

Nainstalujte DirectAdmin na CentOS 6 nebo 7

DirectAdmin je proprietární webový ovládací panel, který si můžete nainstalovat na svůj server a který nabízí řadu funkcí pro správu systému. V thi

Přehled procesu spouštění CentOS 7 a RHEL 7 a řešení problémů

Přehled procesu spouštění CentOS 7 a RHEL 7 a řešení problémů

Tento článek popisuje proces spouštění pro systémy CentOS/RHEL 7.x. I když to může zůstat podobné předchozím verzím, s RHEL 7 je systemd bein

Nainstalujte PostgreSQL na CentOS 7

Nainstalujte PostgreSQL na CentOS 7

Úvod PostgreSQL je nejpokročilejší open source systém správy relačních databází (RDBMS) na světě. Je kompatibilní se standardy ANSI SQL:2008

Základy správy uživatelů na systémech CentOS

Základy správy uživatelů na systémech CentOS

Správa uživatelů může být náročný úkol: od každodenní údržby, bezpečnostních rizik a nedostatku důkladné online dokumentace. Tento článek vám pomůže začít

Počáteční nastavení serveru CentOS 7

Počáteční nastavení serveru CentOS 7

Úvod Nově aktivovaný server CentOS 7 musí být upraven, než může být uveden do provozu jako produkční systém. V tomto článku to nejdůležitější

Zkontrolujte rychlost internetu pomocí Speedtest-cli na CentOS

Zkontrolujte rychlost internetu pomocí Speedtest-cli na CentOS

Úvod V tomto tutoriálu nainstalujte Speedtest-cli, abyste otestovali rychlost sítě vašeho serveru. Speedtest-cli je rozhraní příkazového řádku pro th

Nainstalujte prostředí GUI na CentOS 6

Nainstalujte prostředí GUI na CentOS 6

Správa vašeho serveru pouze pomocí SSH může být zastrašující. Dobrá věc pro nás je, že Vultr má možnost View Console. Chcete-li plně využít konzolu Vultrs VNC

Nastavte časové pásmo a NTP na CentOS 6

Nastavte časové pásmo a NTP na CentOS 6

Úvod Pro správce serveru je důležité správně nastavit a udržovat čas na serverech. Špatně nastavený čas způsobí chaos v th

Použijte Nethogs ke sledování využití šířky pásma sítě

Použijte Nethogs ke sledování využití šířky pásma sítě

V tomto tutoriálu se budeme zabývat procesem instalace a používání nethogs na CentOS 6x x64. nethogs je nástroj pro monitorování sítě, který umožňuje Networ

Nainstalujte CentOS Web Panel (CWP) na CentOS 6

Nainstalujte CentOS Web Panel (CWP) na CentOS 6

CentOS Web Panel nebo CWP je open-source hostingový ovládací panel, který je navržen pro rychlou a snadnou správu serveru. Obsahuje všechny funkce o

Nastavte Zarafa a Yaffas na CentOS 6

Nastavte Zarafa a Yaffas na CentOS 6

Existuje mnoho řešení, která nahrazují Microsoft Exchange řešením pro Linux, ale všechna měla jeden problém, který se mi opravdu nelíbil. Když přijmu

Nasazení backendového serveru Glowing Bear na CentOS 7

Nasazení backendového serveru Glowing Bear na CentOS 7

Glowing Bear je webové rozhraní pro klienta WeeChat IRC a snaží se být moderním rozhraním. Díky svým funkcím, jako je kliknutí ke zmínce, nahrazování emotikonů

Jak upgradovat CentOS 6 na CentOS 7

Jak upgradovat CentOS 6 na CentOS 7

Jak upgradovat CentOS 6 na CentOS 7

Zabezpečte TMP a TMPFS na CentOS 6

Zabezpečte TMP a TMPFS na CentOS 6

Dočasné adresáře jako /tmp, /var/tmp a /dev/shm nabízejí hackerům platformu pro spouštění skriptů a programů. Tyto škodlivé spustitelné soubory se používají t

Povolte EPEL na CentOS

Povolte EPEL na CentOS

Pozadí Úložiště Fedoras Extra Packages for Enterprise Linux (EPEL) poskytuje možnost instalovat softwarové balíčky, které nejsou součástí

Jak monitorovat porty a služby pomocí MonitorIX na CentOS6

Jak monitorovat porty a služby pomocí MonitorIX na CentOS6

MonitorIX Tento článek se bude zabývat kroky, jak nainstalovat MonitorIX a nakonfigurovat jej tak, aby protokoloval vlastní port, v tomto případě port Minecraft (25565).

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více