Introducción al Kernel
En los repositorios de ELRepo para yum, se encuentran disponibles dos versiones del kernel: mainline (3.13.1) y long-term (3.10.90). Dada la mayor estabilidad y soporte prolongado de la versión long-term, se recomienda utilizar el paquete kernel-lt.
Proceso de Actualización
Importación de la clave pública
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
Instalación de ELRepo
rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
Instalación del kernel-lt 3.10.90
La abreviatura "lt" corresponde a "long-term". Se recomienda instalar esta versión por su mayor estabilidad. La dirección de descarga alternativa es: http://pan.baidu.com/s/1eQuJkcU.
yum --enablerepo=elrepo-kernel install kernel-lt -y
Alternativamente, puedes instalar kernel-ml (ml = mainline) con el siguiente comando:
yum --enablerepo=elrepo-kernel install kernel-ml -y
Modificación del orden de arranque
Antes de la modificación:
[root@servidor ~]# vim /etc/grub.conf
# grub.conf generado por anaconda
#
# Nota que no es necesario ejecutar grub después de modificar este archivo
# ADVERTENCIA: No tienes una partición /boot. Esto significa que
# todas las rutas del kernel y initrd son relativas a /, por ejemplo.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/xvda1
# initrd /boot/initrd-[generic-]version.img
#boot=/dev/xvda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-573.7.1.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-573.7.1.el6.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-2.6.32-573.7.1.el6.x86_64.img
title CentOS (2.6.32-431.23.3.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-431.23.3.el6.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-2.6.32-431.23.3.el6.x86_64.img
Después de la modificación:
[root@servidor ~]# vim /etc/grub.conf
# grub.conf generado por anaconda
#
# Nota que no es necesario ejecutar grub después de modificar este archivo
# ADVERTENCIA: No tienes una partición /boot. Esto significa que
# todas las rutas del kernel y initrd son relativas a /, por ejemplo.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/xvda1
# initrd /boot/initrd-[generic-]version.img
#boot=/dev/xvda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.90-1.el6.elrepo.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-3.10.90-1.el6.elrepo.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-3.10.90-1.el6.elrepo.x86_64.img
title CentOS (2.6.32-573.7.1.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-573.7.1.el6.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-2.6.32-573.7.1.el6.x86_64.img
title CentOS (2.6.32-431.23.3.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-431.23.3.el6.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-2.6.32-431.23.3.el6.x86_64.img
Antes de modificar, verifica la posición del nuevo kernel instalado y establece el valor de default (empezando desde 0). Generalmente, el kernel recién instalado ocupa la primera posición, por lo que se establece default=0.
Reiniciar para aplicar cambios
Versión del kernel antes de la actualización:
[root@servidor ~]# uname -a
Linux servidor 2.6.32-573.7.1.el6.x86_64 #1 SMP Tue Sep 22 22:00:00 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Versión del kernel después de la actualización:
[root@servidor ~]# uname -a
Linux servidor 3.10.90-1.el6.elrepo.x86_64 #1 SMP Thu Oct 1 15:15:53 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
Otras fuentes de descarga de kernels
http://mirrors.neterra.net/
Posibles Problemas
Si después de actualizar el kernel de CentOS no puedes especificar el kernel del sistema durante el arranque, el problema podría deberse a una falta de sincronización entre /etc/grub.conf y /boot/grub/grub.conf (este último es el archivo que realmente se utiliza). Para solucionarlo:
cp -rf /boot/grub/grub.conf /etc/grub.conf