Jak określić i naprawić problemy z rozruchami w Linux

Jak określić i naprawić problemy z rozruchami w Linux

System systemu Linux jest tak szybko, że większość zwojów wyjściowych zbyt szybko, aby odczytać tekst (pokazujący uruchomione usługi) wysyłane do konsoli. Dlatego obserwowanie problemów/błędów rozruchowych staje się dla nas trochę wyzwaniem.

W tym artykule krótko wyjaśnimy różne etapy w procesie rozruchu systemu Linux, a następnie dowiemy się, jak ustanowić i dotrzeć do dolnej części problemów z rozruchem: w terminach pliki lub polecenia wyświetlania komunikatów rozruchowych systemu.

Podsumowanie procesu rozruchu Linux

Podsumowując, po naciśnięciu Zasilanie włączone przycisk BIOS (Podstawowy System Wejścia Wyscia) Program zintegrowany z płytą główną wykonuje POST (Moc w autostlecie) - gdzie sprzęt, taki jak dyski, pamięć RAM (pamięć o dostępie losowo), klawiatura itp. W przypadku błędu (brakujący/nieprawidłowy sprzęt) jest on zgłaszany na ekranie.

Podczas POST, BIOS Szuka również urządzenia rozruchowego, dysku do Stat z (zwykle pierwszy dysk twardy, jednak możemy skonfigurować go jako DVD, USB, kartę sieciową itp.

Wtedy system połączy się z dysku i wyszukuje Główny rekord rozruchu (Rozmiar 512 bajtów), który przechowuje ładowarkę rozruchową (446 bajtów), a reszta przestrzeni przechowuje informacje o partycjach dysku (cztery maksimum) i samego MBR.

Sugerowane przeczytanie: 4 najlepsze ładowarki Linux

Ładowarka rozruchowa zidentyfikuje i wskazuje, a także ładuje Jądro a plik initrd (dysk inicjalizacyjny RAM - zapewnia dostęp jądra do zamontowanego systemu plików i modułów/sterowników /lib katalog), które są ogólnie przechowywane w /uruchomić katalog systemu plików.

Po załadowaniu jądra wykonuje init (lub systemd na nowszych dystrybucjach Linux), pierwszy proces z PID 1, który z kolei rozpoczyna wszystkie inne procesy w systemie. Jest to również ostatni proces, który zostanie wykonany podczas wyłączania systemu.

Jak znaleźć problemy z rozruchami Linux lub komunikaty o błędach

Jak wspomniano wcześniej, procesy rozruchu Linux szybko zdarzają się, że nie możemy nawet wyraźnie odczytać większości wyjścia wysłanych do konsoli.

Tak więc notatka problemów/błędów rozruchowych wymaga administratora systemu, który będzie szukał niektórych ważnych plików w połączeniu z poszczególnymi poleceniami. I to obejmują:

/var/log/boot.Log - dzienniki komunikaty rozruchowe systemu

Jest to prawdopodobnie pierwszy plik, na który chcesz sprawdzić, aby wyświetlić wszystko, co się rozwinęło podczas rozruchu systemowego.

Zamiast starać się podążać za wyjściem na ekranie podczas rozruchu, możemy wyświetlić ten plik po zakończeniu procesu rozruchu, aby pomóc nam w określaniu i rozwiązywaniu problemów/błędów rozruchowych.

Używamy polecenia CAT w tym celu w następujący sposób (poniżej znajduje się próbka tego pliku):

# cat/var/log/boot.dziennik 
Zobacz dzienniki rozruchowe Linux
[OK] Rozpoczęcie ładowania/zapisu status przełącznika zabójstwa RF. [Czas] W czasie oczekiwania na urządzenie dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615.urządzenie. [Zależność] Zależność nie powiodła się dla/dev/dysk/przez-UUID/53E41CE9-DC18-458C-BC08-584C208ED615. [Zależność] Zależność nie powiodła się w zamian. [OK] osiągnął inicjalizację systemu docelowego. [OK] Słuchanie na gniazdo aktywacji demon uuid. [OK] Rozpoczął codzienne czyszczenie tymczasowych katalogów. [OK] Słuchanie na harmonogramie kubków. [OK] Rozpocząłem codzienne czynności. [OK] osiągnął docelowe timery. [OK] Słuchanie na gniazdo aktywacji stosu Avahi MDNS/DNS-SD. [OK] Rozpoczął kontrolę zdarzeń ACPI. [OK] Rozpoczęto aktualizację rozdzielczości rozdzielczości dla sieci DNS Networkd. [OK] Rozpoczęto harmonogram kubków. [OK] osiągnął ścieżki docelowe. [OK] Słuchanie na gniazdo magistrali komunikacyjnej systemu D-Bus. [OK] Słuchanie na acpid Słuchaj gniazda. Rozpoczęcie rejestrowania systemu konsoli… [OK] Słuchanie w gniazdo serwisu internetowym kokpitu. [OK] dotarłem do gniazda docelowych. [OK] osiągnął docelowy system podstawowy. Uruchomienie LSB: Ustaw gubernator skalowania częstotliwości procesora na „Ondemand”… [OK] Rozpoczął Demon zdarzenia ACPI. [OK] Rozpoczął Mintsystem.praca. Rozpocznij wykrywanie dostępnych GPU i radzenie sobie z dowolnymi zmianami systemu… Uruchomienie LSB: Demon do zrównoważenia przerwań dla systemów SMP… Uruchamianie usługi Bluetooth… [OK] Uruchomienie aktualizacji bazy danych wirusa CLAMAV wirusa CLAMAV. Uruchamianie LSB: Uruchamianie Syslogd… [OK] Rozpoczął regularny demon przetwarzania programu w tle. Rozpoczęcie menedżera modemu… Uruchamianie usług kont… 

Z powyższego wyjścia widać, że istnieją problemy rozruchowe wskazane przez poniższe linie.

[Zależność] Zależność nie powiodła się dla/dev/dysk/przez-UUID/53E41CE9-DC18-458C-BC08-584C208ED615. [Zależność] Zależność nie powiodła się w zamian. 

Wydanie: Problem z partycją swap; System albo nie odczytał pliku zamiany/urządzenia/partycji lub nie jest obecny.

Sprawdźmy, czy system używa przestrzeni swap z dowodem darmowym.

# bezpłatny Całkowity używany bezpłatny udostępniony buff/pamięć podręczna Dostępne MEM: 3742792 2421060 433696 287376 888036 967000 Wymiana: 0 0 0 

Alternatywnie możemy uruchomić Polecenie swapon Aby wyświetlić podsumowanie wykorzystania przestrzeni wymiany systemu (nie otrzymamy żadnych wyjściowych).

# swapon -s 

Możemy rozwiązać ten problem, tworząc przestrzeń wymiany w Linux.

Notatka: Treść tego pliku jest wyczyszczona podczas zamknięcia systemu: nowe dane są przechowywane w nowym rozruchu.

/var/log/komunikaty - ogólne dzienniki systemowe

Ten plik przechowuje ogólne komunikaty systemowe, w tym komunikaty rejestrowane podczas rozruchu systemu.

Aby go wyświetlić, wpisz:

# cat/var/log/wiadomości 
Wyświetl komunikaty dziennika systemu
4 czerwca 13:04:44 Tecmint Syslogd (GNU Inetutils 1.9.4): Restart 4 czerwca 13:19:55 Tecmint - Mark - 4 czerwca 13:39:55 Tecmint - Mark - 4 czerwca 13:59:55 Tecmint - Mark - 4 czerwca 14:19:55 Tecmint - Mark - 4 czerwca 14:20:17 Tecmint VMUnix: [4945.388740] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flagi 0x2] ma fałszywe wyrównanie 4 czerwca 14:20:17 Tecmint VMUnix: [4945.388837] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flagi 0x2] ma fałszywe wyrównanie 4 czerwca 14:20:17 Tecmint VMUnix: [4945.388903] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flagi 0x2] ma fałszywe wyrównanie 4 czerwca 14:20:17 Tecmint VMUnix: [4945.388930] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flagi 0x2] ma fałszywe wyrównanie 4 czerwca 14:20:17 Tecmint VMUnix: [4945.389334] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flagi 0x2] ma fałszywe wyrównanie 4 czerwca 14:20:17 Tecmint VMUnix: [4945.389402] PCIEPort 0000: 00: 1c.0: Pasek 15: Przypisany [MEM 0xdfa00000-0xdfbfffff 64bit Pref]… 

Ponieważ ten plik może być stosunkowo długi, możemy go wyświetlić na stronach użyć więcej poleceń (który nawet pokazuje procent).

# Więcej/var/log/wiadomości 

Zawartość /var/log/wiadomości W przeciwieństwie do poprzedniego pliku nie jest wyczyszczone, ponieważ zawiera nie tylko komunikaty rozruchowe, ale także wiadomości dotyczące innych działań systemowych. Tak więc starsze pliki są kompresowane i utrzymywane w systemie do późniejszej kontroli, jak pokazano poniżej.

# ls -l wiadomość* -RW-R-R-- 1 root root 1206127 czerwca 14:20 Wiadomości -Rw-r-r-- 1 root 1419494 czerwca 13:00 Wiadomości.1 -RW-R-R-- 1 Root root 153011 28 maja 09:30 Wiadomości.2.GZ 

DMESG - pokazuje wiadomości jądra

Polecenie DMESG może wyświetlać operacje po zakończeniu procesu rozruchu, takie jak opcje wiersza poleceń przekazane do jądra; Wykryto komponenty sprzętowe, zdarzenia, gdy dodaje się nowe urządzenie USB lub błędy takie jak NIC (karta sieciowa), a sterowniki nie zgłaszają aktywności link wykrytych w sieci i wiele więcej.

# dmesg 
Pokaż wiadomości jądra
[0.000000] Inicjowanie CPUSET CGROUPSS [0.000000] Inicjowanie procesora CGroup Subsys [0.000000] Inicjowanie cgroup subsys CPUACCT [0.000000] Linux wersja 4.4.0-21-generalny ([chroniony e-mail]) (GCC wersja 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) #37-ubuntu SMP poniedziałek 18 kwietnia 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generalny 4.4.6) [0.000000] wiersz poleceń: boot_image =/boot/vmlinuz-4.4.0-21-generyczny root = uuid = 57B36D48-1938-43C2-BF85-E97BC9F4233A RO Cicha Splash [0.000000] Procesy obsługiwane przez jądro: [0.000000] Intel orygineintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, XState_Sizes [2]: 256 [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x01: „X87 Floating Point Registers” [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x02: „SSE Registers” [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x04: „Rejestry AVX” [0.000000] x86/FPU: Włączone funkcje xstate 0x7, rozmiar kontekstu wynosi 832 bajty, przy użyciu formatu „standardowego”. [0.000000] x86/FPU: Używanie przełączników kontekstowych „chętnych” FPU. [0.000000] E820: Mapa fizyczna pamięci pamięci RAM dostarczanej przez bio: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0x000000000008ffff] użyteczne [0.000000] BIOS-E820: [MEM 0X0000000000090000-0X00000000000BFFFF] [0.000000] BIOS-E820: [MEM 0X000000000000100000-0X000000001FFFFFFF] Użyteczne [0.000000] BIOS-E820: [MEM 0X0000000020000000-0X00000000201FFFFF] Zarezerwowany [0.000000] BIOS-E820: [MEM 0x0000000020200000-0x0000000040003fff] użyteczne [0.000000] BIOS-E820: [MEM 0x0000000040004000-0x0000000040004fff] zarezerwowany [0.000000] BIOS-E820: [MEM 0x0000000040005000-0x0000000080b2ffff] użyteczne [0.000000] BIOS-E820: [MEM 0X0000000080B30000-0X0000000080D31FFF] Zarezerwowany [0.000000] BIOS-E820: [MEM 0X0000000080D32000-0X00000000cee3eefff] użyteczne [0.000000] BIOS-E820: [MEM 0x00000000ce3Ef000-0x00000000ce5eefff] Typ 20 [0.000000] BIOS-E820: [MEM 0x00000000ce5Ef000-0x0000000000daeefff] zarezerwowany [0.000000] BIOS-E820: [MEM 0x00000000DAEEF000-0X0000000000DAF9EFFF] ACPI NVS… 

Journalctl - Zapytanie treści Systemd Journal

Jest to przydatne w większości obecnych dystrybucji Linux za pomocą SystemD: najnowszy menedżer systemu i serwisu. Zgodnie z nim rejestrowanie systemu odbywa się za pośrednictwem komponentu dziennika - scentralizowana lokalizacja dla wszystkich wiadomości rejestrowanych przez różne komponenty.

Wiadomości te obejmują jądro i komunikaty rozruchowe; Wiadomości z Syslog lub różnych usług. Możemy go użyć do przeglądu komunikatów rozruchowych i ustalania problemów rozruchowych, odczytując dane wyjściowe i identyfikując interesujące wiersze (błędy wskazane przez czerwone linie w zależności od ustawień kolorów terminalu).

# Journalctl 
Pokaż zawartość systemu
13 czerwca 16:35:32 Tecmint MTP-Probe [963]: Sprawdzanie magistrali 2, urządzenie 5: "/sys/devices/pCI0000: 00/0000: 00: 1D.0/U 13 czerwca 16:35:32 Tecmint MTP-Probe [963]: Bus: 2, urządzenie: 5 nie było urządzeniem MTP 13 czerwca 16:35:54 TecMint Systemd [1]: dev-disk-by \ x2duuid -53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13 czerwca 16:35:54 TecMint Systemd [1]: Czas oczekiwania na urządzenie dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d Jun 13 16:35:54 Tecmint Systemd [1]: Zależność nie powiodła się dla /dev /dev /dev /dev / Dysk/BY-UUID/53E41CE9-DC18-458C-BC08-584C2 13 czerwca 16:35:54 Tecmint Systemd [1]: Zależność nie powiodła się. 13 czerwca 16:35:54 Tecmint Systemd [1]: zamiana.Cel: zamiana pracy.cel/start nie powiódł się z wynikami „zależności”. 13 czerwca 16:35:54 TecMint Systemd [1]: dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13 czerwca 16:35:54 TecMint Systemd [1]: dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13 czerwca 16:35:54 TecMint Systemd [1]: Osiągnięcia inicjalizacji systemu docelowego. 13 czerwca 16:35:54 TecMint Systemd [1]: Rozpoczął sprawdzanie zdarzeń ACPI. 13 czerwca 16:35:54 Tecmint Systemd [1]: Słuchanie na harmonogramie kubków. 13 czerwca 16:35:54 TecMint Systemd [1]: Rozpoczęcie Konsoli System Start -Upt -upy… 13 czerwca 16:35:54 TecMint Systemd [1]: Rozpoczęło codzienne czyszczenie tymczasowych katalogów. 

Powyższe jest próbką wyjścia polecenia pokazującego błąd, który już zidentyfikowaliśmy, przeglądając /var/log/boot.dziennik: Błąd partycji wymiany. Aby wyświetlić więcej linii wyjściowych, po prostu naciśnij [Wchodzić] przycisk.

Sprawdź także te przydatne przewodniki na temat rozruchu systemu Linux i zarządzania usługami w odniesieniu do wspólnych menedżerów systemu i usług:

  1. Zarządzanie procesem w RHEL 7: rozruch, wyłączanie i wszystko pomiędzy
  2. Zarządzanie procesem i usługami uruchamiania systemu (Sysvinit, SystemD i Upstart)
  3. Historia „init” i „systemd”: dlaczego „init” musiał zostać zastąpiony „systemem”

W tym artykule wyjaśniliśmy w skrócie różne etapy procesu rozruchu systemu Linux, a także nauczyli. Aby dodać dowolną myśl do tego przewodnika, użyj poniższego formularza komentarza.