Grub 2 - descansa en paz menu.lst...
Ayer me tope con algo muy molesto... como siempre tengo mi debian en una partición y tenía mint en otra, donde lo instalé para probarlo hace un par de años y ahí quedó. El tema es que con el grub del mint reemplacé al de debian en su momento... hasta acá todo bien. Pero ayer necesitaba espacio (ya contaré la anécdota) y borré el mint, así que instalé grub en debian nuevamente. Reinicio y me topo con muchas opciones para elegir, y la configuración no era la del grub que tenía en debian... Una vez iniciado debian, reviso el menu.lst y estaba todo como lo había dejado, entonces, de donde mierd* estaba tomando la configuración nueva???

Después de pelear un rato y buscar algún otro menu.lst, me decidí a buscar un poco en google sobre la versión de grub que tenía instalada. En algún upgrade parece que se instaló Grub 2 (1.97 beta), y como no lo usaba, no me había dado cuenta... hasta ayer.

Para mi gran sorpresa, Grub 2 no utiliza más el viejo (y ya querido, al menos por mi) menu.lst para la configuración. Aquel archivo, al que ya estaba muy acostumbrado, dejó su lugar para que lo tome uno nuevo, el grub.cfg. El problema es que este grub.cfg no es para nada intuitivo como lo era el anterior, sino que toma el formato de script y no de archivo de configuración. Incluso no está pensado para que lo modifiquen a mano, sino que toma su configuración a partir de otros scripts ubicados en /etc/grub.d: 00_header, 10_linux, 30_os-prober, etc

La idea es que el usuario simplemente ejecute:
# update-grub (o en versiones más actuales grub-mkconfig)
Este comando ejecuta los scripts que están en /etc/grub.d/ en el orden indicado por el número con el que inician sus nombres (osea, primero 00_header, después 10_linux, luego 30_os-prober, etc), también toma valores de /etc/default/grub. La idea es que, en lugar de tocar grub.cfg, toquemos los scripts de /etc/grub.d y el tal /etc/default/grub... el problema es que estos scripts no son intuitivos como el viejo menu.lst. Antes, una persona sin idea de scripting o programación, podía tocar el menu.lst y aprender a usarlo, ahora con estos scripts lo veo más difícil, e incluso intimidante para alguien que no maneja estas cosas.

Es verdad que existen programas como startupmanager, que nos permiten configurar algunas opciones de grub, pero no es para nada flexible en cuanto a las opciones que permite. En mi caso particular, quería borrar todas las entradas con kernels viejos, para que no me liste 15 kernels que no uso... pero esto no lo puedo hacer con startupmanager, es más, tendría que reescribir bastante la funcionalidad de 10_linux para que no los liste... en realidad no hay forma. 10_linux revisa el directorio /boot/ y lista todos los kernels que encuentra... para algunos está perfecto, pero yo no quiero eso. Así que no me quedó otra que borrar a mano del grub.cfg los kernels viejos. Pero resulta que cualquier actualización de grub, o cualquier cosa que quiera tocar, hará que los scripts me sobreescriban el grub.cfg, volviendo a colocar los kernels viejos...

Si bien me parece perfecto que se hagan cambios pensando en funcionalidad, creo que en este caso le pifiaron, o al menos deberían dar la opción de elegir si seguir con el viejo menu.lst o usar el formato nuevo con scripts. Es verdad que puedo volver a instalar Grub 1, pero estaría bueno avanzar...

En fin, la idea del post es advertirles/informarles acerca del funcionamiento de Grub 2, porque yo la verdad no conocía los cambios que habían incorporado, ni como funcionaba.

En las páginas: Instalar Grub2 en Debian y Grub 2 (1.97~beta4-1ubuntu4) pueden encontrar información sobre instalación y configuración de Grub 2. Una de las buenas es que podemos usar como fondo imágenes .png, eso sí, para cambiar el la imagen deberán meter mano a un archivo similar a /etc/grub.d/05_debian_theme...

0 comentarios:

Publicar un comentario