Ocultar totalmente Grub al arrancar en sistemas Linux

Hace poco he tenido que poner en marcha un PC industrial con un linux y necesitamos optimizar el arranque lo máximo posible puesto que va a ser un sistema de tiempo real.

Este PC llevaba instalado lubuntu con GRUB activado y una vez pasado GRUB el PC iniciaba en un tiempo bastante reducido (menos de 10 segundos) así que lo que había que hacer era ocultar GRUB al arranque para poder conseguir menor tiempo de arranque, quitarlo es realmente sencillo, ya sea mediante fichero de configuración o mediante algún programa especializado en ello.

El problema apareció cuando en determinadas pruebas de rendimiento (en donde cortabamos la corriente varias veces) GRUB seguía apareciendo y no solo eso, sino que esta vez no había un temporizador de modo que si pasan X segundos GRUB elige la entrada por defecto, es decir, GRUB no desaparecia si no era por la acción humana en estas determinadas ocasiones.

Esto solía ocurrir cuando se cortaba la corriente justo después de que apareciese la BIOS pero antes de que cargase el Sistema Operativo.

La explicación a esto es que cuando el sistema se apaga incorrectamente se activa un bit en GRUb llamado recordfail que hace que si el sistema se apaga incorrectamente se muestre GRUB y sea necesaria la acción humana para pasar de GRUB (esto lo descubrí ojeando los script de GRUB).

Estuve buscando programas que modificasen ese bit pero creo que no hubo ninguno que sirviese para tal fin. Así que lo que hice inicialmente fue modificar los script de inicio de GRUB para borrar cualquier mención a ese bit. Pero posteriormente encontré las opciones especificas para poder modificarlo desde un fichero de configuración. Para ello hay que modificar el fichero /etc/default/grub y que la primera parte coincida con:

La opción para deshabilitar el recordfail es GRUB_RECORDFAIL_TIMEOUT="0"

Después de modificar este fichero hay que ejecutar el comando:

update-grub