在VMware中新安裝了CentOs 6.6,重啟系統發現kdump服務啟動失敗
先來說一下,什么是kdump
kdump 是一種先進的基於 kexec 的內核崩潰轉儲機制。當系統崩潰時,kdump 使用 kexec 啟動
到第二個內核。第二個內核通常叫做捕獲內核,以很小內存啟動以捕獲轉儲鏡像。第一個內核保
留了內存的一部分給第二內核啟動用。由於 kdump 利用 kexec 啟動捕獲內核,繞過了 BIOS,所
以第一個內核的內存得以保留。這是內核崩潰轉儲的本質。
啟動失敗的原因
查看 /etc/grub.conf文件
發現crashkernel=auto,
系統對crashkernel=auto的定義為:
如果系統的內存 <= 8 GB 對kdump kernel不會保留任何內容;也就是說,crashkernel=auto 等
於關掉了機器上的kdump功能;
如果系統的內存> 8 GB 但是<= 16 GB,crashkernel=auto會保留256M,等同於crashkernel=256M;
如果系統內存> 16GB, crashkernel=auto會保留512M, 等同於crashkernel=512M
安裝虛擬機時,給虛擬機設置的內存為1G,所以說系統關掉了kdump。
找到了原因,重新給crashkernel設置參數即可:
在 kdump 的配置中,往往困惑於 crashkernel 的設置。“crashkernel=X@Y”,X 應該多大? Y
又應該設在哪里呢?實際我們 可以完全省略“@Y”這一部分,這樣,kernel 會為我們自動選擇
一個起始地址。而對於 X 的大小,般對 i386/x86_64 的系統, 設為 128M 即可;對於 powerpc
的系統,則要設為 256M。
將crashkernel=auto 改為crashkernel=128M 后保存,
重新啟動系統,kdump服務啟動成功。