CentOS 6.5 new Kernel not active after reboot

Solution 1:

Found the problem... Apparently CentOS 6 does not properly sync /etc/grub.conf with /boot/grub/grub.conf so /boot/grub/grub.conf which read during boot. Fixed with:

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

Solution 2:

You have to reboot Linux in order for a new kernel to become active.

If you notice, the newly-installed kernel, version 2.6.32-431.23.3.el6.x86_64, is set to be the default in the grub configuration (default=0)

Did you verify that you ran a system reboot following your updates?


  • Can you check the free space in /boot?
  • You can run a yum reinstall of the kernel packages just to ensure everything is installed properly.
  • If you DO reboot, see what shows up in the GRUB menu after the system POST sequence.

Solution 3:

Make sure you haven't enabled direct kernel boot to boot a kernel from outside the virtual machine.

Direct kernel boot in virt-manager

The direct kernel boot XML looks like:

  <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>

Some providers such as Digital Ocean boot all virtual machines via direct kernel boot, and there's no way around this in such cases.