Kernel Panic non scarica file di registro


8

Stavo giocando a Steam e all'improvviso ho avuto il panico del kernel. Ho spento manualmente il computer e riavviato Linux Mint 17.1 (Cinnamon) a 64 bit, e sono andato a controllare i miei file di registro /var/log/, ma non sono riuscito a trovare riferimenti o tipi di messaggi relativi al panico del kernel che è accaduto.

È strano il motivo per cui non ha mai scaricato il core o nemmeno preso nota di esso nei file di registro. Come posso assicurarmi che un core venga sempre scaricato nel caso in cui si verifichi nuovamente il panico del kernel? Non ha senso il motivo per cui non è stato registrato nulla quando si è verificato un panico nel kernel. Guardando in giro su Google, persone suggeriscono di leggere /var/log/dmesg, /var/log/syslog, /var/log/kern.log, /var/log/Xorg.logecc ... ma niente. Nemmeno nel .Xsession-errorsfile neanche.

Ecco alcune fotografie dello schermo:
Kernel Panic (image2) Kernel Panic (immagine1)

Potrei sempre fare una foto allo schermo quando e se dovesse succedere di nuovo, ma voglio solo assicurarmi di riuscire a scaricare il core e creare un file di registro nel panico del kernel.


1
hai controllato /var/crash?
Archemar,

@Archemar Nessun file o directory.

È altamente improbabile che troverai mai informazioni su un errore del kernel in .Xsession-errors.
G-Man dice "Ripristina Monica"

Risposte:


6

Per essere sicuri che il tuo computer generi un file "core" quando si verifica un errore del kernel, devi confermare le impostazioni "sysctl" del tuo computer.

IMO, le seguenti dovrebbero essere le impostazioni (minime) in /etc/sysctl.conf:

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

Eseguire sysctl -pdopo aver apportato modifiche al /etc/sysctl.conffile. Probabilmente dovresti anche mkdir /var/crashse non esiste già.

Puoi testare quanto sopra generando un dump manuale usando il SysRqtasto (la combinazione di tasti per scaricare il core è Alt+ SysRq+ C).


Questo sembra essere l'inizio di qualcosa. Ho dovuto scrivere questi come nuova voce in sysctl poiché non era presente nel file. L'ho fatto Alt+SysRq+Ccon i tasti ma non ha fatto nulla, ha solo fatto lampeggiare lo schermo. Sto anche usando il laptop, quindi i tasti potrebbero essere diversi. Ci ho provato, fn+SysRq+Cma ha fatto lo stesso di prima.

Si prega di condividere l'output di "cat / proc / sys / kernel / sysrq". Potrebbe essere possibile che sysrq sia disabilitato sul tuo computer. Consultare: kernel.org/doc/Documentation/sysrq.txt per maggiori dettagli
shubham

l'output di questo mi dà 176

Modifica il file /etc/sysctl.conf per includere la riga -> kernel.sysrq = 1
shubham

1
@ user94959 Funziona per te?
Shubham,

2

Quando il kernel va nel panico, significa che qualcosa è andato storto nel kernel. La scrittura di file di registro e core dump richiede l'utilizzo dei driver per il dispositivo di archiviazione a blocchi (il disco) e il filesystem (lo spazio deve essere allocato e la dimensione del file di registro deve essere aggiornata). Dato che i servizi forniti dal kernel sono necessari per scrivere i file e il kernel sa che è in uno stato interrotto, non può scrivere i file o registrare nulla, perché non è più in uno stato sicuro, quindi qualsiasi operazione potrebbe peggiorare le cose e potrebbe danneggiare / distruggere il tuo filesystem. Quindi non è possibile fare in modo che il kernel scriva nel registro e non esegua il dump di un dump principale quando si fa prendere dal panico.

Ora, ciò che si può fare, se si desidera, è configurare il sistema con un kernel di gestione degli arresti anomali, che è un secondo kernel caricato in memoria a cui è possibile trasferire il controllo in caso di crash del kernel principale. Dal momento che quel kernel ha driver e simili, sarebbe in grado di salvare un dump di arresto anomalo per te. Questa non è una configurazione molto comune, tuttavia, e utilizzata principalmente per i sistemi di fascia alta che richiedono elevata disponibilità e in cui un arresto anomalo è un problema molto grave che deve essere esaminato.

Vedi ad esempio l'opzione crashkernel su Kernel Crash Dump su ubuntu.com. (Nota che questa pagina dice che il meccanismo di crash dump del kernel è abilitato di default, a partire da Ubuntu 16.04.)

Credo che il sistema in realtà salvi il dump su un pezzo di memoria riservato e quindi si riavvii, e il kernel salva la memoria riservata sul disco al prossimo avvio (poiché il kernel appena avviato è in uno stato sano e può farlo).


La pagina su ubuntu.com descrive il meccanismo in modo leggermente diverso: dice che il kernel si riavvia in un'area riservata della memoria, quindi la memoria che aveva usato prima dell'interruzione (cioè la memoria che si desidera scaricare) rimarrà intatto. E credo che non sia così esotico come lo fai sembrare (come è ora abilitato per impostazione predefinita).
G-Man dice "Ripristina Monica"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.