Chat

domingo, 28 de octubre de 2012

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-customizersudo apt-get updatesudo 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:

 

GRUBBACKGROUND="/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:

 

    1. La imagen de la ruta que añadimos el archivo /etc/default/grub (GRUBBACKGROUND=”/ruta/nombre-imagen.tga”)
    2. La imagen que pegamos en /boot/grub
    3. 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
    4. Si hay más de una imagen con la misma extensión, se determinará por orden alfanumérico.
    5. 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:

  1. 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.
  1. 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:

set colorhighlight=red/green

Los colores que soporta el grub2 son:

blackbluebrowncyan
dark-graygreenlight-cyanlight-blue
light-greenlight-graylight-magentalight-red
magentaredwhiteyellow

 


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 colorhighlight=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/blackset 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 

No hay comentarios:

Publicar un comentario