Instalar Grub2 en Debian
1. Introducción
1.1. ¿Qué es GRUB?
1.2. Desarrollo
1.3. GRUB2
2. Instalación
3. Configuración
3.1. Configuración básica y opciones de arranque
3.2. Imagen de fondo
3.3. Colores de texto
4. Reinstalación
5. Referencias
1. Introducción
1.1. ¿Qué es GRUB?
Para quien no lo conozca, GRUB es el mnemónico de GRand Unified Bootloader. Un Boot Loader, o cargador de arranque, es el primer programa que se ejecuta cuando la computadora arranca (salvando la secuencia de arranque en ROM).
El Boot Loader es responsable de cargar y transferir el control al núcleo, o kernel, del sistema operativo. El kernel, luego, incializa el resto del sistema operativo.
GRUB es, para aquellos que tenemos Linux, el "menú que aparece en la pantalla" y que nos permite seleccionar el sistema operativo, o la versión de kernel, que vamos a iniciar. Otro gestor conocido y que muchos hemos utilizado alguna vez, es LILO.
1.2. Desarrollo
El nombre de la versión más utilizada de GRUB es denominada "GRUB Legacy". Esta versión es sobre la cual se solucionan los errores, pero no se añaden nuevas características. Los desarrolladores de GRUB han cambiado su enfoque a GRUB 2, una completa reescritura, cuyos objetivos incluyen la puesta a un GNU GRUB más limpio, más seguro, más sólido, más portátil y mucho más poderoso. GRUB 2 comenzó con el nombre de PUPA. PUPA fue apoyada por la Information-technology Promotion Agency (IPA) en Japón. PUPA se integró en el desarrollo de GRUB 2 alrededor del 2002, cuando la versión 0.9x de GRUB fue renombrada a GRUB Legacy. En febrero de 2008, GRUB 2 todavía sigue en desarrollo, no está listo para su uso en sectores de producción, y no está documentado.
Algunos de los objetivos del proyecto incluyen el apoyo a plataformas no-x86, la internacionalización/localización, caracteres no ASCII, módulos dinámicos, gestión de memoria, un mini-lenguaje de scripting, la migración de plataforma específica (x86) de código a la plataforma de módulos específicos, y una marco orientado a objetos.
1.3. GRUB2
GRUB (GRUB 2, por ahora). Se han basado en un proyecto llamado PUPA cuya meta era desarrollar un GRUB más “limpio”, seguro, robusto y potente así como más portable y con soporte para diferentes idiomas.
Sin embargo Grub2 es un paquete nuevo que permite:
- Permitir scripting, condicionales, bucles, variables y funciones.
- Interfaz gráfica.
- Extensibilidad mediante carga dinámica de módulos.
- Portabilidad a distintas arquitecturas.
- Internacionalización. Soporte para caracteres fuera del conjunto ASCII, mensajes localizados, etc.
- Mejor administración de memoria.
- Marco de trabajo modular, jerárquico y orientado a objetos para sistemas de archivo, archivos, dispositivos, unidades, terminales, comandos, tablas de partición y cargadores de SO.
- Instalación multiplataforma.
- Modo de rescate para casos en los cuales es imposible iniciar.
- Corregir errores de diseño de la versión anterior de GRUB, que no pueden resolverse debido a compatibilidad inversa, por ejemplo el numerado de las particiones
2. Instalación
Grub2 esta en los repositorios de Squeeze y Sid por lo que es posible usar aptitude para la instalación. Para Lenny debemos descargar el metapaquete de Debian:
Una vez descargado empezamos a instalarlo
# dpkg -i grub2_1.96+20080724-16_i386.debEsto nos creará un mensaje de advertencia diciendo que nos faltan paquetes necesarios lo cual resolveremos ejecutando en consola:
# aptitude install -fLuego otra vez
# dpkg -i grub2_1.96+20080724-16_i386.debAhora instalamos StartupManager para editar Grub con entorno gráfico
# aptitude install startupmanagerAhora instalamos Splashimages para insertar "CUALQUIER" imágen que deseemos
# aptitude install grub2-splashimagesActualizamos Grub2 con los datos de nuestro Grub anterior (Grub-Legacy) necesarios para iniciar el Gestor de arranque
# upgrade-from-grub-legacyImportante: Si poseen otros sistemas operativos instalados en sus máquinas será necesario instalar os-prober; por ejemplo, si utilizan en su misma computadora de escritorio o Laptop, Debian + Otro Sistema Operativo
Instalamos os-prober
# aptitude install os-proberLuego ejecutamos os-prober
# os-proberAhora actualizan el grub
# update-grubYa puedes REINICIAR TU PC Y disfrutar del flamante Grub2
3. Configuración
3.1. Configuración básica y opciones de arranque
El archivo /boot/grub/grub.cfg reemplaza el antiguo /boot/grub/menu.lst pero a diferencia de este último el archivo de configuración para la nueva versión es generado automáticamente a partir del archivo /etc/default/grub y los scripts ubicados en /etc/grub.d que son, si no hemos agregado alguno:
- 00_header <-- Carga las opciones del archivo /etc/default/grub
- 05_debian_theme <-- Configuración del tema: imagen de fondo y color de texto
- 10_hurd <-- Para kernels Hurd
- 10_linux <-- Para kernels Linux
- 10_linux.dpkg-dist
- 30_os-prober <-- Genera entradas para otros sistemas operativos instalados
- 40_custom <-- Para agregar entradas a mano cuando os-prober no encuentra algún SO intalado
El archivo /etc/default/grub contiene información importada de /boot/grub/menu.lst para generar las entradas del nuevo grub. De entre las opciones las que más nos puede interesar editar son:
GRUB_CMDLINE_LINUX Si existe, importa toas las entradas al final de la línea del kernel para los modos normal y recovery. Es símilar a "altoptions" en menu.lst.
GRUB_GFXMODE Cambia la resolución del grub. Soporta 1600×1200, 1024x768, 800x640 y 640x480(default) aunque llega a soportar algunas no estándar.
Ejemplos de configuración con estas opciones:
GRUB_CMDLINE_LINUX="vga=792"
GRUB_GFXMODE=1024x768
Con lo que la resolución de la TTY para todas las entradas será de 1024x768 a 32 bits y la resolución del grub de 1024x768.
3.2. Imagen de fondo
Grub2 ya está instalado pero usted desea tener su propia imágen. Puede ser cualquiera, la que usted desee.
Primer Paso. Convirtiendo la imágen que vamos a poner de Fondo de Grub2
Escogemos cualquier imagen Y la convertimos a .png con Gimp luego esta imagen la escalamos a la resolución que hemos definido en el archivo /etc/default/grub en la opción GRUB_GFXMODE que por default es 640x480.
Una vez convertida la imagen la pegamos en /usr/share/images/desktop-base aunque podemos moverla a cualquier directorio de nuestra elección cómo se verá adelante.
Segundo Paso. Activando la imagen
El script 05_debian_theme es el que se ocupa del tema de configuración, el que nos interesa. Buscamos las siguientes lineas:
# check for usable backgrounds
use_bg=false
if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then
for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do
............Aquí podemos apreciar los directorios en que serán buscadas las imágenes a utilizar como fondo y la imagen propiamente dicha, cambiar a gusto el nombre de la imagen
Atención, en el nombre de la imagen NO deberemos incluir la extensión, como se aprecia arriba.
Una vez hechos los cambios deseados debemos ejecutar:
# update-grubpara que se genere nuevamente el /boot/grub/grub.cfg y así lograr que los cambios sean permanentes.
Ahora solo Reiniciamos Nuestra Máquina y tendremos la Nueva imágen de GRUB2 PERSONALIZADA
Foto

3.3. Colores de texto
La configuración predeterminada de todo el texto del Grub2, para el caso de un grub2 con imagen de fondo, es en un color negro, mientras que para el texto seleccionado el color es en un color magenta.
Si usted desea utilizar otros colores, ya sea por gusto o para poder distinguir el texto del grub2 sobre la imagen de fondo, bastará con editar /etc/grub.d/05_debian_theme. Para este caso las lineas a editar son las siguientes:
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
set color_normal=black/black
set color_highlight=magenta/black
else
EOF
fi
.
.
.Ahora bien, para conseguir un texto color verde y un texto seleccionado de color rojo sería así:
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
set color_normal=green/black
set color_highlight=red/black
else
EOF
fi
.
.
.Además, usted podría editar para que el texto tuviere color de fondo, es decir, como un color de subrayado.
Por ejemplo:
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
set color_normal=red/black
set color_highlight=black/yellow
else
EOF
fi
.
.
.
A usted no le convendría utilizar un color de fondo para todo el texto, ya que esto daría un color de fondo a el recuadro de todo el texto del grub y le impediría ver la imagen de fondo.
Para el caso del color de fondo del texto, el negro, black, es equivalente a no tener color de fondo.
Únicamente se pueden utilizar ciertos colores elementales:
- rojo: red
- verde: green
- azul: blue
- amarillo: yellow
- cian: cyan
- magenta: magenta
- blanco: white
- negro: black
Finalmente bastará con actualizar los cambios:
# update-grub4. Reinstalación
En el caso de instalar o reinstalar un sistema operativo distinto a Debian (por ejemplo, Windows), el MBR (Master Boot Record) es reescrito por el del último sistema instalado, borrándose el GRUB2. Estos son los pasos que debemos seguir para recuperarlo.
Debemos utilizar una distribución en modo LiveCD para instalar nuevamente el GRUB, para lo cual usaremos un LiveCD de una distribución que use GRUB2 como gestor de arranque.
Lo primero que debemos hacer es arrancar el live-cd y abrir una terminal. Despues escribimos lo siguiente para ver las particiones de los distintos discos duros:
# fdisk -lDespues vemos cual es la partición en donde tenemos Debian y la montamos en /mnt (en la mayoría de los casos esta partición será sda1, el ejemplo lo haré con esa partición pero mira cual es tu partición con el comando fdisk):
# mount /dev/sda1 /mntSólo si tienes la partición /boot de forma independiente a la raiz, después de montar el sistema de archivos en /mnt, debes montar también la partición boot con el siguiente comando:
# mount /dev/sda2 /mnt/bootA continuación montamos el resto de los dispositivos:
# mount --bind /dev /mnt/devY ejecutamos el comando chroot de forma que accedemos como root al sistema de archivos de nuestro Debian:
# chroot /mntPor último cargamos el GRUB2 en el MBR ejecutando el siguiente comando:
# grub-install --recheck /dev/sda(sda lo debemos substituir por el disco duro que utilizamos para arrancar los sistemas operativos, casi siempre es sda. Ojo!! no poner el número de partición, solo sda)
Reiniciamos y cuando vuelva a arrancar Debian, podremos ajustar el menú del grub de forma manual, para que nos aparezca en el menú de arranque el sistema operativo que nos borró el MBR, o bien dejar que lo haga él automáticamente con el siguiente comando:
# update-grub5. Referencias
http://www.nongnu.org/pupa/
http://es.wikipedia.org/wiki/GNU_GRUB#Desarrollo
http://meneame.net/story/grub-2-nueva-version-gestor-arranque
http://www.muylinux.com/2009/01/05/nuevo-grub-a-la-vista/
http://www.guia-ubuntu.org/index.php?title=Recuperar_GRUB#Grub_2