Reiniciar solo una vez con otra entrada en GRUB
Thursday, 15 de January de 2009 por marcos
Generalmente cuando uno actualiza el kernel del sistema una muy buena idea es probar que el nuevo kernel tiene todos los modulos necesarios, y sobre todo, funciona como esperamos que lo haga.
Para ello instalamos la nueva versión del kernel, la seteamos como opción por defecto y reiniciamos la máquina. En caso de que algo no funcione como debe, reiniciamos y elegimos manualmente la versión anterior desde el gestor de arranque.
Todo muy lindo si tenemos la maquina a nuestros pies, pero cuando la actualización se llevo a cabo en un servidor remoto no es tan sencillo, ya que no tenemos acceso al gestor de arranque para elegir otra opción.
En esos casos lo mejor que podemos hacer es dejar configurado como opción por defecto algún kernel que sepamos funciona bien y configuramos el GRUB para que se inicie solo una vez con el kernel nuevo. En caso de que todo funcione bien podemos configurar el gestor para hacer permanente nuestra elección del nuevo kernel, pero si falla basta con llamar al nuestro proveedor de servicios para solicitar un reinicio del servidor y acto seguido estamos nuevamente corriendo con el kernel que sabemos funciona bien.
En grub esto se hace con las opciones default saved en la sección general, savedefault en la sección del kernel probado y savedefault #kernelprobado en la sección del kernel nuevo.
Por ejemplo, si nuestro grub luego de la actualización se ve así:
lo modificamos de la siguiente manera:
La clave es que el kernel probado tenga savedefault y el kernel nuevo tenga savedefault 1 siendo 1 el numero del kernel probado.
El efecto de esto es que se iniciará solo una vez el kernel nuevo y podamos volver al viejo con solo pedir un reinicio del servidor. Si luego de que arrancó y se ha probado a discreción el nuevo kernel estamos conformes, simplemente eliminamos el 1 en la sección del kernel nuevo, con lo que cuando arranque quedara como opción por defecto.
Ah, me olvidaba, pero como estamos hablando de servidores remotos, los más atentos dirán: muy lindo, muy lindo, pero ¿como le digo a grub que arranque la próxima vez con el kernel nuevo?
Fácil:
grub-set-default 0
Siendo 0 el kernel a probar.
Update:
En algunos sistemas el comando grub-set-default no se encuentra disponible, en esos casos tenemos que acceder a la consola de grub y usar el comando
savedefault –default=0 –once
y despues
reboot
esto logra el mismo resultado. Después ya estamos listos para el reinicio del servidor.
jojojo marcos, siempre con aportes interesantisimos!