在裝centos的測試機的時候,出現了一個在使用Ubuntu時沒有碰到過的東西,就是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服務啓動成功.