Grub loader BURG

GRUB es la herramienta de selección de sistemas operativos (“cargador de arranque”) que se instala con la mayoría de distribuciones Linux. La herramienta GRUB “out of the box” es bastante poco estética, por lo que han nacido alternativas bastante más configurables y estéticamente más atractivas.

Hoy vamos a poner sobre la mesa el cargador de arranque BURG (“Brand-new Universal LoadeR from Grub”). Para instalarlo sobre ubuntu hay que añadir el siguiente repositorio:

sudo add-apt-repository ppa:n-muench/burg 
sudo apt-get update && sudo apt-get install burg burg-theme

Durante la instalación es buena opción dejar todas la configuración por defecto del instalador, a no ser que tengamos algún tipo  de personalización en el arranque de nuestro kernel, el cual podremos especificar en una de las pantallas del instalador. Una vez finalizada la instalación habrá reconocido todos los sistemas operativos instalados por defecto.

El fichero de configuración dónde especificamos nuestra configuración es:

sudo nano /boot/burg/burg.cfg

Las diferentes opciones de personalización que suelo usar son:

  • Resolución de pantalla adaptada para mi portátil
  • Número de segundos de espera para el arranque del sistema operativo por defecto.
  • Tema a usar por defecto
  • Sistema operativo por defecto (opción númerica o último usado).

Mi fichero resultante sería algo cómo burg.cfg, a continuación os pongo las variables que suelo modificar:

set theme_name=sora_clean

set default="save"

set gfxmode=1366x768

### BEGIN /etc/burg.d/10_linux ###
menuentry 'Ubuntu GNU/Linux, with Linux 3.8.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os --group group_main {
	insmod ext2
	set root='(hd0,7)'
	search --no-floppy --fs-uuid --set edf83249-61b1-4ecc-85ce-4b7723fef08a
	echo	'Loading Linux 3.8.0-23-generic ...'
	linux	/boot/vmlinuz-3.8.0-23-generic root=UUID=edf83249-61b1-4ecc-85ce-4b7723fef08a ro  quiet splash
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.8.0-23-generic
}
menuentry 'Ubuntu GNU/Linux, with Linux 3.8.0-19-generic' --class ubuntu --class gnu-linux --class gnu --class os --group group_main {
	insmod ext2
	set root='(hd0,7)'
	search --no-floppy --fs-uuid --set edf83249-61b1-4ecc-85ce-4b7723fef08a
	echo	'Loading Linux 3.8.0-19-generic ...'
	linux	/boot/vmlinuz-3.8.0-19-generic root=UUID=edf83249-61b1-4ecc-85ce-4b7723fef08a ro  quiet splash
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.8.0-19-generic
}
### END /etc/burg.d/10_linux ###

Durante mucho tiempo me vi modificando este fichero cada vez que instalaba BURG, sin fijarme en el texto que tenemos al inicio del documento, en el cual dice que no modifiquemos directamente sobre ese fichero, sino que modifiquemos

/etc/default/burg

El uso de este cargador de arranque conlleva un pequeño problema cuando se actualiza el kernel en el sistema. Pero para poder hacer la entrada completa he estado investigando como poder ejecutar tareas/scripts tras la actualización del kernel, y para mi sorpresa existe una ubicación en el sistema que todo script que se encuentra en dicha ubicación, será ejecutado tras la actualización del kernel.

  1. Creamos el script que queramos ejecutar tras la actualización del kernel.
  2. Ejecutamos el siguiente comando pasando como argumento el script creado:
    sudo install MISCRIPT /etc/kernel/postinst.d

Esta opción sería bastante válida, pero nos tendríamos que currar nosotros el script para la configuración deseada de nuestro BURG.

Por lo que me puse manos a la obra en encontrar otro tipo de solución, y la encontré. En la propia configuración comentada anteriormente dónde el propio fichero de configuración resultante nos dice:

Modificar el fichero /etc/default/burg

En él se puede especificar toda la configuración a nuestro gusto, y ésta perecerá ante las actualizaciones del kernel y ejecuciones manuales del comando para actualizar burg (detecta todos los kernel del sistema y el resto de sistemas operativos instalados en el equipo)

Mi fichero de configuración resultante es /etc/default/burg, y los cambios que hago son para las siguientes variables:

GRUB_DEFAULT=save // Con esto haremos que el pc arranque siempre en la última opción seleccionada
GRUB_GFXMODE=1366x768 // Resolución para el loader
GRUB_FOLD=true //Con esta opción hacemos que sólo sea visible los principales kernels,  y que el modo recovery y anteriores kernels queden ocultos.

Para conocer todas las opciones de configuración, podemos acceder a la documentación oficial.

Bien, ahora que tenemos todo configurado correctamente incluso para posibles “desconfiguraciones” por el kernel, puesto que cada vez que se actualice éste nos tocará manualmente ejecutar la sentencia con la que volver a usar burg en vez de grub, y que éste detecte todos los kernels y sistemas operativos instalados en el equipo. El comando es como sigue:

sudo update-burg

Tener que hacer manualmente esta acción, puede llegar a resultar un poco molesto. Pero esto tiene solución, existe, a parte de la carpeta donde podemos instalar nuestros scripts de ejecución posterior a la actualización del kernel, un fichero en el que podemos especificar la ejecución de un comando tras la actualización del kernel o borrado de kernels. Editamos el fichero

sudo nano /etc/kernel-img.conf

En él añadiremos las siguientes lineas, especificando qué comando ejecutar tras la actualización/borrado de kernel.

postinst_hook = update-burg
postrm_hook = update-burg

He de comentar, que esta configuración he aprendido a aplicarla hace poco tiempo, y aún no he podido comprobar que este último paso sea válido, espero que si. En cuanto se produzca una actualización del kernel en mi equipo, podré comprobarlo, y en caso de error, editaré la entrada.

El resultado de mi configuración con BURG:

burg

Para poder previsualizar como está quedando nuestra configuración de BURG, podemos ejecutar la aplicación:

sudo burg-emu

 

Happy Minds!

Share on FacebookTweet about this on TwitterShare on LinkedInShare on RedditShare on Google+Digg thisShare on TumblrPin on PinterestBuffer this pagePrint this pageEmail this to someone