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.log
etc ... aber nichts. Auch nicht in der .Xsession-errors
Datei.
Hier sind einige Fotos des Bildschirms:
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.
quelle
/var/crash
?.Xsession-errors
.Antworten:
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
:Ausführen,
sysctl -p
nachdem Änderungen an der/etc/sysctl.conf
Datei vorgenommen wurden. Sie sollten wahrscheinlich auch,mkdir /var/crash
wenn 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).
quelle
Alt+SysRq+C
mit 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+C
aber das tat das gleiche wie zuvor.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).
quelle