在VMware中安裝了centos,重啟時報錯:Failed to start Crash recovery kernel arming
本質是kdump服務啟動失敗
先來說一下,什么是kdump
Kdump是一個內核崩潰轉儲機制,在系統崩潰的時候,Kdump將捕獲系統信息,這對於針對崩潰的原因非常有幫助。注意,Kdump需要預留一部分系統內存,而且這部分內存對於其他用戶是不可用的。
啟動失敗的原因
查看 /etc/grub.conf文件,發現crashkernel=auto,問題就出在這兒:
注:centos7后為:vi /etc/grub2.cfg
系統對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功能,造成了kdump服務啟動失敗。
找到了原因,重新給crashkernel設置參數即可:
在 kdump 的配置中,往往困惑於 crashkernel 的設置。“crashkernel=X@Y”,X 應該多大? Y
又應該設在哪里呢?實際我們可以完全省略“@Y”這一部分,這樣,kernel 會為我們自動選擇
一個起始地址。而對於 X 的大小,般對 i386/x86_64 的系統, 設為 128M 即可;對於 powerpc
的系統,則要設為 256M。
將crashkernel=auto 改為crashkernel=128M 后保存,如果還不能解決問題,改為256m試試
重新啟動系統,kdump服務啟動成功。