CONFIGURAR GRUB2 2 SIN TANTAS BRONCAS
guia para configurar grub2 en ubuntu 12.04 sin entrar y modificar el archivo grub.cfg y alterar cosas que no sabemos bien garcias al Grub Customizer
- añadir una imagen de fondo a la pantalla del Grub,
- cambiar los colores de la fuente del menú del Grub
- cambiar las resoluciones en el menú de Grub
Grub Customizer
Existen aplicaciones gráficas como “Grub Customizer”, que facilita todo esto. Se instala con:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer
Si vais a añadir una imagen, mirad en el apartado de añadir imagen de fondo de forma manual, los formatos de imagen que se pueden añadir.
Nota: En el Foro se han reportado varios problemas al usar Grub Customizer. Mucho ojo con el cambio de resolución.
Consejo: No mezcléis métodos. Utilizar Grub Customizer y la forma manual, al mismo tiempo, puede traer problemas.
Personalmente, siempre preferí hacerlo de forma manual, editando archivos y vamos a ver como hacerlo:
Forma manual, editando archivos
Ubuntu 12.04 trae el gestor de arranque Grub2 versión 1.99-xx y la forma de modificar su apariencia ha cambiado sustancialmente, por lo que siempre lo primero que tenemos que hacer es averiguar qué versión del grub tenemos, para aplicar una guía u otra. Para ello ejecutamos en una terminal el comando:
grub-install -v
Nos responderá algo parecido a:
grub-install (GRUB) 1.99-21ubuntu3.1
Si como en el ejemplo, la versión es 1.99-21 (los 2 últimos números pueden variar), esta es tu guía. Si fuera 1.98-xx, miramos esta guía y si fuera 1.97-xx, miramos esta otra
Una vez que sabemos que la versión del Grub que tenemos es la 1.99-xx, seguimos para adelante:
Hacer copia de seguridad de los archivos que vamos a editar. Estamos jugando con el arranque del sistema y podemos borrar algo por accidente. Más vale remediar que curar.
Añadir una imagen de fondo a la pantalla del grub
Imágenes soportadas por el grub:
Esta versión soporta imágenes en formato: .png, .tga y .jpg. Las únicas restricciónes son:
- Para las .jpg es que deben de ser de 8bit (256 colores)
- La imagen (los 3 formatos), debe de ser no indexada, RGBA
Personalmente, recomiendo el formato .tga y una resolución de 640×480, aunque puede variar, según la máquina (ver consejos para la resolución al final).
Podemos crearla con Gimp. Por ejemplo para convertir una imagen .jpg cualquiera en .tga, la abrimos con Gimp, vamos al menú “Imagen > Escalar imagen” y le ponemos una resolución de 640×480. Vamos al menú “Archivo > Guardar como …”
También existe un paquete instalable que nos proporciona unas cuantas imágenes de fondo para el Grub2 y si queremos lo podemos instalar con:
sudo apt-get install grub2-splashimages
Esto nos creará una carpeta donde se almacenan las imágenes (con formato .tga): /usr/share/images/grub
Nota: No confundir e instalar el paquete “grub-splashimages”, que fue diseñado para Grub 0.97 y no es compatible con Grub2″
Existen 2 métodos válidos para añadir una imagen al fondo del Grub:
1 – Editando el archivo “/etc/default/grub” con:
sudo gedit /etc/default/grub
Y añadir al final del archivo la siguiente línea:
GRUBBACKGROUND="/ruta/nombre-imagen.tga"
Donde deberemos de cambiar lo que esá en rojo por la ruta donde está la imagen y su nombre. Por ejemplo:
Si utilizamos una de las imágenes del paquete “grub2-splashimages”, sería:
GRUB
BACKGROUND="/usr/share/images/grub/050817-N-028.tga"
Si utilizamos una imagen llamada “mi-imagen.png” que está en la carpeta “Imágenes” de nuestro usuario, sería:
GRUBBACKGROUND="/home/tu-usuario/Imágenes/mi-imagen.png"
Nota: Recordad cambiar “tu-usuario” por el vuestro
2 – Esta es tan fácil como pegar directamente la imagen deseada en el directorio /boot/grub.
Para ello, clic derecho sobre la imagen deseada > “Copiar”, abrir como root el directorio /boot/grub con:
gksudo nautilus /boot/grub
Clic derecho en un espacio vacío y seleccionar “Pegar”.
Una vez hecho, con el método que deseemos, hay que actualizar el grub, para que los cambios surtan efecto con:
sudo update-grub
La terminal nos responderá algo similar a esto:
Generating grub.cfg …
Found background: /home/kaoslts/Imágenes/fondo-grub.tga
Found background image: /home/kaoslts/Imágenes/fondo-grub.tga
Found linux image: /boot/vmlinuz-3.2.0-25-generic
Found initrd image: /boot/initrd.img-3.2.0-25-generic
Found linux image: /boot/vmlinuz-3.2.0-24-generic
Found initrd image: /boot/initrd.img-3.2.0-24-generic
Found linux image: /boot/vmlinuz-3.2.0-23-generic
Found initrd image: /boot/initrd.img-3.2.0-23-generic
…
done
Donde la línea “Found background: /home/kaoslts/Imágenes/fondo-grub.tga”, nos dice que ha encontrado la imagen para el fondo
Prioridad de las imágenes:
Si tenemos más de una imagen adecuada para el GRUB 2, se utilizará el siguiente orden, para determinar que imagen aparecerá como fondo del GRUB 2:
- La imagen de la ruta que añadimos el archivo /etc/default/grub (GRUBBACKGROUND=”/ruta/nombre-imagen.tga”)
- La imagen que pegamos en /boot/grub
- Si hay más de una imagen pegada en el directorio, será la primera imagen que encuentra, en este orden: JPG, JPG, JPEG, JPEG, PNG, PNG, TGA, TGA
- Si hay más de una imagen con la misma extensión, se determinará por orden alfanumérico.
- El Tema por defecto (sin imagen), con los colores especificados en el apartado “defaulttheme” del archivo /etc/grub.d/05debiantheme
Posibles problemas con la imagen de fondo:
- Si no aparece ninguna imagen en el menú de GRUB 2, repasar lo siguiente, para determinar cual es el problema:
- Si al actualizar el grub (sudo update-grub) no aparece la línea que nos dice que ha encontrado la imagen de fondo: comprobar que el archivo existe y que la ruta y el nombre del archivo son correctos (recordad que hay que cambiar “tu-usuario” por el vuestro en la ruta, si la imagen está en vuestra carpeta personal).
- Verificar que la imagen es del tamaño y formato adecuado y que el archivo es un RGB, imagen no indexada. Ver el apartado de imágenes soportadas por el Grub
- Revisar que el modo consola no está habilitada en el archivo /etc/default/grub (Aclaración: Si vuestro Ubuntu arranca con entorno gráfico, queda descartado)
- Si el problema no se resuelve, sustituir la imagen por otra, de las imágenes proporcionadas por el paquete grub2-splashimages, ubicadas en /usr/share/images/grub para determinar si la causa se debe a una imagen incompatible.
- Si la imagen que aparece en el grub no es la que quieres:
- Revisar la sección de Prioridad de imagen.
- Ejecutar “sudo update-grub” y ver la línea para comprobar qué imagen se está seleccionando.
- Si habéis cambiado los colores del texto del menú. El fondo de la fuente “normal” debe ser transparente (black) para que una imagen sea visible “(colornormal=light-gray/black)”. Ver el apartado de colores de fuente más adelante.
Cambiar colores del texto en el menú del Grub
Introducción al código utilizado para los colores del texto:
La nomenclatura se define con el tipo de texto, el signo igual “=” y 2 colores separados por una barra invertida “/”. Un ejemplo sería:
set colorhighlight=color-texto/color-fondo
Donde:
- set colorhighlight, será el tipo de texto al que le vamos a configurar los colores, que veremos más adelante.
- color-texto será el color del texto y
- color-fondo será el color de fondo del texto
Por ejemplo, para darle el color rojo al texto y el color verde al fondo del texto sería:
Los colores que soporta el grub2 son:
black | blue | brown | cyan |
dark-gray | green | light-cyan | light-blue |
light-green | light-gray | light-magenta | light-red |
magenta | red | white | yellow |
Atención: Cuando se utiliza el color negro (black) como color de fondo en la línea del texto sin resaltar (no seleccionado) “set color
normal
“, el Grub lo toma como transparente. Esta distinción es muy importante cuando existe una imagen de fondo en el Grub.
Tipos de texto:
Antes de nada, quiero explicar esto con claridad, porque puede originar cierta confusión.
La existencia de imagen de fondo o no, determinará la forma en que trabaja el GRUB 2.
En los archivos de configuración existen 4 tipos de texto, que se utilizarán en función de si hay imagen o no para el fondo (todo cambia sustancialmente):
set menucolorhighlight=color-texto/color-fondo |
---|
– Sin Imagen de fondo, controla el color del texto o línea seleccionada (resaltada), dentro de la “caja” en el menú- Con imagen de fondo, no hace nada |
set menucolornormal=color-texto/color-fondo |
– Sin Imagen de fondo, controla el color del texto sin seleccionar (sin resaltar), dentro de la “caja” en el menú- Con imagen de fondo, no hace nada |
set colornormal=color-texto/color-fondo |
– Sin Imagen de fondo, controla el color del texto y el fondo fuera de la “caja” en el menú- Con imagen de fondo, controla el color del texto sin seleccionar (sin resaltar) |
set colorhighlight=color-texto/color-fondo |
– Sin imagen de fondo, no hace nada- Con Imagen de fondo, controla el color del texto o línea seleccionada (resaltada) |
Vamos a ver la forma de configurar el color según tengamos o no una imagen para el fondo del Grub, ya que cambia:
Ajustes de color con imagen de fondo:
GRUB 2 omite automáticamente los valores “menucolorhighlight” y “menucolornormal”, cuando una imagen está presente y utiliza “colornormal=color-texto/color-fondo” y “colornormal=color-texto/black”
Importante: el color de fondo para el texto no seleccionado (no resaltado) , debe de ser black (transparente), porque sino, no se verá la imagen de fondo:
set colornormal=color-texto/black
Bueno, explicado todo esto, vamos a ver como hacerlo.
Editamos el archivo “/etc/grub.d/05debiantheme” con el comando:
sudo gedit /etc/grub.d/05debiantheme
Alrededor de la línea nº 105, buscamos las siguientes líneas:
if [ -z "${2}" ] && [ -z "${3}" ]; then
echo ” true”
fi
1º Hay que comentar la línea (añadir una almohadilla “#
” delante) que asigna el valor verdadero (echo " true"
), de esta forma, el sistema pasará de largo y cogerá los valores de las líneas que añadiremos debajo:
# echo " true"
2º Añadir las siguientes líneas debajo de la línea anterior comentada y antes del “fi
“:
echo " set color
highlight=color-texto/color-fondo"
echo ” set colornormal=color-texto/black”
Quedaría así:
if [ -z "${2}" ] && [ -z "${3}" ]; then # echo " true" echo " set colorhighlight=black/magenta" echo " set colornormal=cyan/black" fi
Cambiamos los colores a color-texto y color-fondo, por los que queramos.
Guardamos los cambios, cerramos el archivo y actualizamos el grub con:
sudo update-grub
Reiniciamos y lo testeamos.
Probar los distintos colores desde la pantalla del Grub
Una vez reiniciado y en la pantalla del Grub, si no nos convencen los colores, podemos probar con otros para determinar los colores que más nos convengan.
Cuando aparece el menú, pulsamos cualquier tecla para detener la cuenta atrás.
Presionamos la tecla “c
” (sin las “), para entrar en la línea de comandos del GRUB 2 .
Nos aparecerá el prompt del grub “grub >” y escribimos cualquiera de las ordenes para cambiar los colores:
set colornormal=color1/black set colorhighlight=color1/color2
El teclado estará en Inglés, por lo que los símbolos no se encontrarán en su sitio.
Al terminar el artículo, reiniciaré para copiarlos (no me acuerdo ahora mismo
Pulsamos Enter y la nueva línea cogerá los nuevos colores
Para volver a probar con otros no es necesario escribir la orden, basta con pulsar la tecla de la flecha arriba y se pegará el último comando. Nos desplazamos por la línea con las flechas izquierda y derecha, modificamos lo necesario y pulsamos Enter para ver el resultado
Al presionar ESC volvemos al menú principal para ver como queda en el menu
Esto no es definitivo, solo una prueba y al arrancar de nuevo, debemos editar el archivo de nuevo y hacer los cambios correspondiente.
No olvidar actualizar el grub (sudo update-grub) cada vez que modifiquemos algo, para que los cambios surtan su efecto.
Ajustes de color sin imagen de fondo:
Cuando no tenemos imagen de fondo, el archivo a editar es: /lib/plymouth/themes/default.grub
, que es el archivo de configuración por defecto, cuando no hay una imagen de fondo.
Nota: Si hemos añadido una imagen y añadido las líneas para los colores, debemos de deshacer lo hecho antes.
Editamos el archivo con:
sudo gedit /lib/plymouth/themes/default.grub
Al final del archivo añadimos las siguientes líneas, con estos colores por ejemplo:
set menucolorhighlight=yellow/dark-gray set menucolornormal=black/light-gray set colornormal=yellow/black
Guardamos los cambios, cerramos el archivo y actualizamos el grub con:
sudo update-grub
Reiniciamos y quedaría así, con el ejemplo puesto anteriormente:
Cambiar la resolución del menú
Este cambio es delicado y puede acarrear que no aparezca el menú en el arranque del grub, ya que hay que tener en cuenta que el grub admite ciertas resoluciones que, en algunos casos, no coinciden con la resolución que admite tu monitor.
Para ver qué resoluciones admite el grub, reiniciamos el sistema y cuando aparece el menú del Grub, pulsamos cualquier tecla para detener la cuenta atrás.
Presionamos la tecla “c
” (sin las “) para entrar en la línea de comandos del GRUB 2 .
Nos aparecerá el prompt del grub “grub >” y ejecutamos:
vbeinfo
Una vez que sabemos cuales son las resoluciones soportadas:
Para cambiar la resolución del menú (tamaño de la fuente), editamos el archivo “/etc/default/grub
” con:
sudo gedit /etc/default/grub
Y buscamos la línea (alrededor de la nº 25):
GRUBGFXMODE=…x…
Seguramente, por defecto, la línea esté comentada (con una almohadilla “#
” delante), por lo que el sistema pasará de largo y cogerá la resolución más grande posible, con el tamaño de letra más pequeño.
Para cambiarlo, borramos la “#
” y le ponemos la resolución que queramos. Las resoluciones más comunes son:
GRUBGFXMODE=800×600
y
GRUB_GFXMODE=640×480
Nota: a menor resolución, mayor tamaño de la fuente
Consejos y recordatorios para no tener problemas con la resolución:
Lo primero que hay que hacer es averiguar qué resoluciones admite el grub con “vbeinfo” desde el menú del grub, pulsando “c
” (sin las “).
Lo aconsejable es que la imagen de fondo tenga el mismo tamaño que la resolución que pongamos, ya que si la imagen de fondo no es del tamaño correcto, el menú no se colocará correctamente.
Utiliza el editor de imagen Gimp para crear / cambiar el tamaño de la imagen al tamaño correcto.
Podemos ver el tamaño de cualquier imagen, haciendo clic derecho sobre ella > propiedades.
Las imágenes incluidas en el paquete grub2-splashimages son principalmente imágenes de 640×480.
Recordad que hay que actualizar el grub con “sudo update-grub” después de hacer cualquier cambio.
error: unknown command ‘vbeinfo’
En mi PC y en otras máquinas donde he testeado esto, no he tenido problemas con “vbeinfo”, pero en mi portátil, al ejecutarlo en la línea de comandos del Grub 2, me aparece el error: unknown command ‘vbeinfo’, que en mi caso es porque tengo el booteo en /efi, ya que mi placa base utiliza “EFI”, en lugar de “BIOS”.
No puedo saber cuales son las resoluciones posibles, aunque no he tenido problemas al asignarle las resoluciones 800×600 y 640×480 (muy comunes y soportadas por la mayoría de máquinas), pero me quedo con la “cosilla” de saber como podría averiguarlo. Si alguien sabe algo al respecto, le agradecería que lo comentase, gracias.
Solución aportada por “detrert” en el comentario nº 8:
Instalar los siguientes paquetes:
sudo apt-get install v86d hwinfo
Y ejecutar el siguiente comando para ver las resoluciones soportadas:
sudo hwinfo --framebuffer
Fuente|Ubuntu Guia
Informático aficionado a la tecnología, intento de modder, artista plástico chafa, escritor vulgar y pésimo humorista