先介绍两个术语:
a)Standard(production)kernel
:正常使用的kernel
;
b)Crash(capture)kernel
:用来收集crash dump
的kernel
。
Kdump
有两个重要的组件:Kdump
和Kexec
:
a)Kexec
:
是一种fastboot mechanism
。Kexec
允许不通过BIOS
,而是从运行的kernel
中启动另一个kernel
,这样做速度很快,可以节省大量时间。
b)Kdump
:
是一种新的,可靠的crash dumping mechanism
。Crash dump
是从新启动的kernel
中去捕获,而不是从已经crashed kernel
中。当系统crash
后,Kdump
使用Kexec
启动第二个kernel
(Crash kernel
),而第一个kernel
(Standard kernel
)会保留一部分内存供第二个kernel
使用。由于Kexec
没有通过BIOS
启动第二个kernel
,因此第一个kernel
的内存得到保护,也就是最终的kernel crash dump
。
参考资料:
Linux Kernel Crash Book。