Imagen personalizada en Grub

A propósito de otro post que estoy preparando, me vi en la necesidad de crear una imagen para el cargador de archivos GRUB, cosa que técnicamente no es complicada pero de la que no encontré mucha información al respecto en la red, por lo que me dí a la tarea de escribir esta entrada para futuras referencias respecto al tema.

Para los que no lo sepan GRUB (GRand Unified Bootloader) es un proyecto de GNU Linux que nació con la finalidad como su nombre lo indica de unificar la carga de sistemas operativos o como los gringos lo llaman bootloader, explicar que es el boot queda completamente fuera del alcance de esta entrada pues tendría que explicar demasiado y ando escaso de tiempo, pero puede ser que en un futuro lo explique detalladamente, lo que si puedo explicar de manera rápida, es que todo sistema operativo, necesita cargarse desde algún lugar (en la actualidad ese lugar puede ser incluso una MircoSD), pero además para poder arrancar dependiendo de las características propias de cada sistema operativo necesitara una mayor cantidad de parámetros para ello, en Windows XP por ejemplo el archivo "boot.ini" explica en que lugar del disco duro se encuentra la instalación de nuestro sistema.

Pero ya me estoy enrollando demasiado con explicaciones fuera de lugar, GRUB para poder cargar los sistemas operativos se basa en un archivo llamado "menu.lst" que normalmente se encuentra en "/boot/grub/", ese archivo es el que contiene las entradas necesarias para poder cargar nuestro(s) sistema(s) operativo(s), la entrada para poder poner una imagen de fondo en ese menú es "splashimage" y normalmente esta comentada (¿o sea?, comienza con un #), bueno en ese caso debemos eliminar el comentario es decir el carácter "#" y remplazar la línea por algo como "splashimage=(hd0,0)/boot/grub/booting.xpm", una explicación rápida (hd0/0) indica el disco duro y la partición desde donde se va a cargar dicha imagen, en este caso disco duro 0 (principal) y partición (0) también partición principal, "/boot/grub/" la ruta al lugar donde esta la imagen [Nota: la carpeta donde se encuentre este archivo debe ser accesible desde el arranque, si tienen una partición cifrada no funcionará si la ponen ahí.], finalmente "booting.xpm" es el nombre de la imagen en cuestión, aquí es a donde llegamos a la parte interesante ¿cómo chin... hacer para crear estas imágenes?, hay dos opciones, la primera hacer un programa (muy interesante y casi desconocido por cierto) que forma parte de ImageMagic, la otra usar GIMP o algún otro editor de imagen, para el caso de usar ImageMagic, abrimos una terminal, nos ubicamos en la carpeta donde se encuentra nuestra imagen en formato PNG (preferentemente), JPG, etc, y ejecutamos el comando:

convert MiImagen.extensión -colors 14 -resize 640x480 NombreFinal.xpm

o para ser más claro si mi imagen se llama ZoSemU.png y la vamos a dejar lista para la entrada del menú sugerida arriba, quedaría de la siguiente manera:

convert ZoSemU.png -colors 14 -resize 640x480 booting.xpm

con eso nuestra imagen habrá quedado lista para usarse en el GRUB; en caso de usar GIMP, puede hacer el procedimiento normal de redimencionar la imagen, ponerle letras, etc, etc y al final ir al menú "Imagen/Modo/Indexeado/Generar paleta óptima   Número máximo de colores" y darle 14 en lugar de los 256 que tiene por defecto, una vez terminado les pedirá convertir, la guardan con la extensión "xpm" y listo. 

Finalmente solo les recuerdo que GRUB también soporta la compresión de estos archivos en formato "gz" por lo que desde la terminal procedemos a comprimirla usando el comando:

"gzip booting.xpm"

lo que dará como resultado el archivo "booting.xpm.gz" y nuestra linea de GRUB quedaría de la siguiente forma:

splashimage=(hd0,0)/boot/grub/booting.xpm.gz

SaluDoS!!

Comentarios

Entradas populares de este blog

Detener la sincronización de tiempo/fechas entre Host y Guest en Virtual Box

Extraer datos de un archivo.mdb (Access) con python

Solución al problema con odbc pgsql (postgresql) en Windows 7 de 64 bits