sábado, 16 de noviembre de 2013

Selección kernel por defecto inicio grub Debian

¿Alguna vez has necesitado seleccionar un nuevo kernel en el arranque de tu Debian y no estás frente a la máquina para poder seleccionar con los cursores en la pantalla de selección de kernels de grub? Pues durante la instalación de Proxmox yo lo he necesitado.

Es bastante simple, en primer lugar tenemos que ver cuál es el kernel que queremos iniciar. Con el comando "grep menuentry /boot/grub/grub.cfg" podemos ver los que tenemos disponibles en la pantalla de carga de grub.

En mi ejemplo aparecen dos kernel; 3.2.0 amd64 y 2.6.32 pve, con sus correspondientes "recovery mode"; si contamos tenemos 4 lineas.
root@debian:~# grep menuentry /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os {
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
menuentry 'Debian GNU/Linux, with Linux 2.6.32-26-pve' --class debian --class gnu-linux --class gnu --class os {
menuentry 'Debian GNU/Linux, with Linux 2.6.32-26-pve (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
Desde el fichero "/etc/default/grub" podemos modificar el parámetros "GRUB_DEFAULT=2" donde definiremos el kernel que queremos que se seleccione por defecto. Cuando abrimos el fichero por primera vez "GRUB_DEFAULT" tendrá valor "0", que corresponde con el primer kernel de la lista.

Por tanto el contador de kernel comienza a contar en "0"; si queremos seleccionar el kernel "Debian GNU/Linux, with Linux 2.6.32-26-pve" que está en la tercera linea, tendremos que darle valor "2".
Tras modificar el fichero únicamente nos queda refrescar la configuración de grub con el comando "update-grub". Ahora cuando reiniciemos nuestro sistema aparecerá la tercera opción seleccionada por defecto.
root@debian:~# update-grub
Tenemos que tener cuidado con futuras actualizaciones o instalaciones/desinstalaciones de kernels. Estas acciones modificarán el orden de nuestros kernels en el listado de carga y es muy probable que el valor de "GRUB_DEFAULT" no corresponda con el kernel que queremos iniciar.

En mi caso tras cargar el kernel "Debian GNU/Linux, with Linux 2.6.32-26-pve" voy a desinstalar "Debian GNU/Linux, with Linux 3.2.0-4-amd64" y ahora "2.6.32-26-pve" pasará a la primera posición de la lista. Es muy importante volver a poner el valor de "GRUB_DEFAULT=0" para que cargue correctamente.