About Taringa!

Popular channels

Como ocultar el menu grub 2

Bueno como todos los linuxeros ya sabemos en el grub 2 se crearon entradas un poco extrañas las cuales esta el grub.cfg, el cual en teoria ya no era editable puesto que solo tiene opciones de lectura inclusive para el root, ahora se supone que todo se tenia que crear en las entradas de configuracion, las cuales volcarian su contenido en el archivo grub.cfg

La cuestion estaba en que ahora en el archivo /etc/default/grub donde se encuentran las variables que controlaban el tiempo que se muestra en el grub en pantalla y cosas por el estilo tambien deberia de albergar (o al menos al parecer en las primeras prresentaciones de este grub si lo hacia) la variable:

1 | HIDDENMENU = True

Pero lamentablemente no se encontraba, por lo que en muchos sitios se proponia agregar esa variable y crear la entrada /etc/grub.d/03_hiddenmenu, en donde teoricamente se tendria que agregar el siguiente codigo:


01 |
"text-align: justify;">if [ "x${GRUB_HIDDENMENU}" = "xtrue" ]; then
cat << EOF
02 |
"text-align: justify;">to enter the menu... "
03 | if sleep --verbos
echo -n "Press ES
04 | Ce --interruptible ${GRUB_TIMEOUT} ; then
05 |
"text-align: justify;">eout=-1
06 | fi
07 | EOF
08 | fi
09 |
set timeout=${GRUB_TIMEOUT}
10 | else
11 | set ti
12 |
"text-align: justify;">m



Una vez realizado lo anterior, teóricamente tendríamos que actualizar el grub, ya que creamos una nueva entrada 03_hiddenmenu, por lo que usamos:

1 | update-grub2

Despues de hacer las modificaciones pertinentes en la entrada /etc/default/grub respecto al tiempo en donde tenemos:

1 | GRUB_HIDDEN_TIMEOUT=3
2 | GRUB_HIDDEN_TIMEOUT_QUIET=true
3 | GRUB_TIMEOUT="10"

en donde GRUB_HIDDEN_TIMEOUT_QUIET=True es la feliz opcion que nos da la posibilidad de ocultar el GRUB, para lo cual vemos GRUB_HIDDEN_TIMEOUT, que nos da la posibilidad de asignar el tiempo en segundos que el GRUB permanecera oculto, y en caso de presionar la tecla ESC, el menu del GRUB aparecera el tiempo que determine la variable GRUB_TIMEOUT. Hasta aqui todo parece bien y sin ningun problema, pero , al momento de ver los resultados de como quedo el grub al encender la PC, notamos que efectivamente si oculta el GRUB, pero que solo lo hace una vez, es decir, la siguiente vez que se inicia la PC el Grub vuelve a aparecer, lo cual es frustrante.

Despues de estar indagando en diversos foros, encontre esta curiosa nota:

Note to multiple-OS users: If GRUB 2's os-prober identifies additional operating systems while running the /etc/grub.d/30_os-prober script the hidden menu timeout feature is disabled by conditional statements. This also disables the ability to use the SHIFT key to display the menu during boot. Users with multiple operating systems wishing to hide the menu can find script edits on various forums which will allow them to add a hidden timeout feature to the boot sequence (for example: ubuntuforums).

Esta nota hizo que mi odio guardado contra quienes diseñaron el GRUB 2 se incrementara hasta niveles insospechados, ya que aparentemente cuando GRUB detecta que existen instalados mas de un sistema operativo instalado elimina las modificaciones hechas a las variables GRUB_HIDDEN_TIMEOUT_QUIE y GRUB_HIDDEN_TIMEOUT en el archivo /etc/default/grub, comentadas arriba, quiza para evitar que el usuario ppierda de alguna forma el acceso a sus SO si realiza una modificacion inadecuada.

Pues bien cuando parecia que todo seria frustracion, al leer una cuantas entradas mas del foro donde encontre esta nota, resulta que un usuario llamado syntesys, descubrio la forma de eliminar esta especie de restriccion, esta solucion, consistia en editar la entrada /etc/grub.d/30_os_prober y buscar l asiguiente linea (que esta en la linea 28):

1 | if [ "x${found_other_os}" = "x" ] ; then

La cual simplemente hay que comentar, de tal forma que quedara:

1 | # if [ "x${found_other_os}" = "x" ] ; then

Ahora hay que dirigirnos a la linea 68 donde encontraremos el cierre de la condicion IF que inicia en la linea anteriormente mencionada:

1 | if

De tal forma que también la tenemos que comentar:

1 | # fi

Lo que se esta haciendo es basicamente deshabilitar la condicion en la que GRUB detecta si existe mas de un sistema operativo, por lo que en caso de que asi sea, realiza las acciones pertinentes a descativarlo; de esta forma la comprobacion se deshabilita y ahora si es posible ocultar el grub.

Este es un tema que se ha abordado en diferentes foros, tanto de Ubuntu, Debian, Arch, entre otras particularmente este foro es de Slackware, con lo cual vemos que es un "problema global" por asi decirlo en el mundo de linux, el cual esta en muchos de estos foros sin resolver y que la mayoria tiene mucho tiempo de haberse planteado, cabe destacar que esta respuesta que encontre no tiene ni 2 semanas a esta fecha de haberse posteado.
2Comments