Cambiar el kernel por defecto en CentOS y RHEL 7

La primera regla de oro en estos casos suele ser no editar nunca manualmente los archivos de configuración del filesystem de arranque /boot. CentOS y RHEL 7 utilizan el gestor de arranque grub2, por lo que cualquier cambio que se quiera hacer a mano, se debe hacer en /etc/default/grub.

En el caso de elegir el kernel con el que el sistema arrancará por defecto (preselección automática en el menu de grub2), no es necesario editar ningún fichero, sino que es suficiente saber el identificador numérico de orden de cada kernel y utilizar el comando grub2-set-default.

Para localizar todas las entradas de kernel disponibles en grub2, extraemos la información del archivo de configuración /etc/grub2.cfg. No hace falta buscarlo a mano, el siguiente comando los sacará automáticamente:

# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : Fedora (4.17.18-200.fc28.x86_64) 28 (Twenty Eight)
1 : Fedora (4.16.3-301.fc28.x86_64) 28 (Twenty Eight)
2 : Fedora (0-rescue-7f858880a5824295acba2871d627f4b2) 28 (Twenty Eight)

Para ver el kernel que está guardado actualmente como por defecto:

# grep GRUB_DEFAULT  /etc/default/grub
GRUB_DEFAULT=saved

Si lo marca como saved, lo vamos a buscar a:

# grub2-editenv list
saved_entry=Fedora (4.17.18-200.fc28.x86_64) 28 (Twenty Eight)

Como podéis observar, ya tenemos el ID de cada kernel, así que basta con definir el nuevo kernel por defecto del siguiente modo, vamos a poner el kernel con ID 1:

# grub2-set-default 1
# grub2-editenv list
saved_entry=1

En el próximo reinicio, el sistema arrancará con el kernel 4.16.3-301.fc28.x86_64