Сегодня я выполнял некоторые вкусные обновления и требуемый, чтобы проверить, что все прошло прекрасный путем проверки, что у меня было новое ядро. К моему удивлению я заметил, что CentOS все еще работал 2.6.32-431.5.1.el6.x86_64 даже при том, что выглядело, как будто 2.6.32-431.23.3.el6 был установлен.
Действительно 2.6.32-431.23.3.el6 шоу в/etc/grub.conf, но не в новомодных параметрах загрузки. Какие-либо идеи, почему?
В журнале обновления это говорит:
---> 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, установлено по умолчанию в конфигурации grub (по умолчанию=0)
Вы проверили, что вы перезагрузили систему после обновления?
Убедитесь, что вы не включили прямую загрузку ядра для загрузки ядра с внешней виртуальной машины.
Прямая загрузка ядра 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 boot все виртуальные машины через прямую загрузку ядра, и в таких случаях обойтись невозможно.