Per essere sicuro che la tua macchina generi un file "core" quando si verifica un errore del kernel, dovresti confermare le impostazioni "sysctl" della tua macchina.
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
Esegui sysctl -p
dopo aver apportato modifiche al /etc/sysctl.conf
file. Probabilmente dovresti anche mkdir /var/crash
se non esiste già.
Puoi testare quanto sopra generando un dump manuale usando SysRq key (la combinazione di tasti per scaricare core è Alt +SysRq +C ).
Quando il kernel va in 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 tuo disco) e il filesystem (lo spazio deve essere allocato e la dimensione del file di registro deve essere aggiornata). Dato che quei servizi forniti dal kernel sono richiesti per scrivere file, e il kernel sa di essere in uno stato non funzionante, non può scrivere i file o registrare nulla, perché non è più in uno stato sicuro, così facendo qualsiasi operazione potrebbe peggiorare le cose e potrebbe danneggiare/distruggere il tuo filesystem. Quindi non puoi fare in modo che il kernel scriva nel log né esegui il dump di un core dump quando va in panico.
Ora quello che puoi fare, se vuoi, è configurare il sistema con un kernel per la gestione dei crash, che è un secondo kernel caricato in memoria a cui può essere trasferito il controllo se il kernel principale va in crash. Poiché quel kernel ha driver e simili, sarebbe in grado di salvare un crash dump per te. Questa non è una configurazione molto comune, tuttavia, e viene utilizzata principalmente per sistemi di fascia alta che richiedono un'elevata disponibilità e in cui un arresto anomalo è un problema molto serio 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 per impostazione predefinita, a partire da Ubuntu 16.04.)
Credo che il sistema in realtà salvi il dump in un pezzo di memoria riservato e poi si riavvii, e il kernel salva la memoria riservata su disco all'avvio successivo (poiché il kernel appena avviato è in uno stato sano e può farlo).