Reemplazando GRUB por GFXBoot, paso a paso

Mejoremos el boot de nuestro Ubuntu

Buenas, en este post les voy a mostrar cómo remplazar el conocido bootloader GRUB por GFXBoot. Si se preguntan de qué estoy hablando, GRUB es esa pantallita negra que te permite elegir a qué sistema operativo entrar apenas se enciende la computadora (si tenéis más de 1 sistema operativo, o si tenéis varias opciones de booteo para tu SO).

La única razón para hacer esto es que GFXBoot es más atractivo visualmente que GRUB. Con GFXBoot podemos tener una imagen de fondo y animaciones, y si bien GRUB permite poner una imagen de fondo, GFXBoot soporta mayor profundidad de color y, según mi punto de vista, queda más atractivo.

Explicación:

Nota inicial: para no estar poniendo sudo en todos los comandos pueden usar el comando “sudo su” al principio.

1- Bajen el paquete que contiene gfxboot. Asegúrense de bajar la versión más reciente, porque yo utilicé una versión antigua.

Si el kernel es de 32 bits:

http://sidux.com/debian/pool/main/g/grub-gfxboot/grub-gfxboot_0.97-48_i386.deb

Si el kernel es de 64 bits:

http://sidux.com/debian/pool/main/g/grub-gfxboot/grub-gfxboot_0.97-48_amd64.deb

2- Fíjense que versión de grub tienen. Para esto lo que pueden hacer es abrir el gestor de paquetes de Ubuntu (o Kubuntu) y busquen grub. Si tienen el grub 0.97, ese es el grub. Si tienen el 1.97, ese es el grub2.

Comprobando que versión de GRUB tenemos

Si tienen el grub (no el grub2) les recomiendo que le hagan una copia al archivo /boot/grub/menu.lst

Por ejemplo, le pueden llamar menu.lst_backup.

En Ubuntu 9.10 viene el grub2, asi que pueden omitir lo anterior (porque no existe ese archivo).

3- Desinstalen grub.

Para esto abran una terminal y pongan:

sudo apt-get remove grub

O, si tienen grub 2:

sudo apt-get remove grub2 grub-pc

(Esta es otra forma de saber qué grub tienen. Antes de eliminar, les va a preguntar que confirmen si quieren eliminar. Si ven que no les pregunta, y no elimina nada es porque ese grub no está).

Si todo salió bien, les debería quedar instalado sólo el paquete grub-common (pueden comprobar con el gestor de paquetes).

Si por alguna razón no les quedó instalado el grub-common, instálenlo así:

sudo apt-get install grub-common

Nota: para instalar paquetes tienen que estar conectados a Internet. Si quieren hacerlo offline, se tienen que bajar antes los paquetes e instalarlos con el comando dpkg (como haremos con gfxboot).

4- Ahora instalan el gfxboot.

sudo dpkg -i dirPaquete

En particular, a mi me queda así el comando:

sudo dpkg -i grub-gfxboot_0.97-48_i386.deb

Si le hacen doble click al archivo del paquete, es lo mismo.

5- Utilicen el comando que muestra las particiones de disco.

sudo fdisk -l

Este comando les va a mostrar las particiones que tienen en el disco.

El particionado de nuestro disco

Lo importante es que se fijen si su disco es hda o sda. En la imagen se ve que el disco es sda. Si tienen más de un disco puede aparecer sdb o hdb. Fíjense en qué disco meter el grub en ese caso (es raro que alguien tenga varios discos, si alguien tiene dudas de eso, pregunte).

6- Ahora instalen grub (modificado por gfxboot) en el disco así.

sudo grub-install /dev/sda
Noten que puse sólo sda. No le vayan a poner un numerito, como sda5, porque lo más probable es que “carguen” esa partición. Sólo sda.
Si les sale algún error, como que no encuentra el archivo stage1 (stage1 not read correctly), es porque el paquete es muy viejo o muy nuevo para nuestra distribución. En ese caso busquen otro paquete. Fíjense que el que yo subí es el 48 (esto se ve en el nombre del paquete). A mi me saltaba este error apenas empecé con todo esto, porque me había bajado la versión 11 del paquete, y se ve que no era compatible.
Si no encuentran ningún paquete que no les de error en este paso y dicen “¿ahora que hago?”, desinstalen el gfxboot e instalen de nuevo el grub. Tendrían que hacer algo así:
sudo apt-get remove grub-gfxboot
sudo apt-get install grub2 (ó grub)
sudo grub-install /dev/sda
sudo update-grub
y van a estar como al principio.
7- Ejecuten el siguiente comando.
sudo update-grub
Lo que hace es generarles el archivo menu.lst.
8- Con su editor de textos preferido (por ejemplo vim por consola o gedit gráficamente (o kate en Kubuntu)) abran los siguientes archivos.

El archivo /boot/grub/menu.lst, y vayan hasta el final del archivo.

menu.lst

El archivo /etc/fstab.

fstab

El archivo /etc/mtab.

mtab

Bueno, aquí hay mucho que decir. No confundan (hd0,0) con hda y sda. (hd0,0) indica el primer disco y la primera partición, sin importar si el disco es hda o sda. (hd0,4) indica el primer disco en la partición 5. En mi caso, esto es sda5, que es donde tengo instalado Kubuntu 9.10. Fíjense que los archivos sean congruentes.
En mi caso se cambiaban los valores del archivo menu.lst, entonces cuando reiniciaba el sistema, me decía “Invalid device name” y no booteaba.
En las imágenes está todo OK. Tienen que comprobar que en el archivo menu.lst la partición de Linux esté bien. Según el fdisk que hice yo, se concluía que tenía Linux en sda5, o lo que es lo mismo, (hd0,4). Si ven el menu.lst, eso está bien. Me acuerdo que a mi no me booteaba la primera vez, porque mágicamente apareció (hd0,5) en el menu.lst lo cual es erróneo, porque esa es una partición de intercambio nada más. Lo más probable es que a ustedes les pase lo mismo, asi que sólo tienen que modificarlo a mano.
También comprueben que el UUID de su partición con Linux coincida con el UUID que está en el archivo fstab. Aquí todo OK.
Por último, fíjense que la primera línea de mtab coincida con la partición donde tienen Linux, y que el sistema de archivos sea ext4. Todo OK.
9- Bájense algún tema para gfxboot. Hay varios dando vueltas por ahi. O sino pueden buscar con su gestor de paquetes así.

Los que se bajan de Internet generalmente ya vienen compilados y listos, y siempre se llaman message.algo.

Algunos de los temas disponibles

Por ejemplo, supongamos que le doy a instalar al último: “zen”. Esto me va a crear una carpeta en /usr/share llamada gfxboot-theme-zen.
Entonces, tengo que ejecutar los siguientes comandos:
cd /usr/share/gfxboot-theme-zen/
sudo make
sudo make install
cd install
sudo su
ls . |cpio -o > /boot/grub/message.zen
Como resultado de lo anterior, obtengo el archivo /boot/grub/message.zen
Si se bajan alguno ya compilado, nada más péguenlo en /boot/grub y asegúrense de que se llame message.algo
Lo bueno de compilar es que pueden cambiar las imágenes por las que ustedes quieran, y lo pueden modificar.
10- Abran el archivo /boot/grub/menu.lst y en la primera línea agreguen esto y guárdenlo.
gfxmenu /boot/grub/message.zen (si su archivo se llama de otra forma, pongan el nombre que corresponde)
Les queda algo así:

Así nos quedaría

11- Reinicien el sistema, y ya deberían poder ver el tema que han aplicado.

Gracias al compañero “elshangtsungo” por la redacción de esta entrada.
Gracias amigo.