Está en la página 1de 9

Gestor de arranque (GRUB)

En todos los discos duros, se reserva un espacio para el MBR (Master Boot Record) o Sector de
Arranque. Esta es la estructura básica, sobre el espacio restante se hacen las particiones, y en ellas
se puede o no instalar un SO (Sistema Operativo).

Cada SO tiene su gestor de arranque, así que cuando instalamos un SO, en el proceso de instalación
se modifica el MBR del disco para que pueda arrancar el SO que hay instalado en la partición x.
En el caso de Windows, ese sector de arranque, solo permite arrancar Windows, sin embargo Linux,
utiliza gestores de arranque que permiten arrancar otros SO’s instalados en el disco, gestores de
arranque como LiLo o Grub.
Funcionamiento de Grub
Como grub es un cargador de arranque, veremos que pasa desde que encendemos el ordenador:
1. Primero la BIOS, enlaza a un dispositivo de arranque, como el HDD o CD-ROM, en el caso
de HDD, se le pasa el control al MBR del Disco.
2. En el MBR se encuentra la Fase 1 del GRUB, ya que el MBR solo tiene 512 bytes de
espacio. La fase 1 carga la siguiente fase del GRUB, que puede encontrarse en cualquier
parte del disco duro.
3. De la fase 1 se puede pasar a la 1.5 o a la fase 2, de todos modos la 1.5 pasa a la 2, así que
obviaremos detalles en esto.
4. La fase 2, que es la que contiene el menú, lo muestra, y una vez el usuario elige la opción,
Grub carga el kernel elegido
De modo que Grub se instala en dos partes, primero en el MBR como ya hemos dicho, y después en
el disco, bien en una partición /boot o bien en la partición / de la distribución linux principal.
En cualquier caso Grub, una vez instalado se encuentra en /boot , y ahí tiene su archivo de
configuración, donde podemos configurar las opciones de arranque.

Como arranca Linux


Para arrancar un SO Linux los pasos son los siguientes:
1. Decirle a Grub la partición en la que se encuentra instalado el SO Linux
2. Iniciar el kernel
Un ejemplo de como cargar un SO Linux, sería el siguiente:
root (hd0,1)
kernel /vmlinuz root=/dev/hda2 ro

Como arranca Windows


Para arrancar un SO Windows seguimos estos pasos:
1. Decirle a Grub la partición en la que se encuentra instalado
2. Hacer la partición Activa
3. Llamara al cargador de arranque Windows
El ejemplo de como cargar un SO Windows, es este:
root (hd0,0)
makeactive
chainloader +1
Interfaz gráfica de GRUB
Carga de GRUB
Al iniciar un ordenador, con GRUB configurado correctamente aparecerá una pantalla similar a
esta:

Configuración del GRUB gráficamente con StartUp Manager

StartUp Manager es una aplicación que permite configurar gráficamente el Grub, el gestor de
arranque del sistema en Ubuntu, y usplash, la pantalla gráfica de carga de Ubuntu.
Con StartUp Manager podremos cambiar el sistema operativo que se carga por defecto, la
resolución del inicio, tiempo de espera o los temas de usplash entre otros.

También podemos establecer fácilmente una contraseña para el Grub.


¿Cómo se instala el StartUp Manager?
Tan sólo debemos descargar el paquete .deb que se encuentra en la siguiente página y hacer doble
clic sobre él cuando termine de bajarse. Aparecerá el gestor de paquete gdebi. Tan sólo tendremos
que pulsar sobre el botón “Instalar el paquete” y ya tendremos el programa instalado .
Archivos esenciales
menu.lst
El archivo de configuración para Grub es el menu.lst, que se encuentra en /boot/grub/.
En este archivo debemos de poner las entradas del menú de Grub, con sus opciones de arranque
correspondiente, además de algunos valores generales.
Los Discos Duros se enumeran desde 0, y las particiones también se enumeran desde 0. Así por
ejemplo para la primera partición del primer disco escribiríamos (hd0,0)
Ejemplo de /boot/grub/menu.lst:
# Configuration General
timeout 5
default 1
color light-blue/black light-cyan/blue

# Entradas del menú


# (0) Arch Linux
title Arch Linux
root (hd0,1)
kernel /boot/vmlinuz26 root=/dev/sda2 ro vga=773
initrd /boot/kernel26.img

# (1) Windows XP
title Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1

grub.cfg
El archivo de configuración para Grub2 es el grub.cfg, que se encuentra en /boot/grub/ .
En el archivo debemos de poner las entradas del menú de Grub2, con sus opciones de arranque
correspondientes, además de algunos valores generales.
Los Discos Duros se enumeran desde 0, sin embargo lasparticiones se enumeran desde 1. Así por
ejemplo para la primera partición del primer disco escribiríamos (hd0,1)
Ejemplo de /boot/grub/gurb.cfg:
# Configuration General
set timeout=5
set default=0

# (0) Arch Linux


menuentry "Arch Linux" {
set root=(hd0,2)
linux /vmlinuz26 root=/dev/sda2 ro
initrd /kernel26.img
}

# (1) Windows
menuentry "Windows" {
set root=(hd0,1)
chainloader +1
}
Solución a problemas básicos con Grub
Como restaurar Grub
A veces no es posible prescindir de Windows, bien por los juegos o por trabajo, pero no todo se
puede hacer en Linux. Pero en Windows es necesario un formateo cada cierto tiempo. Al formatear
Windows, el MBR se reescribe para este, perdiendo Grub en 99% de los casos.
La solución es reinstalar grub, para lo que tendremos que arrancar desde alguna distribución live:
• PartedMagic: Es una distribución Live, ideada para trabajar con particiones.
• GParted Live: Es otra distribución Live, ideada para trabajar con particiones.
• Arch Linux: Es el CD de Instalación de Arch Linux, pero arranca una consola desde la que
podemos trabajar igual.
• Debian: Igual que Arch, es el CD de Instalación de Debian, arranca una consola desde la que
podemos reinstalar grub.
Además prácticamente podemos reinstalar grub desde cualquier CD Linux. Veamos como reinstalar
el Grub.
Ejecutamos el interprete de comandos de grub:
grub

Indicamos la localización de la partición donde se encuentra Grub:


root (hdX,Y)

Instalamos grub en el MBR del Disco.


setup (hdX)

Salimos y reiniciamos, ya está grub reinstalado.


quit

Grub no muestra el menú sino su consola


Este error puede darse tanto en Grub como en Grub 2. Suele darse cuando las ordenes escritas en el
menu.lst o en el grub.cfg no son correctas. En particular cuando no hemos escrito correctamente el
número de disco o partición.
En lugar del menú, aparece el mensaje de debajo.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[Minimal BASH-like line editing is supported. For the first


word, TAB list possible command completions. Anywhere else TAB lists
the possible completitions of a device/filename. ]

grub>

La respuesta es clara, primero pulsamos TAB, así vemos los posibles comandos a ejecutar. Entre
ellos se encuentra cat, con lo que es fácil ver el archivo menu.lst o grub.cfg.
cat /boot/grub/menu.lst
cat /boot/grub/grub.cfg

Con esto podemos ver las ordenes necesarias para el arranque, que en el caso de Linux son root y
kernel . En realidad este paso no es necesario si sabes lo que hay que poner. El cat es solo para
orientarse/recordar comandos.
Una vez vistos basta con escribir los comandos y arrancar el SO Linux, y una vez hecho lo primero
es modificar el archivo de configuración, para no volver a obtener este error.

Errores numerados
Además de estos hay otros errores numerados, aunque la solución a veces es parecida a estos dos
anteriores, siempre viene bien saber el motivo del error.
El arranque de Grub se divide en dos etapas, Stage 1 y Stage 2 cada una de ellas tiene
sus mensajes de error. Listaremos los errores en función de la etapa en la que aparecen:

Stage 1
En esta etapa tan solo se muestra el error y se detiene el sistema:
• Hard Disk Error: No se puede averiguar la geometría ni el tamaño del disco.
• Floppy Error: El error es el mismo que el anterior, pero se refiere a un Diskette.
• Read Error: Error de lectura al intentar pasar a la segunda etapa (stage 2).
• Geom Error: La ubicación en disco del Stage 2 no es accesible mediante llamadas BIOS.
Este error suele deberse a modificaciones en la configuración del disco, ya sea modificar la
tabla de particiones o cmabiar el disco de máquina.

Stage 2
1. Filename must be either an absolute filename or blocklist: El fichero solicitado por grub,
no cumple la sintaxis exigida.
2. Bad file or directory type: El fichero solicitado por grub, no es un archivo regular sino un
enlace simbólico, directorio o pipe (tubería).
3. Bad or corrupt data while decompressing file: Este error aparece cuando la
descompresión devuelve un error. Suele tratarse de un fichero dañado.
4. Bad or incompatible header in compressed file: La cabecera de un fichero comprimido es
incorrecta.
5. Partition table invalid or corrupt: Este error aparece cuando la verificación de la tabla de
particiones falla. A este error hay que temerle.
6. Mismatched or corrupt version of stage1/stage2: Este error se debe a versiones
incompatibles o dañadas de stage1 o stage2.
7. Loading below 1MB is not supported: Aparece cuando la dirección más baja de un núcleo
está por debajo de la cota de 1MB. El formato zImage de Linux es un caso especial, se
puede manejar ya que su dirección de carga es fija y tiene un tamaño máximo.
8. Kernel must be loaded before booting: Si le indicamos a grub que ejecute una secuencia
de arranque sin haberle indicado un núcleo antes, aparece este error.
9. Unknown boot failure: Razones desconocidas.
10.Unsupported Multiboot features requested: A veces las características Multiboot
requieren una característica que no se reconoce. El kernel requiere una gestión especial que
Grub no tiene.
11.Unrecognized device string: Se espera un nombre de dispositivo y el texto encontrado no
cumple las reglas de nombres de dispositivos.
12.Invalid device requested: El nombre de dispositivo es válido pero tiene un error en otro
sitio.
13.Invalid or unsupported executable format: La imagen del núcleo no se reconoce como
multiboot o alguno de los formatos reconocidos.
14.Filesystem compatibility error, cannot read whole file: Algún Sistema de Archivos de los
que tiene que leer Grub, tiene una limitación en el tamaño de lectura. Se corrige eliminando
dicho límite.
15.File not found: No se encuentra el archivo solicitado, pero la ruta es correcta.
16.Inconsistent filesystem structure: Error en la estructura del sistema de archivos. Suele
deberse a un Sistema de Archivos dañado
17.Cannot mount selected partition: La partición existe, pero Grub no la reconoce.
18.Selected cylinder exceeds maximum supported by BIOS: La lectura intenta ir más allá
del área direccionada por la BIOS. El error aparece cuando se intentan leer bloques lineales.
Suele aparecer en discos IDE de gran tamaño.
19.Linux kernel must be loaded before initrd: El error se debe a que hemos puesto initrd
antes que kernel.
20.Multiboot kernel must be loaded before modules: El error se debe a que hemos cargado
módulos antes de cargar un núcleo Multiboot.
21.Selected disk does not exist: El disco refereido no está presente o no se reconoce por la
BIOS.
22.No such partition: No existe la partición específica.
23.Error while parsing number: Grub espera leer un número y encuentra datos incorrectos.
24.Attempt to access block outside partition: La dirección lineal del bloque está fuera de la
partición. Se debe a daños en el sistema de Archivos o a algún bug detectado por Grub.
25.Disk read error: Se ha producido un error de lectura en el disco.
26.Too many symbolic links: Demasiados enlaces simbólicos. El máximo son 5. Puede ser
que los enlaces tengan un bucle.
27.Unrecognized command: Cuando introducimos un nombre de orden no reconocido por
Grub. Puede tratarse de un error al escribir.
28.Selected item cannot fit into memory: Aparece cuando tratamos de cargar en memoria
algo que no cabe.
29.Disk write error: Este error se produce cuando grub intenta escribir en disco. Esto solo
puede ocurrir durante la instalación o con la orden makeactive.
30.Invalid argument: Algún argumento de alguna orden es incorrecto.
31.File is not sector aligned: Cuando se accede a una partición ReiserFS. Se debe montar la
partición con la opción ‘notail’.
32.Must be authenticated: Se trata de acceder a un arranque protegido por contraseña. Hay
que introducir una contraseña válida.
33.Serial device not configured: Se intenta cmabiar el terminal a uno serie, pero no se ha
activado ningún dispositivo serie.
34.No spare sectors on the disk: Cuando no queda espacio libre. Si se intenta entrar en los
sectores no usados tras el MBR, pero la partición primera empieza justo después del MBR.

También podría gustarte