某天掛載了一個新硬盤后系羞,我的centos7系統(tǒng)第二天就出現(xiàn)了崩潰現(xiàn)象,報錯如題“failed to start crash recovery kernel arming”.
意思大致為“內(nèi)存崩潰捕獲機制未能成功啟動”,一搜才知道這是因為一個叫做kdump的服務無法啟動導致的晶姊。
那么什么是kdump呢童番?
kdump 是一種先進的基于 kexec 的內(nèi)核崩潰轉(zhuǎn)儲機制。當系統(tǒng)崩潰時恕齐,kdump 使用 kexec 啟動到第二個內(nèi)核乞娄。第二個內(nèi)核通常叫做捕獲內(nèi)核,以很小內(nèi)存啟動以捕獲轉(zhuǎn)儲鏡像。第一個內(nèi)核保留了內(nèi)存的一部分給第二內(nèi)核啟動用仪或。由于 kdump 利用 kexec 啟動捕獲內(nèi)核确镊,繞過了 BIOS,所以第一個內(nèi)核的內(nèi)存得以保留范删。這是內(nèi)核崩潰轉(zhuǎn)儲的本質(zhì)蕾域。詳細的在:http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/index.html#major3
那接下來查找失敗的原因:
看到一個博文中說與啟動文件配置有關
查看/etc/grub.conf 文件,發(fā)現(xiàn)crashkernel=auto到旦,
系統(tǒng)對crashkernel=auto的定義為:
如果系統(tǒng)的內(nèi)存 <= 8 GB 對kdump kernel不會保留任何內(nèi)容束铭;也就是說,crashkernel=auto 等
于關掉了機器上的kdump功能厢绝;
如果系統(tǒng)的內(nèi)存> 8 GB但是<= 16 GB契沫,crashkernel=auto會保留256M,等同于crashkernel=256M昔汉;
如果系統(tǒng)內(nèi)存> 16GB懈万, crashkernel=auto會保留512M, 等同于crashkernel=512M
安裝虛擬機時靶病,給虛擬機設置的內(nèi)存為1G会通,所以說系統(tǒng)關掉了kdump。
接下來就是改寫配置娄周,但是沒能在系統(tǒng)中找到博文中所說的/etc/grub.conf這個文件涕侈,后來想到從Centos 7之后啟動就采用grub2 了,所以vi /etc/grub2.cfg把其中的crashkernel=auto改成crashkernel=256M重啟就成功了煤辨。