So bestimmen und beheben Sie Startprobleme unter Linux

So bestimmen und beheben Sie Startprobleme unter Linux

Das Linux -System startet so schnell, dass die meisten Ausgänge zu schnell nach dem Lesen des Textes (angezeigte gestartete Dienste) an die Konsole gelesen werden. Daher wird die Beobachtung von Stiefelproblemen/-fehlern für uns eine kleine Herausforderung für uns.

In diesem Artikel werden wir kurz die verschiedenen Phasen eines Linux -Systemstartprozesses erläutern und dann lernen, wie Sie die Probleme ermitteln und am Ende des Startproblems erreichen: In Begriffen zu suchen oder Befehle anzuzeigen, um Systemstartnachrichten anzuzeigen.

Zusammenfassung des Linux -Startvorgangs

Zusammenfassend, sobald wir die drücken Ein Knopf, die BIOS (Grundlegendes Ein-und Ausgabesystem) Ein in ein Motherboard integriertes Programm führt a POST (Selbstversuche) - Wo Hardware wie Datenträger, RAM (Zufallszugriffsspeicher), Tastatur usw. gescannt werden. Bei einem Fehler (fehlende/fehlerhafte Hardware) wird auf dem Bildschirm gemeldet.

Während POST, Die BIOS Sucht auch nach dem Boot -Gerät, der Festplatte, von der er stat (normalerweise die erste Festplatte, wir können es jedoch als DVD-, USB-, Netzwerkkarte usw. konfigurieren).

Dann wird das System eine Verbindung zur Festplatte herstellen und nach dem suchen Master Boot Record (512 Bytes in Größe), der den Startlader (446 Bytes in Größe) und den Rest des Raumsspeichers über Festplattenpartitionen (vier Maximum) und den MBR selbst speichert.

Vorgeschlagene Lesen: 4 beste Linux -Bootlader

Der Bootloader identifiziert sich und zeigt sowie auf das Laden des Startladers Kernel und die Initrd -Datei (Initialisierungs -RAM -Festplatte - bietet den Kernel -Zugriff auf das montierte Root -Dateisystem und Module/Treiber, die in gespeicherten Treiber gespeichert sind /lib Verzeichnis), die im Allgemeinen in der gespeichert sind /Stiefel Verzeichnis des Dateisystems.

Nachdem der Kernel geladen wurde, führt der erste Prozess mit init (oder systemd auf neueren Linux -Distribos) aus PID 1, was wiederum alle anderen Prozesse auf dem System startet. Es ist auch der letzte Prozess, der beim System zum System ausgeführt wird.

So finden Sie Linux -Startprobleme oder Fehlermeldungen

Wie bereits erwähnt, erfolgt die Linux -Startprozesse schnell, dass wir den größten Teil der an die Konsole gesendeten Ausgabe nicht einmal klar lesen können.

Kenntnis von Startproblemen/-fehlern, fordert einen Systemadministrator auf, bestimmte wichtige Dateien in Verbindung mit bestimmten Befehlen zu untersuchen. Und dazu beinhalten:

/var/log/boot.Protokoll - Protokolle Systemstartmeldungen

Dies ist wahrscheinlich die erste Datei, die Sie untersuchen möchten, um alles anzuzeigen, was sich während des Systemstarts entfaltet.

Anstatt so sehr zu versuchen, die Ausgabe auf dem Bildschirm während des BOOT zu befolgen, können wir diese Datei nach Abschluss des Startvorgangs ansehen.

Wir verwenden den CAT -Befehl für diesen Zweck wie folgt (unten ist ein Beispiel dieser Datei):

# Cat/var/log/boot.Protokoll 
Linux -Startprotokolle anzeigen
[OK] Start. [Zeit] Timing auf Geräte dev-disk-by \ x2DUUID-53E41CE9 \ x2DDC18 \ x2D458C \ x2DBC08 \ x2D584C208ED615.Gerät. [Abhängige] Abhängigkeit fehlgeschlagen für/dev/disk/by-UUID/53E41CE9-DC18-458C-BC08-584C208ED615. [Abhängige] Abhängigkeit fehlgeschlagen für den Swap. [OK] erreichten die Initialisierung des Zielsystems. [OK] Hören Sie den Aktivierungssteck von uUid Dämonien an. [OK] begannen die tägliche Reinigung von temporären Verzeichnissen. [OK] Hören Sie den Scheduler des Cups an. [OK] begannen tägliche APT -Aktivitäten. [OK] erreichten Timer -Timer. [OK] Avahi MDNS/DNS-SD-Stack-Aktivierungssteck zuhören. [OK] begannen die ACPI -Event -Check. [OK] starteten Trigger ResolvConf -Update für NetworkD DNS. [OK] starteten Pokalplaner. [OK] erreichten die Zielwege. [OK] Anhören von D-Bus-System-Nachrichtenbus-Socket. [OK] ACPID -Hör -Sockel hören. Startkonsolesystem -Startprotokollierung. [OK] erreichten Zielbogen. [OK] erreichten das Target -Basissystem. Starten von LSB: Stellen Sie den Gouverneur von CPU Frequency Scaling auf "OnDemand" ein… [OK] ACPI -Event -Daemon gestartet. [OK] begannen Mintsysteme.Service. Erkennen Sie den verfügbaren GPUs und bearbeiten Sie alle Systemänderungen… Starten von LSB: Dämon, um Interrupts für SMP -Systeme auszugleichen… Starten des Bluetooth -Dienstes… [OK] startete Clamav -Virus -Datenbank -Updater. Starten von LSB: Startet Syslogd… [OK] Start regelmäßiger Hintergrundprogrammverarbeitungs -Daemon. MODEM -Manager starten… den Account -Service starten… 

Aus der obigen Ausgabe können wir feststellen, dass durch die folgenden Zeilen ein Startprobleme angezeigt werden.

[Abhängige] Abhängigkeit fehlgeschlagen für/dev/disk/by-UUID/53E41CE9-DC18-458C-BC08-584C208ED615. [Abhängige] Abhängigkeit fehlgeschlagen für den Swap. 

Ausgabe: Problem mit der Tauschpartition; Das System konnte entweder die Swap -Datei/das Gerät/die Partition nicht lesen oder es ist nicht vorhanden.

Überprüfen Sie, ob das System den Swap -Speicherplatz mit kostenlosen Befehl verwendet.

# frei Gesamt gebrauchte kostenlose freigegebene Buff/Cache verfügbar MEM: 3742792 2421060 433696 287376 888036 967000 Swap: 0 0 0 0 0 

Alternativ können wir das ausführen Swapon -Befehl Um die Zusammenfassung des Systems auszusetzen (die Verbrauchszusammensetzung für den System auszusetzen, erhalten wir keine Ausgabe).

# SWAPON -S 

Wir können dieses Problem lösen, indem wir einen Swap -Speicherplatz unter Linux erstellen.

Notiz: Der Inhalt dieser Datei wird bei System zum Herunterfahren gelöscht: Neue Daten werden in einem neuen Start darin gespeichert.

/var/log/messages - Allgemeine Systemprotokolle

Diese Datei speichert allgemeine Systemnachrichten, einschließlich der Nachrichten, die während des Systemstarts protokolliert werden.

Um es anzusehen, tippen Sie:

# CAT/VAR/LOG/MONDALS 
Systemprotokollnachrichten anzeigen
4. Juni 13:04:44 Tecmint Syslogd (GNU INETUTILS 1.9.4): Neustart 4. Juni 13:19:55 Tecmint - Mark - 4. Juni 13:39:55 Tecmint - Mark - 4. Juni 13:59:55 Tecmint - Mark - 4. Juni 14:19:55 Tecmint - Mark - 4. Juni 14:20:17 Tecmint Vmunix: [4945.388740] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flags 0x2] hat eine falsche Ausrichtung 4 14:20:17 Tecmint Vmunix: [4945.388837] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flags 0x2] hat eine falsche Ausrichtung 4 14:20:17 Tecmint Vmunix: [4945.388903] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flags 0x2] hat eine falsche Ausrichtung 4 14:20:17 Tecmint Vmunix: [4945.388930] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flags 0x2] hat eine falsche Ausrichtung 4 14:20:17 Tecmint Vmunix: [4945.389334] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Flags 0x2] hat eine falsche Ausrichtung 4 14:20:17 Tecmint Vmunix: [4945.389402] pcieport 0000: 00: 1c.0: Bar 15: Zugeordnet [mem 0xdfa00000-0xdfbffff 64bit Pref]… 

Da diese Datei möglicherweise relativ lang ist, können wir sie auf Seiten verwenden, die die verwenden mehr Befehl (was sogar einen Prozentsatz zeigt) so.

# mehr/var/log/messages 

Die Inhalte von /var/log/messages Im Gegensatz zur vorherigen Datei wird nicht gelöscht, da sie nicht nur Startnachrichten, sondern auch Nachrichten über andere Systemaktivitäten enthalten. Daher werden ältere Dateien komprimiert und für eine spätere Inspektion auf dem System aufbewahrt, wie unten gezeigt.

# ls -l Nachricht* -RW-R-R-1 Root Root 1206127 Jun 10 14:20 Nachrichten -rw-r-R-- 1 Root Root 1419494 Jun 4 13:00 Nachrichten.1 -rw-r-R-- 1 Root Root 153011 Mai 28. Mai 09:30 Nachrichten.2.gz 

DMESG - Zeigt Kernel -Nachrichten an

Der DMESG -Befehl kann Operationen nach Abschluss des Startvorgangs anzeigen, z. B. an den Kernel übergebene Befehlszeilenoptionen. Hardwarekomponenten erkannt, Ereignisse, wenn ein neues USB -Gerät hinzugefügt wird, oder Fehler wie NIC -NIC -Interface Card -Fehler (Network Interface Card) und die Treiber melden keine Link -Aktivität im Netzwerk und vieles mehr.

# DMESG 
Kernel Nachrichten anzeigen
[0.000000] Initialisieren von CGroup Subsys CPUSET [0.000000] Initialisierung der CGGroup -Subsys CPU [0.000000] Initialisieren von CGroup Subsys CPUACCT [0.000000] Linux Version 4.4.0-21-generisch ([E-Mail geschützt]) (GCC Version 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) #37-UBUNTU SMP MON 18 Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generisch 4.4.6) [0.000000] Befehlszeile: boot_image =/boot/vmlinuz-4.4.0-21-Generic Root = UUID = 57B36D48-1938-43C2-BF85-E97BC9F423EA RO RUTS SPLYS [0).000000] Kernel unterstützte CPUs: [0.000000] Intel echtintelintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sies [2]: 256 [0).000000] x86/fpu: unterstützende XSAVE -Funktion 0x01: 'x87 Floating Point Registers' [0.000000] x86/fpu: unterstützende XSAVE -Funktion 0x02: 'SSE Register' [0.000000] x86/fpu: unterstützende XSAVE -Funktion 0x04: 'Avx Register' [0.000000] x86/FPU: Aktivierte XState -Funktionen 0x7, Kontextgröße beträgt 832 Bytes, im Verwendung des Standardformats "Standard". [0.000000] x86/FPU: Verwenden von "Eifrig" FPU -Kontextschalter. [0.000000] E820: BIOS-bereitgestellter physischer RAM-Karte: [0.000000] BIOS-E820: [MEM 0x00000000000000-0x0000000008ffff] Usable [0.000000] BIOS-E820: [MEM 0x00000000090000-0x000000000BFFFF] Reserviert [0.000000] BIOS-E820: [Mem 0x0000000000100000-0x0000001fffffff] Usable [0.000000] BIOS-E820: [MEM 0x00000020000000-0x00000000201FFFFF] Reserviert [0.000000] BIOS-E820: [MEM 0x00000020200000-0x00000040003FFF] Usable [0 0).000000] BIOS-E820: [MEM 0x0000000040004000-0x0000000040004FFF] Reserviert [0.000000] BIOS-E820: [MEM 0x0000000040005000-0x00000080B2FFFF] Usable [0 0).000000] BIOS-E820: [MEM 0x0000000080B30000-0X0000000080D31FFF] Reserviert [0.000000] BIOS-E820: [MEM 0x0000000080D32000-0x00000000CE3EEFFF] Usable [0.000000] BIOS-E820: [MEM 0x00000000CE3EF000-0X00000000CE5EEFFF] Typ 20 [0 0.000000] BIOS-E820: [MEM 0x00000000CE5EF000-0X00000000DAEEEFF] Reserviert [0 0).000000] BIOS-E820: [MEM 0x00000000DAEEF000-0X0000000000DAF9FF] ACPI NVS… 

Journalctl - Abfrageninhalte des Systemd Journal

Dies ist in den meisten aktuellen Linux -Distributionen mit Systemd: dem neuesten System- und Service -Manager nützlich. Darunter erfolgt die Systemprotokollierung über die Journalkomponente - ein zentraler Ort für alle Nachrichten, die von verschiedenen Komponenten protokolliert werden.

Diese Nachrichten enthalten Kernel- und Startnachrichten. Nachrichten aus Syslog oder verschiedenen Diensten. Wir können es verwenden, um Startnachrichten zu überprüfen und Startprobleme durch das Lesen der Ausgabe und die Identifizierung von interessierenden Zeilen zu ermitteln (Fehler, auf die rote Linien abhängig von den Einstellungen des terminalen Textfarbens hingewiesen wurden).

# Journalctl 
Inhalt von Systemd zeigen
13. Juni 16:35:32 Tecmint MTP-Probe [963]: Checking Bus 2, Gerät 5: "/sys/devices/pci0000: 00/0000: 00: 1d.0/u 13. Juni 16:35:32 Tecmint MTP-Probe [963]: Bus: 2, Gerät: 5 war kein MTP-Gerät 13. Juni 16:35:54 Tecmint Systemd [1]: Dev-DiSK-by \ x2Duuid -53E41CE9 \ x2DDC18 \ x2D458C \ x2DBC08 \ x2D584C208ED615. 13. Juni 16:35:54 Tecmint Systemd [1]: Timing auf Geräte dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d Jun 13 16:35:54 Tecmint Systemd [1]: Abhängigkeit für /dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /Dev /dev / Disk/BY-UUID/53E41CE9-DC18-458C-BC08-584C2 13. Juni 16:35:54 Tecmint Systemd [1]: Abhängigkeit fehlgeschlagen für den Swap. 13. Juni 16:35:54 Tecmint Systemd [1]: Swap.Ziel: Jobwap.Ziel/Start fehlgeschlagen mit Ergebnis 'Abhängigkeit'. 13. Juni 16:35:54 Tecmint Systemd [1]: dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13. Juni 16:35:54 Tecmint Systemd [1]: dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13. Juni 16:35:54 Tecmint Systemd [1]: Erreichte Zielsysteminitialisierung. 13. Juni 16:35:54 Tecmint Systemd [1]: ACPI -Ereignisprüfung gestartet. 13. Juni 16:35:54 Tecmint Systemd [1]: Zuhören des Pokalschedulers. 13. Juni 16:35:54 Tecmint Systemd [1]: Startkonsolensystem Start -up -Protokollierung… 13. Juni 16:35:54 Tecmint Systemd [1]: Die tägliche Reinigung temporärer Verzeichnisse begonnen. 

Das obige ist eine Stichprobe der Befehlsausgabe, die einen Fehler zeigt, den wir bereits durch Anzeigen identifiziert haben /var/log/boot.Protokoll: Der Swap -Partitionsfehler. Um mehr Ausgabestellen anzuzeigen, drücken Sie einfach [Eingeben] Taste.

Schauen Sie sich auch diese nützlichen Leitfäden zu Linux -Systemstart- und Serviceverwaltung in Bezug auf gemeinsame System- und Service -Manager an:

  1. Prozessverwaltung in RHEL 7: Boot, Herunterfahren und alles dazwischen
  2. Verwaltung des Systems für Systemstarts und -dienste (sysvinit, systemd und upstart)
  3. Die Geschichte hinter 'init' und 'systemd': Warum 'init' musste ersetzt werden durch 'systemd'

In diesem Artikel haben wir kurz die verschiedenen Phasen des Linux -Systemstartprozesses sowie gelernt, wie man Probleme mit Startproblemen festlegt und möglicherweise behebt. Verwenden Sie das folgende Kommentarformular, um einen Überdenken zu diesem Handbuch hinzuzufügen.