Cómo personalizar la apariencia de GRUB2

Publicado el 14 diciembre 2016 por Drassill
En el día de hoy quiero traeros algo que si bien no se puede considerar como algo "útil" o "práctico", sin duda puede ser calificado como interesante; especialmente para aquellos amantes de la personalización de sus entornos GNU Linux. A muchos les gusta darle un toque único a su escritorio con el fin de que sea todo un espectáculo a nivel visual; cosa que está muy bien, pero que puede llevarse un paso más allá personalizando la apariencia de GRUB2.

Está personalización es bastante sencilla, más aún cuando se está familiarizado con algunos aspectos del GRUB2, pero sí que conviene tener algunos puntos claros para evitar andar realizando configuraciones a base de "prueba y error".  El primero de todos, sería tener claro donde y cómo realizar la configuración en cuestión... Aquí dependiendo del sistema operativo que se esté usando, el fichero de configuración puede variar, pero lo mejor sería crear uno personalizado que, hasta el momento, jamás me ha dado problemas, al menos en Debian y en Ubuntu. El fichero de configuración se llamaría custom.cfg y lo crearíamos como root dentro del directorio /boot/grub.
En este fichero podríamos añadir cualquiera de los siguientes cuatro parámetros:
  • set color_nomal: Este parámetro especificaría el color de las letras que se encuentran fuera del menú de opciones del GRUB2. Es decir que colorearía el título y el texto que rodea el recuadro de selección de sistema operativo.
  • set color_highlight: Este parámetro especifica el color de las letras que se encuentren resaltadas debido a que han sido seleccionadas. Este parámetro no incluye la opción seleccionada dentro del menú de selección de sistema operativo.
  • set menu_color_nomal: Aquí seleccionaríamos los colores del texto del menú de selección de sistema operativo. Estos colores únicamente afectarían a las líneas no seleccionadas del menú.
  • set menu_color_highlight: Está opción sería la inversa a la anterior, es decir que afectaría únicamente al elemento seleccionado en el menú.

Obviamente tendríamos que saber qué valores asignar a estos parámetros; valores que son realmente simples, pues siempre tendrán la misma estructura: Parámetro=fgcolor/bgcolor. Fgcolor haría referencia al "foreground color", es decir al color de las letras, mientras que bgcolor haría referencia al "background" color que sería el color que aparecería detrás de las letras. Ahora la pregunta sería muy obvia: ¿Qué colores podemos usar? Obviamente no podemos usar cualquier color, sino uno de los que GRUB2 nos permite introducir. Los colores disponibles serían:

Aquí habría que hacer un pequeño inciso, que sería que el color negro (black) es especial, ya que especificamos dicho color como bgcolor (background color), éste sería transparente y no negro. Siguiendo estas indicaciones, podríamos rellenar el fichero custom.cfg tal que así:
  1. set menu_color_highlight=green/black
  2. set menu_color_normal=blue/black
  3. set color_normal=cyan/black

Con esta configuración guardada únicamente habría que actualizar la configuración del GRUB2, lo que sería tan sencillo como escribir el comando:
update-grub
Con este cambio y reiniciando el sistema, lograríamos cambiar los colores de los diferentes elementos del GRUB2, exceptuando del fondo de pantalla que se mantendría igual, tal y como podemos ver a continuación.

Si esto no nos bastase y quisiéramos también personalizar el fondo de pantalla del gestor de arranque, podemos hacerlo de dos formas. La primera sería usando una imagen a nuestro gusto que cumpliese los siguientes requisitos, que, si bien pueden parecer sencillos, hay que tenerlos presentes:
  • Tienen que estar en formato JPG,PNG o TGA.
  • Tienen que ser de 8 bits (256 colores).
  • La imagen tiene que ser RGB.

La mejor forma de asegurarnos de ello sería usando la herramienta GIMP, ya que nos da la libertad suficiente sobre las imágenes como para controlar estos puntos. Si en cambio preferimos optar por la alternativa más cómoda, podemos instalarnos el paquete grub2-splashimages, que nos descarga una serie de imágenes TGA que cumplen todos los requisitos, aunque obviamente esta "galería" sería limitada y no tiene que tener imágenes que sean 100% de nuestro gusto. Al ser un paquete integrado en los repositorios oficiales podemos hacer:
apt-get install grub2-splashimages
A sabiendas de la imagen que queremos usar, pasaríamos a personalizar el fondo de GRUB2, para lo cual habría que editar el fichero /etc/default/grub y añadirle una línea con la estructura:
GRUB_BACKGROUND="ruta_imagen"
En mi caso por ejemplo sería:
GRUB_BACKGROUND="/home/ivan/tux_bytelearning.png"
Con esta línea añadida guardaríamos los cambios y, una vez más, los aplicaríamos mediante el comando update-grub, de nuevo. Ahora únicamente tendríamos que reiniciar el sistema y podríamos disponer de un gestor de arranque completamente personalizado como el de a continuación:

Como veis, la personalización del GRUB2 no es especialmente complicada. Simplemente requiere de manejar unos pocos pequeños y de algo de tiempo en caso de querer poner un fondo completamente personalizado, lo cual con herramientas como GIMP no es especialmente complicado aún sin conocimientos sobre esta herramienta.
Espero que os haya resultado útil.
Saludos.