CentOS 6.5新内核重新启动后无法使用

今天我正在运行一些yum更新,并想确认一切正常,确保我有一个新的内核。 令我惊讶的是,我注意到CentOS仍在运行2.6.32-431.5.1.el6.x86_64,尽pipe它看起来好像安装了2.6.32-431.23.3.el6。

事实上,2.6.32-431.23.3.el6在/etc/grub.conf中显示,但在upstart启动选项中没有。 任何想法为什么?

在更新日志中说:

---> Package kernel-firmware.noarch 0:2.6.32-431.5.1.el6 will be updated ---> Package kernel-firmware.noarch 0:2.6.32-431.23.3.el6 will be an update 

这可能是原因吗? “将是更新”是什么意思?

我的/etc/grub.conf:

 # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup00-root # initrd /initrd-[generic-]version.img #boot=/dev/vda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu password --encrypted $1$auui(i$sODM4ni/Zts9IlMWu.wWF/ title CentOS (2.6.32-431.23.3.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.23.3.el6.x86_64 ro root=/dev/mapper/VolGroup00-root rd_NO_LUKS LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=sv-latin1 rd_NO_MD rd_LVM_LV=VolGroup00/swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup00/root rd_NO_DM rhgb quiet rhgb quiet audit=1 initrd /initramfs-2.6.32-431.23.3.el6.x86_64.img title CentOS (2.6.32-431.5.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.5.1.el6.x86_64 ro root=/dev/mapper/VolGroup00-root rd_NO_LUKS LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=sv-latin1 rd_NO_MD rd_LVM_LV=VolGroup00/swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup00/root rd_NO_DM rhgb quiet rhgb quiet audit=1 initrd /initramfs-2.6.32-431.5.1.el6.x86_64.img title CentOS (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup00-root rd_NO_LUKS LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=sv-latin1 rd_NO_MD rd_LVM_LV=VolGroup00/swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup00/root rd_NO_DM rhgb quiet rhgb quiet audit=1 initrd /initramfs-2.6.32-431.el6.x86_64.img 

发现问题…显然,CentOS 6没有正确地将/etc/grub.conf与/boot/grub/grub.conf同步,所以在启动时读取了/boot/grub/grub.conf。 修正了:

 rm /boot/grub/grub.conf mv /etc/grub.conf /boot/grub/ ln -s /boot/grub/grub.conf /etc/grub.conf 

您必须重新启动Linux才能使新内核激活。

如果你注意到,新安装的内核版本2.6.32-431.23.3.el6.x86_64被设置为grubconfiguration中的默认值(default = 0)

你是否确认你在更新后运行了系统重启?


  • 你能检查/ boot中的可用空间吗?
  • 你可以运行一个yum重新安装内核包,只是为了确保一切安装正确。
  • 如果您重新启动,请查看系统POST顺序之后在GRUB菜单中显示的内容。

确保你没有启用直接内核启动来从虚拟机外部启动内核。

在virt-manager中直接启动内核

直接的内核启动XML如下所示:

  <os> <kernel>/var/lib/libvirt/images/vmlinuz-3.15.8-200.fc20.armv7hl</kernel> <initrd>/var/lib/libvirt/images/initramfs-3.15.8-200.fc20.armv7hl.img</initrd> <cmdline>console=ttyAMA0,115200n8 rw root=/dev/mapper/armv9-root rootwait</cmdline> <dtb>/var/lib/libvirt/images/vexpress-v2p-ca9.dtb</dtb> </os> 

一些提供商如Digital Ocean通过直接内核启动引导所有的虚拟机,在这种情况下没有办法解决这个问题。