Penguin

A general protection fault for your Kernel.

Normally caused when the kernel tries to address memory 0 and throws a NullPointerException, or can't find its root file system, or something like that. Means your system stops.

The idea is that if your kernel detects its in a bad state, it should stop doing anything, since theres no assurances that anything is correct anymore. It outputs information about whats going on that caused the problem just before it dies.

Occasionally the kernel will "oops" instead, an "Oops" means that it detected an error, but is trying to continue anyway. Oops are usually logged in syslog which will resolve all the symbols for you. If you get an Oops you should reboot as soon as possible.

You have to try pretty hard, or have dodgy hardware, to get a kernel panic.

How do you debug a kernel panic?

You write down all the numbers, and then feed them into ksymoops(8). ksymoops is pretty lenient about how you enter the data, but try and be exact with your formatting or you may confuse ksymoops.

Alternatively take the numbers in angle brackets and look them up manually in /proc/ksyms and System.map.


If you have a machine in a hard to reach place and are worried about it panic'ing (for whatever reason), try setting

/proc/sys/kernel/panic

to some non-zero number, then, (hopefully) after that number of seconds the machine will reboot, giving you an oppertunity to reconnect to it after it reboots remotely.

This can be done by editing

/etc/sysctl.conf

and adding the line

kernel.panic = 60

see sysctl(8) or proc(5) for more information


If you get a panic in the "swapper" then chances are it's dodgy ram (or other related hardware). a better indicator is if you get one in the interrupt handler.


CategoryKernel CategoryErrors