Kernel Panic gibt keine Protokolldateien aus


8

Ich habe ein Spiel auf Steam gespielt und plötzlich bekam ich eine Kernel-Panik. Ich habe den Computer manuell heruntergefahren und wieder in Linux Mint 17.1 (Cinnamon) 64-Bit gestartet und meine Anmeldedateien überprüft /var/log/, konnte jedoch keine Referenzen oder Nachrichten im Zusammenhang mit der Kernel-Panik finden passiert.

Es ist seltsam, warum der Kern nie in den Protokolldateien abgelegt oder gar notiert wurde. Wie kann ich sicherstellen, dass ein Core immer entleert wird, falls erneut eine Kernel-Panik auftritt? Es macht keinen Sinn, warum nichts protokolliert wurde, als eine Kernel-Panik auftrat. Umsah auf Google, schlagen die Menschen lesen durch /var/log/dmesg, /var/log/syslog, /var/log/kern.log, /var/log/Xorg.logetc ... aber nichts. Auch nicht in der .Xsession-errorsDatei.

Hier sind einige Fotos des Bildschirms:
Kernel Panic (image2) Kernel Panic (image1)

Ich könnte immer ein Foto des Bildschirms machen, wenn und falls es wieder passiert, aber ich möchte nur sicherstellen, dass ich es dazu bringen kann, den Kern zu sichern und eine Protokolldatei in einer Kernel-Panik zu erstellen.


1
haben Sie überprüft /var/crash?
Archemar

@Archemar Keine solche Datei oder Verzeichnis.

Es ist höchst unwahrscheinlich, dass Sie jemals Informationen über einen Kernelfehler in finden .Xsession-errors.
G-Man sagt "Reinstate Monica"

Antworten:


6

Um sicherzustellen, dass Ihr Computer bei einem Kernelfehler eine "Kern" -Datei generiert, sollten Sie die "sysctl" -Einstellungen Ihres Computers bestätigen.

IMO, folgende Einstellungen sollten (minimal) sein in /etc/sysctl.conf:

kernel.core_pattern = /var/crash/core.%t.%p
kernel.panic=10
kernel.unknown_nmi_panic=1

Ausführen, sysctl -pnachdem Änderungen an der /etc/sysctl.confDatei vorgenommen wurden. Sie sollten wahrscheinlich auch, mkdir /var/crashwenn es noch nicht existiert.

Sie können das oben Gesagte testen, indem Sie mit dem SysRqSchlüssel einen manuellen Speicherauszug erstellen (die Tastenkombination für den Speicherauszugskern ist Alt+ SysRq+ C).


Dies scheint ein Anfang für etwas zu sein. Ich musste diese als neuen Eintrag in sysctl schreiben, da sie nicht in der Datei enthalten waren. Ich habe das Alt+SysRq+Cmit den Tasten gemacht, aber es hat nichts gemacht, es hat nur den Bildschirm geblitzt. Ich benutze auch einen Laptop, daher können die Tasten unterschiedlich sein. Ich habe es versucht, fn+SysRq+Caber das tat das gleiche wie zuvor.

Bitte teilen Sie die Ausgabe von "cat / proc / sys / kernel / sysrq". Möglicherweise ist sysrq auf Ihrem Computer deaktiviert. Weitere Informationen finden Sie unter: kernel.org/doc/Documentation/sysrq.txt
Shubham,

die Ausgabe davon gibt mir 176

Bearbeiten Sie die Datei /etc/sysctl.conf, um die Zeile -> kernel.sysrq = 1
shubham

1
@ user94959 Funktioniert es für Sie?
Shubham

2

Wenn der Kernel in Panik gerät, bedeutet dies, dass im Kernel ein Fehler aufgetreten ist. Zum Schreiben von Protokolldateien und Core-Dumps müssen die Treiber für das Blockspeichergerät (Ihre Festplatte) und das Dateisystem verwendet werden (Speicherplatz muss zugewiesen und die Größe der Protokolldatei aktualisiert werden). Angesichts der Tatsache, dass die vom Kernel bereitgestellten Dienste zum Schreiben von Dateien erforderlich sind und der Kernel weiß, dass er sich in einem fehlerhaften Zustand befindet, kann er die Dateien nicht schreiben oder irgendetwas protokollieren, da er sich nicht mehr in einem sicheren Zustand befindet Jeder Vorgang kann die Situation verschlimmern und Ihr Dateisystem beschädigen / zerstören. Sie können also nicht den Kernel in das Protokoll schreiben lassen oder einen Core-Dump sichern, wenn er in Panik gerät.

Wenn Sie möchten, können Sie das System jetzt mit einem Crash-Handling-Kernel konfigurieren. Hierbei handelt es sich um einen zweiten Kernel, der in den Speicher geladen wird und auf den die Steuerung übertragen werden kann, wenn der Hauptkernel abstürzt. Da dieser Kernel Treiber und dergleichen hat, kann er einen Absturzspeicherauszug für Sie speichern. Dies ist jedoch keine sehr häufige Einrichtung und wird hauptsächlich für High-End-Systeme verwendet, die eine hohe Verfügbarkeit erfordern und bei denen ein Absturz ein sehr ernstes Problem darstellt, das untersucht werden muss.

Siehe zum Beispiel die Crashkernel-Option unter Kernel Crash Dump auf ubuntu.com. (Beachten Sie, dass auf dieser Seite angegeben ist, dass der Kernel-Crash-Dump-Mechanismus ab Ubuntu 16.04 standardmäßig aktiviert ist.)

Ich glaube, dass das System den Speicherauszug tatsächlich auf einem reservierten Speicherplatz speichert und dann neu startet, und der Kernel den reservierten Speicher beim nächsten Start auf der Festplatte speichert (da sich der neu bootende Kernel in einem vernünftigen Zustand befindet und dies tun kann).


Die Seite auf ubuntu.com beschreibt den Mechanismus etwas anders: Sie besagt, dass der Kernel sich selbst in einem reservierten Speicherbereich neu startet, sodass der Speicher, den er vor der Unterbrechung verwendet hat (dh der Speicher, den Sie sichern möchten), erhalten bleibt intakt. Und ich glaube, dass es nicht so exotisch ist, wie Sie es klingen lassen (da es jetzt standardmäßig aktiviert ist).
G-Man sagt "Reinstate Monica"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.