Saltar al contenido

Todo sobre el GRUB

Hola. Gracias al excelente trabajo de Gabriel Muñoz en el foro de Ubuntu.es he conseguido toda esta información del GRUB. Cómo instalar, modificar y todo su funcionamiento al completo. Si queréis ver el archivo original está aquí. Nota, el artículo está algo desactualizado, puede que alguna cosa no esté ya en uso.

El GRUB

Antes de que Linux pueda iniciar el sistema, se le debe indicar que para el arranque utilice una serie de instrucciones especiales que se encuentran en un gestor de arranque, un código existente en el disco duro principal u otro dispositivo de soporte que tenga información sobre cómo arrancar el kernel de Linux.

GNU GRUB (GRand Unified Bootloader) es un programa que instala un gestor de arranque en el registro MBR, que existe al principio de los sectores de un disco. Le permite insertar instrucciones específicas en el MBR que carga un entorno de comandos o menú de GRUB para así poder iniciar el sistema operativo que elija, transferir instrucciones especiales a los kernels durante el arranque o conocer parámetros del sistema (como la memoria RAM disponible) antes de arrancar.

Proceso de arranque en un sistema x86

Cuando se arranca por primera vez un equipo x86, la BIOS del sistema comprueba determinados parámetros del sistema, como la cantidad de RAM de la máquina, la fecha y la hora, los dispositivos de disco presentes y el orden en que estos dispositivos deben comprobarse para los medios de arranque. Normalmente, la BIOS está configurada para comprobar la unidad de disquete o de CD-ROM (o ambas) del equipo antes de intentar arrancar desde el disco duro. Si no se encuentran medios de arranque en estos dispositivos extraíbles, la BIOS accede a los primeros sectores del disco duro principal para obtener instrucciones sobre dónde buscar y cargar un sistema operativo. Estos primeros sectores, normalmente denominados MBR, inician el proceso de arrancar un sistema operativo preseleccionado, un menú GRUB con las opciones del sistema operativo o una interfaz de línea de comandos GRUB para ejecutar opciones especiales.

El proceso de cargar GRUB y luego el sistema operativo implica las siguientes fases:

Carga del gestor de arranque principal, normalmente denominado Nivel 1.

El gestor de arranque principal debe existir en el pequeño espacio asignado para el registro MBR, que es inferior a 512 bytes. Por tanto, la única acción que el gestor de arranque principal realiza es cargar el gestor de arranque secundario, ya que no hay suficiente espacio en el MBR para nada más.

Carga del gestor de arranque secundario, normalmente denominado Nivel 2.

El gestor de arranque secundario realmente presenta las funciones avanzadas con las que podrá cargar un sistema operativo específico. En GRUB, este es el código que le permite mostrar un menú o escribir comandos.

Carga del sistema operativo, como el kernel de Linux, en una partición concreta.

Una vez que GRUB ha recibido las instrucciones correctas para arrancar el sistema operativo, bien de la propia línea de comandos o del archivo de configuración, busca el archivo de arranque necesario y cede el control del equipo a dicho sistema operativo.

Algunos sistemas de archivos y las respectivas configuraciones pueden requerir un archivo Nivel 1.5 que actúe como puente entre los gestores de arranque primario y secundario.

Por ejemplo, si el archivo del gestor de arranque del Nivel 2 se encuentra en una partición que usa un sistema de archivos al que no puede tener acceso el gestor de arranque del Nivel 1, se puede indicar al gestor de arranque del Nivel 1 que cargue instrucciones adicionales del archivo Nivel 1.5 para que se pueda leer el archivo del gestor de arranque del Nivel 2.

Este método de arranque se denomina carga directa, porque se utilizan instrucciones para cargar directamente el sistema operativo sin ningún código intermedio entre los gestores de arranque y los archivos principales del sistema operativo (como el kernel). No obstante, el proceso de arranque puede variar ligeramente del que se ha descrito anteriormente dependiendo del sistema operativo que se utilice. Por ejemplo, los sistemas operativos DOS y Windows de Microsoft tienden a sobrescribir totalmente la información del registro MBR cuando se instalan sin incorporar ningún dato de la configuración del MBR actual. Esto destruye cualquier otra información que otro sistema operativo, como Linux, haya almacenado en el MBR. Los sistemas operativos de Microsoft y otros con propiedad registrada se cargan mediante el método de arranque carga de encadenamiento. Con este método, el registro MBR simplemente señala al primer sector de la partición que contiene el sistema operativo, donde se encuentran los archivos necesarios para arrancar realmente el sistema operativo.

GRUB admite el uso de estos dos métodos de arranque con la mayoría de los sistemas operativos, los sistemas de archivos más conocidos y prácticamente cualquier disco duro que la BIOS pueda reconocer.

Funciones de GRUB

GRUB contiene una serie de funciones que lo convierten en el método favorito respecto al resto de gestores de arranque disponibles. Entre ellas, las más importantes son las siguientes:

GRUB proporciona un entorno pre-OS basado en comandos verdaderos para máquinas x86, que aporta la máxima flexibilidad para cargar sistemas operativos con determinadas opciones o recopilar información sobre el sistema.

Muchas arquitecturas no basadas en x86 han usado entornos pre-OS durante años que le permiten controlar cómo se arranca el sistema desde una línea de comandos. Aunque algunas funciones de comando están disponibles en LILO y en otros gestores de arranque para x86, GRUB ofrece un número mayor de funciones.

GRUB admite el modo Direccionamiento Lógico de Bloques (LBA).

El modo LBA inserta la conversión de direccionamiento utilizada para buscar archivos en la unidad del firmware de la unidad y se utiliza en muchos discos IDE y en todos los discos duros SCSI. Antes del modo LBA, los discos duros podían encontrar un límite de 1024 cilindros, pero la BIOS no era capaz de encontrar un archivo situado más allá de este límite, como un gestor de arranque o archivos del kernel. El modo LBA permite que GRUB arranque los sistemas operativos desde particiones con un límite superior a 1024 cilindros, siempre y cuando la BIOS admita el modo LBA (la mayoría lo aceptan).

El archivo de configuración de GRUB se lee desde el disco cada vez que se arranca el sistema, lo cual evita el tener que sobrescribir el registro MBR cada vez que se cambian las opciones de arranque.

La mayoría de los gestores de arranque no son lo suficientemente sofisticados para leer los archivos de configuración y utilizarlos a la vez para configurar las opciones de arranque. Por ejemplo, para cambiar una configuración de arranque de LILO, como cambiar el sistema operativo de arranque por defecto, deberá modificar el archivo de configuración de LILO y ejecutar un comando que sobrescriba el registro MBR del sistema con los datos de la nueva configuración. Esto es más arriesgado que el método de GRUB, ya que un registro MBR mal configurado podría dejarle con un sistema sin arranque. Con GRUB, si configura incorrectamente el archivo de configuración y rearranca el sistema, se mostrará una línea de comando en la que podrá escribir manualmente los comandos para lanzar el sistema operativo. El MBR permanece inalterado, excepto para actualizar el Nivel 1, Nivel 2 o las ubicaciones de los archivos de configuración del menú, lo cual no es necesario en la mayoría de los casos.

Cuando se realizan cambios en el archivo de configuración de GRUB, no es necesario reiniciar GRUB. Los cambios efectuados se detectan automáticamente. Si reinicia GRUB, se presentará el shell GRUB de línea de comandos.

Instalación de GRUB

Si durante el proceso de instalación de Linux no instaló GRUB, a continuación le describimos cómo hacerlo y cómo convertirlo en el gestor de arranque por defecto.

Si ya utiliza LILO como gestor de arranque, no tendrá que eliminarlo para poder usar GRUB. Una vez instalado, GRUB se convertirá en el gestor de arranque por defecto del sistema.

En primer lugar, asegúrese de que tiene el paquete más actualizado de GRUB. También puede utilizar el paquete de GRUB que hay disponible en los discos CD-ROM de instalación del sistema Linux.

A continuación, ejecute el comando /sbin/grub-install <ubicación> desde el indicador de comandos de shell, donde <ubicación> es la ubicación en la que se instalará GRUB, por ejemplo, /dev/hda1.

Cuando rearranque el sistema, verá el gestor de arranque GRUB.

Terminología

Una de las cuestiones más importantes que deben entenderse antes de utilizar GRUB es cómo el programa hace referencia a los dispositivos, por ejemplo, a los discos duros y a las particiones. Esta información es muy importante si desea configurar GRUB para arrancar varios sistemas operativos.

Nombres de dispositivos

GRUB denominará al primer disco duro de un sistema (hd0). A la primera partición de dicho disco, le denominará (hd0,0) y a la quinta partición del segundo disco duro (hd1,4). En general, la nomenclatura utilizada para los sistemas de archivos al usar GRUB se desglosa del siguiente modo:

(<tipo-de-dispositivo><número-dispositivo-bios>,<número-partición>)

Los paréntesis y las comas son muy importantes en el nombre. <tipo-de-dispositivo> hace referencia a si es un disco duro (hd) o una unidad de disquete (fd).

<número-dispositivo-bios> es el número de dispositivo según la BIOS del sistema, empezando desde 0. El disco duro IDE principal tiene asignado el número 0 y el disco duro IDE secundario el número 1. El orden es aproximadamente equivalente al modo en el que el kernel de Linux organiza los dispositivos con letras, donde la letra a en hda corresponde al número 0, y la letra b en hdb corresponde al número 1, y así sucesivamente.

Recuerde que el sistema de numeración de GRUB para los dispositivos empieza por 0 y no por 1. Este es uno de los errores que cometen con más frecuencia los usuarios que empiezan a utilizar GRUB.

<número-partición> hace referencia al número de una partición concreta en dicho dispositivo. Al igual que en el caso de <número-dispositivo- bios>, la numeración de las particiones empieza por 0. Aunque la mayoría de las particiones se especifican con números, si el sistema usa particiones BSD a éstas se hará referencia con letras, por ejemplo a o c.

GRUB usa las reglas siguientes para denominar a los dispositivos y a las particiones:

No es relevante si los discos duros que utiliza son IDE o SCSI. Todos los discos duros empiezan con hd o sd. Las unidades de disquete empiezan con fd.

Para especificar todo un dispositivo sin respetar sus particiones, simplemente debe suprimir la coma y el número de partición. Esto es importante para indicarle a GRUB que configure el registro MBR para un disco concreto. Por ejemplo, (hd0) indica el primer dispositivo y (hd3) representa al cuarto dispositivo.

Si tiene varios discos duros, es muy importante saber su orden según la BIOS. Esto es muy sencillo si sólo tiene discos IDE o SCSI, pero si tiene una combinación de ambos, el asunto se complica un poco.

Nombres de archivos

Al escribir comandos en GRUB que hagan referencia a un archivo, como una lista de menús que debe usarse para permitir el arranque de varios sistemas operativos, debe incluir el archivo inmediatamente después de especificar el dispositivo y la partición. Una especificación de archivo de ejemplo que haga referencia a un nombre de archivo absoluto se organiza del modo siguiente:

(<tipo-de-dispositivo><número-dispositivo-bios>,<número-partición>)/ruta/a/archivo

La mayoría del tiempo, deberá especificar archivos mediante su ruta en esta partición y el nombre de archivo. Esto es bastante sencillo.

También puede especificar archivos a GRUB que no aparecen realmente en el sistema de archivos, como un gestor de encadenamiento que se muestra en los primeros bloques de una partición. Para especificar estos archivos, deberá indicar una lista de bloques, que indique a GRUB, bloque por bloque, la ubicación exacta del archivo en la partición. Puesto que un archivo puede estar formado por varios conjuntos de bloques, hay un modo específico de escribir listas de bloques. Cada ubicación de sección de archivo se describe con un número de compensación de bloques seguido de un número de bloques de ese punto de compensación, y las secciones se colocan juntas de forma ordenada y separadas por comas.

Por ejemplo:

0+50,100+25,200+1

Esta lista de bloques indica a GRUB que debe utilizar un archivo que empieza en el primer bloque de la partición y que usa los bloques del 0 al 49, del 99 al 124, y el 199.

Saber cómo escribir listas de bloques es útil al utilizar GRUB para cargar sistemas operativos que usan el método de carga de encadenamiento, como Microsoft Windows. Puede suprimir el número de compensación de bloques si empieza por el bloque 0. Por ejemplo, el archivo de carga de encadenamiento de la primera partición del primer disco duro tendrá el nombre siguiente:

(hd0,0)+1

También puede usar el comando chainloader con una designación de lista de bloques similar en la línea de comandos de GRUB después de establecer el dispositivo correcto y la partición adecuada como raíz:

chainloader +1

Sistema de archivos raíz de GRUB

Algunos usuarios se confunden con el uso del término “sistema de archivos” en GRUB. Es importante recordar que el sistema de archivos raíz de GRUB no tiene nada que ver con el sistema de archivos raíz de Linux.

El sistema de archivos raíz de GRUB es la partición raíz de un dispositivo concreto. GRUB usa esta información para montar el dispositivo y carga los archivos desde él, entre otras cosas.

Con Linux, una vez que GRUB ha cargado la partición raíz que contiene el kernel de Linux, se puede ejecutar el comando kernel con la ubicación del archivo del kernel como una opción. Una vez arrancado el kernel de Linux, GRUB establece su propio sistema de archivos raíz, que es el que la mayoría de los usuarios asocian con Linux. El sistema de archivos raíz de GRUB original y los montajes deben olvidarse en este punto. El único fin de su existencia era arrancar el archivo del kernel.

Interfaces

GRUB dispone de tres eficaces interfaces que proporcionan distintos niveles de funciones. Cada una de estas interfaces le permite arrancar el sistema operativo e incluso pasar de una interfaz a otra dentro del entorno de GRUB.

Interfaz de menú

Si el programa de instalación de Linux ha configurado automáticamente GRUB, ésta es la interfaz que ya conoce. En esta interfaz hay un menú de sistemas operativos o kernels preconfigurados con sus propios comandos de arranque en forma de lista ordenada por nombre, después de arrancar el sistema por primera vez. Puede utilizar las teclas de flecha para seleccionar una opción en lugar de la selección por defecto y pulsar la tecla [Intro] para arrancar el sistema. Como alternativa, se puede establecer un período de inactividad, de modo que GRUB inicie la carga de la opción por defecto.

Desde la interfaz de menú, también puede pulsar la tecla [e] para modificar los comandos de la entrada del menú resaltado o la tecla [c] para pasar a la interfaz de línea de comandos.

Interfaz del editor de entrada de menú

Para tener acceso a esta interfaz, debe pulsar la tecla [e] en la interfaz de menú. Los comandos de GRUB de dicha entrada se muestran aquí y puede alterar estas líneas de comandos antes de arrancar el sistema operativo si agrega ([o] después de la línea actual; [O] antes de la línea actual), modifica ([e]) o elimina ([d]) las líneas.

Una vez realizados los cambios y cuando las líneas tengan el aspecto deseado, puede pulsar la tecla [b] para ejecutarlas y arrancar el sistema operativo. Con la tecla [Esc] se omiten los cambios y el usuario vuelve a la interfaz de menú estándar. Con la tecla [c] se obtiene acceso a la interfaz de línea de comandos.

Interfaz de línea de comandos

Esta es la interfaz de GRUB más básica, pero también la que proporciona un mayor control. En esta interfaz puede escribir cualquier comando de GRUB seguido de la tecla [Intro] para proceder a la ejecución correspondiente. Esta interfaz cuenta con algunas funciones similares a las de shell avanzadas, como autocompletar con la tecla [Tab] según el contexto y las combinaciones de teclas con [Ctrl] al escribir comandos, por ejemplo, [Ctrl]-[a] para ir al principio de una línea, y [Ctrl]-[e] para ir al final de una línea. Además, la teclas de flecha, [Inicio], [Fin] y [Supr] funcionan de forma similar al comando bash de shell.

Orden de uso de interfaces

Cuando el entorno de GRUB se arranca al cargar el gestor de arranque del Nivel 2, busca el archivo de configuración correspondiente. Cuando lo encuentra, lo utiliza para crear la lista de menú de los sistemas operativos para arrancar y lleva al usuario a la interfaz de menú.

Si no puede encontrar el archivo de configuración o si éste no se puede leer, GRUB lleva al usuario a la interfaz de línea de comandos para que pueda escribir manualmente los comandos necesarios para arrancar un sistema operativo.

En el caso de que el archivo de configuración no sea válido, GRUB imprimirá el error y solicitará la introducción de valores. Esto puede ser muy útil, porque podrá ver con exactitud donde está el problema y corregirlo en el archivo. Si pulsa cualquier tecla, tendrá acceso a la interfaz de menú, donde podrá modificar la opción de menú y corregir el problema según el error que GRUB haya notificado. Si la corrección falla, el error se notifica y puede empezar de nuevo.

Mensajes de error de GRUB

El arranque de GRUB se divide en dos etapas, Nivel (Stage) 1 y Nivel (Stage) 2 y cada una de ellas tiene sus mensajes de error.

En general, los errores en Nivel 1 se limitan a mostrar un error y detener el sistema

Los errores en Nivel 2 interrumpen la operación, muestran un mensaje y si es posible continúa con la operación, por ejemplo solicitando al usuario que lo corrija.

Hard Disk Error: El intento de lectura del disco no permite averiguar su geometría y su tamaño.

Floppy Error :Es el mismo error anterior, pero se indica de forma separada por el orden de comprobación.

Read Error: Error de lectura al intentar leer Nivel 2:

Geom Error: La ubicación en disco de Nivel 2 no está en la parte del disco accesible mediante llamadas al BIOS. Puede deberse a que hayamos modificado la configuración del disco, o que hayamos cambiado el disco de máquina o que GRUB no esté bien instalado.

1 : Filename must be either an absolute filename or blocklist: Este error se origina cuando un nombre de archivo solicitado por GRUB no verifica la sintaxis adecuada.

2 : Bad file or directory type: Este error se origina cuando un archivo solicitado por GRUB no es un archivo regular sino un enlace simbólico, un directorio o una tubería con nombre.

3 : Bad or corrupt data while decompressing file: Este error se origina cuando el código de descompresión devuelve un error. Normalmente se trata de un archivo dañado.

4 : Bad or incompatible header in compressed file: Este error se origina cuando la cabecera de un archivo comprimido es incorrecta

5 : Partition table invalid or corrupt: Este error se origina cuando verificación del estado de la tabla de particiones falla.

6 : Mismatched or corrupt version of stage1/stage2: Este error se origina cuando la orden de instalación apunta a versiones incompatibles o dañadas de Nivel 1 o Nivel 2. En general no puede detectar los daños y en este caso sólo se trata de los números de versión.

7 : Loading below 1MB is not supported: Este error se origina 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 y se puede manejar ya que tiene una dirección de carga fija y tamaño máximo.

8 : Kernel must be loaded before booting: Este error se origina si le decimos a GRUB que ejecute una secuencia de arranque sin haber indicado un núcleo.

9 : Unknown boot failure: Este error se origina por razones desconocidas.

10 : Unsupported Multiboot features requested: Este error se origina cuando las características Multiboot requieren una característica que no se reconoce. El núcleo requiere una gestión especial que GRUB probablemente no tiene.

11 : Unrecognized device string: Este error se origina cuando se espera un nombre de dispositivo y el texto encontrado no cumple las reglas de nombres de dispositivos.

12 : Invalid device requested: Este error se origina cuando un nombre dispositivo es válido y tiene un error no contemplado en otro error.

13 : Invalid or unsupported executable format: Este error se origina cuando la imagen del núcleo cargada no se reconoce como Multiboot o alguno de los formatos nativos admitidos : Linux zImage o bzImage, FreeBSD o NetBSD.

14 : Filesystem compatibility error, cannot read whole file: Alguno de los sistema de archivo que tiene que leer GRUB tiene limitado el tamaño de lectura de archivos. Se corrige eliminado el límite.

15 : File not found: Este error se origina cuando uno se puede encontrar un archivo solicitado, pero la ruta de acceso es correcta.

16 : Inconsistent filesystem structure: Este error lo devuelve el sistema de archivos para indicar un error interno debido al estado de la estructura del sistema de archivos que no encaja con lo previsto. Puede deberse a un sistema de archivos dañado o algún bug de GRUB para manejar ese sistema de archivos

17 : Cannot mount selected partition: Este error se origina cuando una partición existe pero GRUB no la reconoce.

18 : Selected cylinder exceeds maximum supported by BIOS: Este error se origina cuando una lectura intenta ir más allá del área direccionada por el BIOS. Este error se origina cuando se trata de leer bloques lineales. Este problema lo podemos encontrar en discos (E)IDE mayores 512MB o de 8GB en máquinas antiguas.

19 : Linux kernel must be loaded before initrd: Este error se origina cuando ponemos initrd antes que kernel.

20 : Multiboot kernel must be loaded before modules: Este error se origina cuando la orden de carga de módulos se usa antes que de cargar un núcleo Multiboot. Sólo tiene sentido en este caso ya que GRUB no tiene idea de como comunicar la presencia de tales módulos a un núcleo que no sea Multiboot-aware.

21 : Selected disk does not exist: Este error se origina cuando o todo o parte un nombre de dispositivo referido a disco o dispositivo BIOS no está presente o no se reconoce por la BIOS en el sistema.

22 : No such partition: Este error se origina cuando no existe la partición especificada

23 : Error while parsing number: Este error se origina si GRUB espera leer un número y encuentra datos incorrectos.

24 : Attempt to access block outside partition: Este error se origina cuando una dirección lineal de bloque está fuera de la partición. Normalmente se debe 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 número máximo es 5. Es posible que los enlaces tengan un bucle

27 : Unrecognized command: Este error se origina cuando introducimos un nombre de orden no reconocido por GRUB. Puede tratarse de un error al escribir.

28 : Selected item cannot fit into memory: Este error se origina cuando tratamos da cargar algo en memoria y no cabe.

29 : Disk write error: Error producido cuando GRUB trataba de escribir en disco. Normalmente sólo puede ocurrir durante la instalación o con la orden makeactive.

30 : Invalid argument: Este error se origina cuando el argumento para alguna orden es incorrecto.

31 : File is not sector aligned: Este error se origina cuando accede a una partición ReiserFS por lista de bloques (v.g. la orden `install’). En este caso debería montar la partición con la opción `notail’.

32 : Must be authenticated: Este error se origina cuando se trata de acceder a un arranque con “lock”. Se debe introducir una contraseña válida.

33 : Serial device not configured: Este error se origina cuando trata de cambiar el terminal a uno serie pero no se ha activado ningún dispositivo serie

34 : No spare sectors on the disk: Este error se origina cuando no queda espacio libre. Sucede intenta introducir Nivel (Stage) 1.5 en los sectores no utilizados tras el MBR, pero la primera partición comienza justo tras el MBR o los está usando EZ-BIOS.

Comandos

GRUB contiene varios comandos que se pueden ejecutar de forma interactiva en la interfaz de línea de comandos. Algunos de los comandos aceptan opciones después del nombre y estas opciones deben ir separadas del comando por comas y de otras opciones de esa línea por caracteres de espacio.

En la lista siguiente se indican los comandos más útiles:

boot – Arranca el sistema operativo o gestor de encadenamiento que se ha especificado y cargado previamente.

chainloader <nombre-archivo> – Carga el archivo especificado como gestor de encadenamiento. Para extraer el archivo en el primer sector de la partición especificada, puede utilizar +1 como nombre de archivo.

displaymem – Muestra el uso actual de memoria, en función de la información de la BIOS. Esto es útil si no está seguro de la cantidad de RAM que tiene un sistema y todavía tiene que arrancarlo.

initrd <nombre-archivo> – Le permite especificar un disco RAM inicial para utilizarlo al arrancar. Esto es necesario si el kernel precisa ciertos módulos para arrancar correctamente.

install <nivel-1> <instalar-disco> <nivel- 2> p <archivo-configuración> – Instala GRUB en el registro MBR. Esto permite que las interfaces de GRUB se muestren al rearrancar el sistema.Este comando sobrescribirá cualquier información del MBR. Si se ejecuta, cualquier herramienta utilizada para arrancar el sistema operativo que no sea GRUB se perderá.Asegúrese de conocer con exactitud lo que está haciendo antes de ejecutar este comando.

Este comando se puede configurar de distintas maneras. Sin embargo, debe especificar el valor <nivel- 1>, que representa un dispositivo, una partición y un archivo donde se puede encontrar la imagen del gestor de arranque principal, por ejemplo (hd0,0)/GRUB/stage1. Además, debe especificar el disco en el que el gestor de arranque del Nivel 1 deberá instalarse, por ejemplo (hd0).

La sección <nivel-2> indica al gestor de arranque del Nivel 1 la ubicación del gestor de arranque del Nivel 2, por ejemplo (hd0,0)/GRUB/stage2. La opción p Indica al comando install que se ha especificado un archivo de configuración en la sección <archivo- configuración>, por ejemplo (hd0,0)/GRUB/GRUB.conf.

kernel <nombre-archivo-kernel> <opción-1> <opción- N> – Especifica el archivo kernel que debe cargarse desde el sistema de archivos raíz de GRUB cuando se usa la carga directa para arrancar el sistema operativo. Las opciones pueden ir seguidas del comando kernel, que se transferirá al kernel al cargarse.

Para el sistema Linux, es probable que tenga una línea similar a la siguiente:

kernel /vmlinuz root=/dev/hda5

Esta línea especifica que el archivo vmlinuz se carga desde un sistema de archivos raíz de GRUB, por ejemplo, (hd0,0). También se transfiere una opción al kernel que especifica que el sistema de archivos raíz del kernel del Linux debe encontrarse, al cargarse, en hda5,la quinta partición en el primer disco duro IDE. Después de esta opción se pueden insertar varias opciones, si es necesario.

root <dispositivo-y- partición> – Configura la partición raíz de GRUB para que sea el dispositivo y la partición concreta, por ejemplo, (hd0,0), y monta la partición de modo que se puedan leer los archivos.

rootnoverify <dispositivo-y- partición> – Realiza la misma función que el comando root, pero sin montar la partición.

Hay otros comandos disponibles aparte de los indicados. Escriba info GRUB para obtener una lista completa de todos los comandos.

Archivo de configuración de menú

El archivo de configuración, usado para crear la lista en la interfaz de menú de GRUB de los sistemas operativos para el arranque, básicamente permite al usuario seleccionar un grupo predefinido de comandos para su ejecución. Pueden utilizarse los comandos que se indicaron, así como algunos comandos especiales que sólo se pueden usar en el archivo de configuración.

Comandos especiales del archivo de configuración

Los comandos siguientes sólo pueden usarse en el archivo de configuración de menú de GRUB:

  • color <color-normal> <color-seleccionado> – Le permite configurar los colores específicos que se usarán en el menú. Los dos colores se configuran como color de fondo y de primer plano. Puede usar simplemente los nombres de colores, como red/black. Una línea de ejemplo sería similar a la siguiente:
color red/black green/blue
  • default <nombre-título> – Nombre del título por defecto de la entrada que se cargará si se supera el tiempo de actividad de la interfaz de menú.
  • fallback <nombre-título> – Si se utiliza, el nombre de título de la entrada que deberá probarse si falla el primer intento.
  • hiddenmenu – Si se utiliza, no se podrá mostrar la interfaz de menú de GRUB ni cargar la entrada default si caduca el período timeout. El usuario puede ver el menú estándar de GRUB si pulsa la tecla [Esc].
  • password <contraseña> – Si se utiliza, el usuario que no conozca la contraseña no podrá modificar las entradas de esta opción de menú.
    Opcionalmente, puede especificar un archivo de configuración de menú alternativo después de la <contraseña>,de modo que, si se conoce la contraseña, GRUB reiniciará el Nivel 2 del gestor de arranque y utilizará este archivo de configuración alternativo para crear el menú. Si se omite este archivo alternativo del comando, el usuario que sepa la contraseña podrá modificar el archivo de configuración actual.
  • timeout – Si se utiliza se establece la cantidad de tiempo, en segundos, antes de que GRUB cargue la entrada designada por el comando default.
  • splashimage – Especifica la ubicación de la imagen de pantalla splash que se utilizará al arrancar.
  • title – Establece el título que se utilizará con un grupo de comandos concreto para cargar un sistema operativo.
  • El carácter # se puede usar para insertar comentarios en el archivo de configuración de menú.
  • Estructura del archivo de configuración
  • Los comandos que establecen las preferencias globales de la interfaz de menú de GRUB se encuentran en la parte superior del archivo, seguidos de otras entradas con las que se arrancan cada uno de los sistemas operativos.
  • El aspecto de un archivo de configuración de menú de GRUB muy básico que permita arrancar el sistema Linux o Microsoft Windows XP puede ser el siguiente:
default linux
timeout 10
color green/black light-gray/blue
# section to load linux
title linux
root (hd0,1)
kernel /vmlinuz root=/dev/hda5
boot
# section to load Windows XP
title windows xp
rootnoverify (hd0,0)
chainloader +1

Este archivo indicará a GRUB que cree un menú con Linux sistema operativo por defecto y que establezca un arranque automático después de transcurridos 10 segundos. Se proporcionan dos secciones, una para cada entrada de sistema operativo, con comandos específicos para la tabla de partición de cada sistema.

5 comentarios en «Todo sobre el GRUB»

  1. Tengo 2 particiones en mi disco duro sata, uno para ubuntu y el otro para windows7; funciono bien por varios meses. Ahora que trato de acceder al W7 me da el error 13, mientras que a ubuntu si tengo acceso. Que debo hacer ? ayuda

  2. Pues si tienes a partir de Ubuntu 10.04, abre la terminal y escribe ‘ sudo update-grub’. Con eso se te debería solucionar. De todas formas si te vuelve a dar problemas avísame.

  3. hola,
    formatee mi disco duro con otra pc y ya no tiene ningun sistema operativo, pero me sale un error de grub y me dice grub rescue… quisiera saber si existe una manera de quitar grub del sisteman de arranque, porque no me deja nisiquiera hacer boot en un disco de instalacion de windows…. porfavor ayuda estoi desesperado ya no se que hacer… no deja q mi unidad de discos lea ningun disco…

    se te agradece tu ayuda.

  4. hola tengo un problema, instale el debina 7.0 y ya tenia instalado el windows xp cuando prendo el computador me sale el menu de grub y cuando selecciono cualquiera de los 2 sistemas ya sea debian o windows el computador se reinicia y me sale nuevamente el menu de grub y si me carga el sistema operativo no se porque me sale eso, por favor quien me pueda ayudar se lo agredecere porque siempre me sale que windows no arranco normalmente y creo que se me puede dañar algun archivo de arranque

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.