[Top] | [Contents] | [Index] | [ ? ] |
Esta es la documentación del gestor de arranque GNU GRUB (Grand Unified Bootloader), un programa flexible y potente para arrancar PCs.
Este documento fue modificado del original para uso de Linux-Cuba.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
1.1 Que es GRUB exactamente y como se usa 1.2 Historia de GRUB De gusano a mosca común 1.3 Características de GRUB 1.4 El papel de un gestor de arranque
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Dicho brevemente, el gestor de arranque es el primer programa que se ejecuta al arrancar un ordenador. El tiene la tarea de cargar y de transferir el control al núcleo del sistema operativo (como por ejemplo el núcleo de Linux o de GNU Hurd). El núcleo a su vez inicia el resto del sistema operativo (por ejemplo, el sistema GNU).
GNU GRUB is un gestor de arranque muy potente, capaz de arrancar un amplio abanico de sistemas operativos libres, así como sistemas operativos "en propiedad" a través del arranque en cadena(1). GRUB está diseñado para hacer frente a la complejidad de arrancar un ordenador personal; tanto el programa como este manual están restringidos a esa plataforma de ordenadores, aunque la adaptación a otras plataformas puede ser considerada en el futuro.
Una de las facetas importantes de GRUB es su flexibilidad; GRUB entiende sistemas de ficheros y formatos ejecutables del núcleo, así que te permite arrancar un sistema operativo cualquiera, de la manera que quieras, sin necesidad de saber la posición física del núcleo en el disco.
Así, por ejemplo, puedes arrancar el núcleo simplemente especificando el nombre del archivo y el disco (y la partición) donde se encuentra. Para que GRUB conozca estos datos, los puedes teclear a mano usando la interfaz de la línea de órdenes (mirar sección 12.1 La flexible interfaz de línea de órdenes), o usando la interfaz del menú (mirar sección 12.2 La sencilla interfaz de menú) a través de la cual puedes seleccionar fácilmente que SO arrancar. GRUB obtiene el menú de un fichero de configuración (mirar sección 5. Configuración) que tú puedes crear para personalizar el menú. Hacemos notar que no sólo puedes entrar a la línea de órdenes cuando quieras, sino que también puedes editar entradas específicas del menú antes de usarlas.
En los capítulos siguientes, aprenderás paso a paso como comunicar a GRUB un disco o una partición, y un nombre de archivo (mirar sección 2. Nomenclatura), cómo instalar GRUB en el disco (mirar sección 3. Instalación), y cómo arrancar tus sistemas operativos.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB empezó en 1995, cuando Erich Boleyn intentaba arrancar GNU Hurd con el micronúcleo Mach 4 (ahora llamado GNU Mach) de la universidad de Utah. Eric y Brian Ford diseñaron la Especificación Multiarranque (mirar sección `Motivation' in The Multiboot Specification), con el propósito de no incrementar el gran número de métodos de arranque de PC incompatibles entre sí ya existentes.
Más adelante, Erich comenzó a modificar el gestor de arranque de FreeBSD para que pudiera entender el Multiarranque. Pronto se dio cuenta de que resultaría bastante más sencillo escribir su propio gestor desde cero que continuar trabajando sobre el gestor de arranque de FreeBSD. Así nació Grub.
Erich añadió muchas características a GRUB, pero otras prioridades evitaban que pudiera satisfacer las peticiones de la creciente base de usuarios de GRUB. En 1999, Gordon Matzigkeit y Yoshinori K. Okuji adoptaron GRUB como proyecto GNU oficial, abriendo el desarrollo mediante la creación de un CVS anónimo con el código fuente más reciente. mirar sección B. Como obtener y compilar GRUB, para más información.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La condición más importante que cumple GRUB es que obedece la Especificación Multiarranque, tal y como se describe en section `Motivation' in The Multiboot Specification.
El resto de los objetivos, en orden aproximado de importancia, son:
Todos los núcleos se arrancan en más o menos el mismo estado que describe la Especificación Multiarranque, a excepción de los modos específicos de compatibilidad (como arranque en cadena o el formato piggyback de Linux). En la actualidas, sólo están soportados los núcleos que se cargan a la altura o por encima de 1 megabyte. Cualquier intento de carga por debajo de ese límite simplemente fallará de inmediato con un mensaje de error notificando el problema.
Además de los requerimientos ya mencionados, GRUB posee las siguientes características (Nótese que la Especificación de Multiarranque no exige todas las características soportadas por GRUB):
La lista de órdenes (mirar sección 12.5 Lista de las órdenes disponibles) es un subconjunto de los admitidos en los archivos de configuración. La edición de órdenes guarda similitud con la línea de órdenes de Bash (mirar sección `Command Line Editing' in Bash Features), con terminación automática -mediante el tabulador TAB- de órdenes, dispositivos, particiones o archivos en un directorio, dependiendo del contexto.
gzip
. Esta
función es a la vez automática y transparente de cara al usuario
(es decir, todas las funciones operan sobre el contenido descomprimido
de los archivos especificados). Esto reduce considerablemente el
tamaño de los archivos y el tiempo de carga, una ventaja notable
especialmente en disquetes.(2).
Es posible imaginar la necesidad de cargar módulos del núcleo en estado comprimido, por lo que existe una orden diferente de carga de módulos para evitar que sean descomprimidos.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La siguiente es una cita de Gordon Matzigkeit, un fanático de GRUB:
Algunas personas gustan de dar crédito tanto al núcleo como al sistema operativo cuando hablan sobre sus ordenadores, por lo que quizás digan que usan "GNU/Linux" o "GNU/Hurd". Otros parecen pensar que el núcleo es la parte más importante del sistema, y llaman a sus sistemas operativos GNU sistemas "Linux".Yo, personalmente, creo que esto es una grave injusticia, porque el gestor de arranque es el programa más importante. Yo me solía referir a los sistemas citados como sistemas "LILO"(3) o sistemas "GRUB".
Desgraciadamente, nadie entendió jamas a qué me refería; ahora uso simplemente la palabra "GNU" como sinónimo de GRUB.
Así que, si alguna vez oyes hablar a alguien de su sistema supuestamente "GNU", recuerda que en realidad están rindiendo homenaje al mejor gestor de arranque que existe... GRUB!
Nosotros, los mantenedores de GRUB, no animamos (por lo general) niveles de fanatismo como el de Gordon, pero sirve para recordar que los gestores de arranque merecen reconocimiento. Esperamos que disfrutes usando GRUB tanto como nosotros disfrutamos escribiéndolo.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La sintáxis de dispositivos usada en GRUB es algo diferente de la que probablemente hayas visto antes en tu(s) SO(s), y debes conocerla para poder especificar discos o particiones.
Observa los ejemplos y las explicaciones que siguen:
(fd0) |
Para empezar, GRUB requiere que se encierre el nombre del dispositivo entre paréntesis `(' y `)'. Lo que `fd' significa es que se trata de un disquete (floppy disk). El numero `0' es el número de la unidad, empezando a contar desde cero. La expresión significa que GRUB usará todo el disquete.
(hd0,1) |
Aquí, `hd' indica un disco duro (hard disk). El primer entero, `0' indica el número de la unidad, es decir, que se trata del primer disco duro, mientras que el segundo entero, `1', indica el número de la partición (o el número de rodaja (slice) en la terminología de BSD). De nuevo, observa que los números de partición se cuentan desde cero y no desde uno. La expresión representa la segunda partición de la primera unidad de disco duro. En este caso, GRUB usa una partición del disco y no el disco entero.
(hd0,4) |
Esto indica la primera partición lógica de la primera unidad de disco. Observa que el número de partición para las particiones lógicas se empieza a contar desde `4', sin que importe el número de particiones primarias en el disco duro.
(hd1,a) |
Esto indica la partición `a' de BSD en el segundo disco duro. Si necesitas especificar el número de rodaja (slice) que se debería usar, puedes hacerlo como: `(hd1,0,a)'. Si se omite el número de "rodaja", GRUB busca la primera "rodaja" del pc que contiene una partición `a' de BSD.
Por supuesto, para poder acceder a discos o particiones con GRUB, necesitas especificar el dispositivo mediante una instrucción, como `root (fd0)' o `unhide (hd0,2)'. Para ayudarte a averiguar qué número es una partición que quieres, las opciones de la línea de órdenes (mirar sección 12.1 La flexible interfaz de línea de órdenes) auto-completan los argumentos. Esto quiere decir que, por ejemplo, sólo necesitas escribir `root (' y pulsar el tabulador para que GRUB liste las unidades, particiones o nombres de archivo, por lo que debería resultar sencillo poder determinar el nombre de la partición que buscas incluso con un conocimiento mínimo de la sintaxis.
Advierte que GRUB no distingue entre IDE y SCSI - simplemente cuenta las unidades desde cero sin que importe su tipo. Por lo general, el número de una unidad IDE es menor que el de una SCSI, aunque esto no se cumpliría si cambias la secuencia de arranque intercambiando las unidades IDE y SCSI en la BIOS.
La pregunta ahora es: Cómo se especifica un archivo ? De nuevo, observa un ejemplo:
(hd0,0)/vmlinuz |
Esto especifica un archivo llamado `vmlinuz' en la primera partición del primer disco duro. Nóta que también se pueden auto completar los nombres de archivo.
Reconoce que hasta aquí ha sido fácil. Lee el capítulo siguiente para aprender a instalar GRUB en el disco.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Para empezar, necesitas tener bien instalado GRUB en tu sistema, (mirar sección B. Como obtener y compilar GRUB) bien mediante un tar con las fuentes o mediente un paquete para tu SO.
Para poder usar GRUB debes instalarlo en tu disco. Existen dos formas
de conseguirlo - usando la aplicación grub-install
(mirar sección 15. Invocar grub-install) en un SO tipo UNIX, o mediante una
Etapa 2 nativa. Ambas son bastante similares, sin embargo, es posible
que la aplicación escoja una unidad equivocada de la BIOS así que
conviene ser precavido.
Asimismo, si instalas GRUB en un SO tipo UNIX, asegúrate de tener un disco de arranque de emergencia a mano, para poder rescatar el ordenador en caso de que, por algún motivo, el disco duro quedara inservible (no pudiera arrancarse).
GRUB viene con imágenes de arranque, que se instalan normalmente en el directorio `/src/share/grub/i386-pc'. Necesitas copiar los archivos `stage1', `stage2' y `*stage1_5' al directorio `/boot/grub'. Llamamos aquí directorio de imágenes y directorio de arranque respectivamente al directorio donde se instalan las imágenes de GRUB y al directorio que GRUB usa para encontrarlas.
3.1 Crear un disquete de arranque de GRUB 3.2 Instalar GRUB nativamente 3.3 Instalar GRUB usando grub-install
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Precaución: Este método destruye cualquier dato que esté guardado en el disquete.
En sistemas operativos tipo UNIX, esto se puede hacer con las órdenes siguientes:
# cd /usr/share/grub/i386-pc # dd if=stage1 of=/dev/fd0 bs=512 count=1 1+0 records in 1+0 records out # dd if=stage2 of=/dev/fd0 bs=512 seek=1 153+1 records in 153+1 records out # |
El nombre del dispositivo puede ser diferente. Consulta el manual de tu SO.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Precaución: Instalar la Etapa 1 de GRUB de esta manera borrará el sector de arranque normal de un SO.
Actualmente, GRUB puede arrancar directamente GNU Mach, Linux, FreeBSD, NetBSD y OpenBSD, por lo que usarlo en un sector de arranque no debería dar problemas. Sin embargo, es buena idea en general, hacer una copia de seguridad del primer sector de la partición en la que vayas a instalar la etapa 1 de GRUB. Si instalas GRUB en el primer sector del disco duro no es tan importante tomar precauciones, ya que es fácil restaurarlo (por ejemplo, usando `FDISK /MBR' desde DOS).
Instalar GRUB de manera nativa en el sistema es sin duda recomendable. Si decides hacerlo así, necesitarás hacer un disquete de arranque de GRUB y arrancar el ordenador con él. Para ver otro método lee la sección 3.3 Instalar GRUB usando grub-install.
Una vez empezado, GRUB presentará la interfaz de la línea de órdenes (mirar sección 12.1 La flexible interfaz de línea de órdenes). Lo primero es fijar el directorio de arranque como dispositivo raiz de GRUB (4)
grub> root (hd0,0) |
Si no estás seguro de cual es la partición que contiene los archivos,
puedes usar la orden find
de la manera siguiente:
grub> find /boot/grub/stage1 |
Esto busca el archivo `/boot/grub/stage1' y lista los dispositivos que lo contienen.
Una vez que has fijado correctamente el directorio raiz, utiliza la
orden setup
(mirar sección 12.8.34 setup):
grub> setup (hd0) |
Esta orden instala GRUB en el MBR de la primera unidad. Si lo que quieres es instalar GRUB en el sector de arranque de una partición en vez de en el MBR, especifica la partición en la que quieres instalar GRUB:
grub> setup (hd0,0) |
Si instalas GRUB en una partición o en una unidad que no sea la primera, tendrás que arrancar en cadena a GRUB desde otro gestor de arranque. Mira en el manual del gestor de arranque en particular la manera de arrancar GRUB en cadena.
Ahora ya puedes arrancar GRUB sin usar un disquete. Lee el capítulo 4. Arranque para aprender a arrancar tus sistemas operativos desde GRUB.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Precaución: No se aconseja utilizar este procedimiento ya que hay posibilidades de que deje el ordenador sin poder arrancar. Por ejemplo, la mayoría de los sistemas operativos no comunican a GRUB la manera de corresponder correctamente unidades de la BIOS a dispositivos del SO, GRUB simplemente adivina la correspondencia. Esto funciona en la mayoría de los casos, pero no siempre, por lo que GRUB pone a tu disposición un fichero de correspondencias definido por el usuario device map que debes reparar si fuera incorrecto. mirar sección 14.3 La correspondencia entre unidades de la BIOS y dispositivos del SO, para más información.
A pesar de esto, si quieres instalar GRUB bajo un SO tipo UNIX (como
GNU), ejecuta el programa grub-install
(mirar sección 15. Invocar grub-install) como superusuario (root).
Su uso es muy sencillo. Solo necesitas pasarle un argumento al programa: donde quieres instalar GRUB. El argumento puede ser un fichero de dispositivo o una unidad/partición de GRUB. Por ejemplo, para instalar GRUB en el MBR del primer disco IDE desde Linux puedes usar:
# grub-install /dev/hda |
Bajo GNU/Hurd, la siguiente orden tiene el mismo efeto:
# grub-install /dev/hd0 |
Si se trata de la primera unidad en la BIOS, ésta orden es equivalente:
# grub-install '(hd0)' |
Los ejemplos anteriores asumen que usas imágenes de GRUB situadas en el directorio raiz. Si quieres que GRUB utilice imágenes en otro directorio, necesitas especificar la opción `--root-directory'. Un caso típico es cuando quieres crear un disquete de arranque de GRUB con sistema de ficheros. Un ejemplo:
# mke2fs /dev/fd0 # mount -t ext2 /dev/fd0 /mnt # grub-install --root-directory=/mnt '(fd0)' # umount /mnt |
Otro ejemplo es el caso en que tienes una partición de arranque distinta
montada sobre `/boot'. GRUB es un gestor de arranque, y no sabe
nada de puntos de montaje. Por lo tanto, la manera de invocar
grub-install
sería:
# grub-install --root-directory=/boot /dev/hda |
Por cierto, como observamos anteriormente, es bastante difícil averiguar
las unidades de la BIOS desde un SO tipo UNIX. Por este motivo,
grub-install
te pedirá que compruebes que ciertamente acertó con
las correspondencias una vez terminada la instalación. El formato está
definido en 14.3 La correspondencia entre unidades de la BIOS y dispositivos del SO. Por favor, observa estas precauciones. Si
el resultado fuera incorrecto, es bastante difícil que el ordenador pueda
arrancar sin problemas.
Advierte que grub-install
es en realidad un fichero de órdenes
(shell script), y el verdadero trabajo lo realiza el intérprete de órdenes
grub
(mirar sección 14. Invocar el intérprete grub). Podrías por lo tanto
ejecutar directamente grub
para instalar GRUB, sin utilizar
grub-install
. Sin embargo, esto no es recomendable a no ser
que conozcas bien el funcionamiento de GRUB. Instalar un gestor de arranque
desde un SO en ejecución puede ser muy peligroso.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB puede arrancar de manera similar núcleos que se acojan al Multiarranque, pero para algunos sistemas operativos libres es necesario utilizar algo de magia adecuada al SO.
4.1 Como arrancar sistemas operativos Como arrancar en general SOs con GRUB 4.2 Particularidades de algunos sistemas operativos Notas sobre algunos SOs
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB tiene dos maneras distintas de arrancar sistemas. Una es cargar el sistema operativo directamente, y la otra es cargar en cadena otro gestor de arranque que se encargará de arrancar el sistema operativo. En general, el primer método es el más deseable, porque no requiere que instales o mantengas otros gestores de arranque, y GRUB es lo bastante flexible para cargar un sistema operativo en cualquier disco o partición. Sin embargo, resulta necesario algunas veces utilizar el segundo método ya que GRUB no admite nativamente todos los sistemas operativos existentes.
4.1.1 Como arrancar directamente un SO con GRUB 4.1.2 Carga otro gestor de arranque para arrancar SOs no soportados
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
El Multiarranque (mirar sección `Motivation' in The Multiboot Specification) es el formato nativo soportado por GRUB. Por conveniencia, existe también soporte para Linux, FreeBSD, NetBSD y OpenBSD. Para el resto de los sistemas operativos que quieras arrancar debes utilizar el arranque en cadena (mirar sección 4.1.2 Carga otro gestor de arranque para arrancar SOs no soportados).
En general, GRUB arranca cualquier SO que se acoja al Multiarranque con los pasos siguientes:
root
(mirar sección 12.8.31 root).
kernel
(mirar sección 12.8.20 kernel).
module
(mirar sección 12.8.25 module) o modulenounzip
(mirar sección 12.8.26 modulenounzip).
boot
(mirar sección 12.8.2 boot).
Linux, FreeBSD, NetBSD y OpenBSD se pueden arrancar de manera similar.
Puedes cargar la imagen del núcleo mediante la orden kernel
y
después usar la orden boot
. Si el núcleo requiere algún
parámetro, simplemente añade los parámetros a kernel
, detrás
del nombre del archivo del núcleo. Consulta 4.2 Particularidades de algunos sistemas operativos
para información específica acerca de tu SO.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Si quieres arrancar un sistema operativo que no esté soportado (por ejemplo Windows 95), debes arrancar en cadena un gestor de arranque propio de ese sistema operativo. Normalmente, el gestor de arranque está insertado en el sector de arranque de la partición en la que está instalado el sistema operativo.
rootnoverify
(mirar sección 12.8.32 rootnoverify):
grub> rootnoverify (hd0,0) |
makeactive
(5) (mirar sección 12.8.22 makeactive):
grub> makeactive |
chainloader
(mirar sección 12.8.4 chainloader):
grub> chainloader +1 |
`+1' indica que GRUB debe leer un sector desde el principio de la partición. La descripción completa de esta sintaxis se encuentra en 11.3 Como especificar listas de bloques.
boot
(mirar sección 12.8.2 boot).
Sin embargo, DOS y Windows poseen algunas deficiencias, por lo que quizás necesites usar instrucciones más complicadas. mirar sección 4.2.6 DOS/Windows, para más información.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Aquí describimos particularidades de varios sistemas operativos.
4.2.1 GNU/Hurd 4.2.2 GNU/Linux 4.2.3 FreeBSD 4.2.4 NetBSD 4.2.5 OpenBSD 4.2.6 DOS/Windows 4.2.7 SCO UnixWare
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Debido a que GNU/Hurd se acoje a la especificación Multiarranque resulta sencillo arrancarlo; no hay nada especial en hacerlo. Pero no olvides que tienes que especificar una partición raiz al núcleo.
find /boot/gnumach
o similar
(mirar sección 12.8.11 find).
grub> kernel /boot/gnumach root=hd0s1 grub> module /boot/serverboot |
boot
(mirar sección 12.8.2 boot).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Resulta relativamente sencillo arrancar GNU/Linux desde GRUB, ya que se asemeja de alguna manera a un SO Multiarranque.
find /vmlinuz
o similar
(mirar sección 12.8.11 find).
grub> kernel /vmlinuz root=/dev/hda1 |
Si necesitas especificar algún otro parámetro del núcleo añádelos sin más a la orden. Por ejemplo, para poner la `vga' en `ext' usa:
grub> kernel /vmlinuz root=/dev/hda1 vga=ext |
Consulta la documentación en el árbol del código fuente del núcleo de Linux para la información completa de todas las opciones disponibles.
initrd
(mirar sección 12.8.17 initrd)
despues de la orden kernel
:
grub> initrd /initrd |
boot
(mirar sección 12.8.2 boot).
Precaución: Si usas un initrd y especificas la opción `
mem=' al núcleo, para lograr que use una cantidad de memoria menor que
la existente necesitas especifar a GRUB el mismo tamaño de memoria. Para
comunicar el tamaño a GRUB, ejecuta la orden uppermem
antes de cargar el núcleo. mirar sección 12.8.37 uppermem, para más información.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB puede cargar el núcleo directamente, tanto en formato ELF como a.out. Sin embargo, no es recomendable hacerlo así porque la interfaz de arranque de FreeBSD cambia bastante en algunas ocasiones, por lo que GRUB no puede garantizar que los parámetros se pasen al núcleo correctamente.
Por esto, recomendamos que se utilice en su lugar el flexible cargador `/boot/loader'. Como en el siguiente ejemplo:
grub> root (hd0,a) grub> kernel /boot/loader grub> boot |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB es capaz de cargar los formatos ELF y a.out de NetBSD directamente, siguiendo estos pasos:
root
(mirar sección 12.8.31 root).
kernel
(mirar sección 12.8.20 kernel). Si
quieres cargar un núcleo ELF, deberías añadir la fea opción `
--type=netbsd' como a continuación:
grub> kernel --type=netbsd /netbsd-elf |
boot
(mirar sección 12.8.2 boot).
Sin embargo, Grub por ahora no permite pasarle parámetros al núcleo, por lo que es más conveniente cargarlo en cadena. Para más información mira por favor 4.1.2 Carga otro gestor de arranque para arrancar SOs no soportados.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Las instrucciones para el arranque son exactamente las mismas que para NetBSD (mirar sección 4.2.4 NetBSD).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB no puede cargar DOS o Windows directamente, por lo que debes usar el arranque en cadena (mirar sección 4.1.2 Carga otro gestor de arranque para arrancar SOs no soportados). Sin embargo, los gestores de arranque de estos sistemas poseen algunas deficiencias críticas, por lo que es posible que no valga con cargarlos en cadena sin más. Para superar estas dificultades, GRUB pone a tu disposición dos funciones de ayuda.
Si has instalado DOS (o Windows) en un disco duro distinto del primero,
debes usar la técnica de intercambio de discos, ya que ese sistema
operativo no puede arrancar desde un disco que no sea el primero. La
solución empleada en GRUb es la orden map
(mirar sección 12.8.23 map):
grub> map (hd0) (hd1) grub> map (hd1) (hd0) |
Esto efectúa un intercambio virtual entre la primera y la segunda unidad de disco duro.
Precaución: Esto sólo es efectivo si DOS (o Windows) usan la BIOS para acceder a los discos intercambiados. Si el SO utiliza una controladora especial para los discos, esto probablemente no funcionará.
Otro problema surje si has instalado más de una copia de DOS/Windows en un disco, porque estos SOs se pueden equivocar cuando hay más de una partición primaria para DOS/Windows. Ciertamente, deberías evitar hacer esto, pero existe una solución si quieres hacerlo. Puedes usar la técnica de ocultar/desvelar una partición.
Si GRUB oculta una partición de DOS (o Windows) (mirar sección 12.7.5 unhide), DOS (o Windows) la ignorarán, y si GRUB la desvela (mirar sección 12.7.16 unhide), DOS (o Windows) la detectarán. Así por ejemplo, si has instalado DOS (o Windows) en la primera y segunda partición del primer disco duro, y quieres arrancar la copia en la primera partición, debes hacer:
grub> unhide (hd0,0) grub> hide (hd0,1) grub> rootnoverify (hd0,0) grub> chainloader +1 grub> makeactive grub> boot |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Se sabe que la firma en el gestor de arranque de SCO UnixWare es
incorrecta, por lo que tienes que especificar la opción `
--force' en la orden chainloader
como sigue:
grub> rootnoverify (hd1,0) grub> chainloader --force +1 grub> makeactive grub> boot |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Como habrás notado, es necesario que escribas unas cuantas órdenes para arrancar un SO. Hay una manera más rápida de hacerlo: GRUB posee una interfaz de menú (mirar sección 12.2 La sencilla interfaz de menú) desde la que puedes seleccionar una entrada (usando las flechas del teclado) que hará todo lo necesario para arrancar un SO.
Para habilitar el menú necesitas un archivo de configuración, `menu.lst' en el directorio de arranque. Vamos a analizar un archivo de ejemplo.
El fichero contiene al principio varias optiones generales relativas a la
interfaz de menú. Puedes poner estas opciones (mirar sección 12.6 La lista de órdenes sólo para el menú) antes de las entradas (que empiezan con la orden
title
(mirar sección 12.6.5 title)).
# # Ejemplo de archivo de configuración del menú # |
como habrás adivinado, estas líneas son comentarios. GRUB ignorará cualquier línea que empiece con el caracter de almohadilla (`#'), así como líneas en blanco.
# Arrancar la primera entrada por defecto default 0 |
La primera entrada (contando a partir del número cero, no uno) será la elección por defecto.
# Arrancar automáticamente despues de 30 segundos timeout 30 |
Como indica el comentario, GRUB arrancará automáticamente en 30 segundos, a no ser que sea interrumpido por la presión de una tecla.
# Descolgarse a la segunda entrada fallback 1 |
Si por alguna razón la entrada por defecto no funcionara, intentar la segunda (esta opción rara vez se usa, por razones obvias).
La descripción completa de estas órdenes, específicas de la interfaz de menú se encuentra en 12.6 La lista de órdenes sólo para el menú. El resto de descripciones se pueden encontrar en 12.5 Lista de las órdenes disponibles.
Pasamos ahora a las definiciones de SO. Verás que todas las entradas
empiezan con la orden especial title
(mirar sección 12.6.5 title), y que
las instrucciones se encuentran a continuación. Observa que no hay una
orden boot
(mirar sección 12.8.2 boot) al final de cada entrada. Esto se
debe a que GRUB ejecuta automáticamente boot
si ha cargado
con éxito el resto de órdenes.
El argumento de la orden title
se utiliza a modo de título o
descripción de la entrada del menú. La orden title
presenta
el argumento tal cual, por lo que puedes escribir basicamente lo que
quieras.
# Para arrancar GNU/Hurd title GNU/Hurd root (hd0,0) kernel /boot/gnumach.gz root=hd0s1 module /boot/serverboot.gz |
Esto arranca GNU/Hurd en el primer disco duro.
# Para arrancar GNU/Linux title GNU/Linux kernel (hd1,0)/vmlinuz root=/dev/hdb1 |
Esto arranca GNU/Linux, pero en el segundo disco duro.
# Para arrancar Mach (obteniendo el núcleo de un disquete) title Utah Mach4 multiboot root (hd0,2) pause Insert the diskette now^G!! kernel (fd0)/boot/kernel root=hd0s3 module (fd0)/boot/bootstrap |
Esto arranca Mach con el núcleo en un disquete, pero con el sistema
de ficheros en hd0s3. También contiene una línea con la orden
pause
(mirar sección 12.8.27 pause), que obliga a GRUB a presentar un
mensaje y esperar antes de ejecutar el resto de órdenes.
# Para arrancar FreeBSD title FreeBSD root (hd0,2,a) kernel /boot/loader |
Esta entrada arranca el núcleo de FreeBSD, cargándolo de la partición `a' de la tercera "rodaja" de PC (slice) del primer disco duro.
# Para arrancar OS/2 title OS/2 root (hd0,1) makeactive # Carga en cadena el gestor de OS/2 del primer sector chainloader +1 # Esto es similar a "chainload", pero cargando un archivo #chainloader /boorsect.os2 |
Esto arranca OS/2, usando el arranque en cadena (mirar sección 4.1.2 Carga otro gestor de arranque para arrancar SOs no soportados).
# Para arrancar WindowsNT o Windows95 title Windows NT / Windows 95 boot menu root (hd0,0) makeactive chainloader +1 # Para cargar DOS si WindowsNT está instalado # chainload /bootsect.dos |
Lo mismo que el anterior, pero para Windows.
# Para instalar GRUB en el disco duro title Install GRUB into the hard disk root (hd0,0) setup (hd0) |
Esto simplemente (re)instala GRUB en el disco duro
# cambia los colores title Change the colors color light-green/brown blink-red/blue |
En la última entrada, se usa la orden color
(mirar sección 12.7.2 color)
para cambiar los colores del menú (pruébalo!). Esta orden es algo
especial, ya que se puede usar en el menú o en la línea de órdenes.
GRUB posee varias intrucciones de este tipo, ver 12.7 Lista de las órdenes generales.
Esperamos que ahora ya sepas como utilizar las características básicas de GRUB. Para aprender más sobre GRUB lee los siguientes capítulos.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A pesar de que GRUB es un gestor de arranque centrado en el disco, también posee soporte de redes. Para poder utilizarlo en red, necesitas habilitar por lo menos uno de los controladores de red al compilar GRUB. Para más información mira en ` netboot/README.netboot' en la distribución del código fuente.
6.1 Como preparar la red 6.2 Arranque desde la red
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB necesita un servidor de ficheros y, de manera opcional, un servidor que asigne una dirección IP a la máquina en la que se ejecuta GRUB. Para lo primero sólo existe por el momento soporte para TFTP. Lo segundo es un servidor BOOTP, DHCP o RARP (6). No es necesario tener los dos servidores en un mismo ordenador. La configuración de estos servidores está fuera del alcance de este manual, dirígete a los manuales específicos de esos protocolos o servidores.
Si has decidido usar un servidor para asignar una dirección IP, pon
en marcha el servidor y ejecuta la orden bootp
(mirar sección 12.7.1 bootp),
dhcp
(mirar sección 12.7.4 dhcp) o rarp
(mirar sección 12.7.11 rarp) para
usar BOOTP, DHCP o RARP respectivamente. Al ejecutarlas, presentarán
en pantalla la dirección IP asignada, la máscara de red, la dirección
IP del servidor TFTP y la puerta de enlace. Si alguna de las direcciones
es incorrecta o si causa algún error, lo más probable es que no tengas
los servidores configurados correctamente.
En caso contrario, usa la orden ifconfig
como a continuación:
grub> ifconfig --address=192.168.110.23 --server=192.168.110.14 |
También puedes usar la orden ifconfig
en conjunción con
bootp
, dhcp
o rarp
(por.ej. para
reasignar la dirección del servidor manualmente). mirar sección 12.7.6 ifconfig,
para más detalles.
Para terminar, descarga las imágenes del SO a través de la red. Se accede a la red mediante la unidad de red `(nd)'. Lo demás es similar a las instrucciones normales (mirar sección 4. Arranque).
He aquí un ejemplo:
grub> bootp Probing... [NE*000] NE2000 base ... Address: 192.168.110.23 Netmask: 255.255.255.0 Server: 192.168.110.14 Gateway: 192.168.110.1 grub> root (nd) grub> kernel /tftproot/gnumach.gz root=sd0s1 grub> module /tftproot/serverboot.gz grub> boot |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A veces resulta muy útil poder arrancar a través de la red, especialmente cuando se usan máquinas que no tienen disco duro local. En estos casos, necesitas obtener algún tipo de ROM para arranque por red (Net Boot), como los ROM PXE o el programa libre Etherboot. Un ROM de arranque de este tipo primero arranca el ordenador, prepara la tarjeta de red instalada en el ordenador, y descarga la imagen para la segunda etapa del arranque de la red. Esta segunda imágen es la que en realidad se encarga después de arrancar el sistema operativo a través de la red.
GRUB posee dos imágenes para la segunda etapa: `nbgrub' y `pxegrub' (mirar sección 10. Archivos de imagen de GRUB). Estas imágenes son iguales a una Etapa 2 normal, excepto en que preparan la red de manera automática e intentan descargar un archivo de configuración de la red si se ha especificado uno. El modo de empleo es muy sencillo: Si la máquina tiene un ROM PXE, usa `pxegrub'. Si la máquina tiene un cargador NBI, como por ejemplo Etherboot, usa `nbgrub'. La única diferencia entre ellas es el formato. La manera de descargar la imagen de la segunda etapa estará detallada en el manual de tu ROM de arranque de red (Net Boot), así que consulta ese manual para más información.
Hay sin embargo un asunto específico de GRUB: cómo especificar un archivo de configuración en un servidor BOOTP/DHCP ? Por ahora, GRUB utiliza la marca `150' para obtener el nombre del archivo de configuración. Lo que sigue es un ejemplo de una configuración BOOTP:
.allhost:hd=/tmp:bf=null:\ :ds=145.71.35.1 145.71.32.1:\ :sm=255.255.254.0:\ :gw=145.71.35.1:\ :sa=145.71.35.5: foo:ht=1:ha=63655d0334a7:ip=145.71.35.127:\ :bf=/nbgrub:\ :tc=.allhost:\ :T150="(nd)/tftpboot/menu.lst.foo": |
Mira en el manual de tu servidor BOOTP/DHCP para más información. La sintaxis exacta será algo diferente de la del ejemplo.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Este capítulo describe como usar el soporte para terminales de serie en GRUB.
Si dispones de varios ordenadores o de ordenadores sin pantalla o teclado, puede resultar muy útil poder controlar los ordenadores a través de la comunicación serial. Para conectar un ordenador con otro a través de la línea de serie necesitas preparar un cable de serie null-modem cruzado, y si el ordenador no posee puertos de serie de sobra quizás necesites un panel multipuerto de serie. Necesitas además un emulador de terminal como minicom. Consulta el manual de tu sistema operativo para más información.
Con respecto a GRUB, la instrucción para preparar una terminal de serie es bastante simple. Primeramente, asegúrate de no haber especificado la opción `--disable-serial' al fichero de configuración cuando compilaste las imágenes de GRUB. Si las obtuviste en formato binario lo más probable es que tengan el soporte para terminales de serie habilitado.
Después inicia la terminal de serie una vez empezado GRUB. Aquí tienes un ejemplo:
grub> serial --unit=0 --speed=9600 grub> terminal serial |
La orden serial
inicia la unidad de serie 0 con la velocidad
de 9600bps. La unidad de serie 0 es lo que generalmente se conoce como
`COM1', por lo que si quieres utilizar el COM2, debes utilizar
`--unit=1' en su lugar. Esta orden acepta muchas otras opciones.
Puedes dirigirte a 12.7.12 serial para más detalles.
La orden terminal
(mirar sección 12.7.14 terminal) elige el tipo de terminal
que quieras usar. En el caso anterior, la terminal será una de serie,
pero también podrías pasarle console
a la instrucción, como en
`terminal serial console'. En este caso, la terminal en la que
pulses una tecla cualquiera será seleccionada por GRUB.
Observa sin embargo que GRUB asume por defecto que tu emulador de terminal es compatible con VT100. Esto es así con la mayoría de los emuladores de terminal hoy en día, pero en el caso de que tu emulador no sea compatible con VT100 o que implemente solo algunas de las secuencias de escape de VT100, debes pasarle a la instrucción la opción `--dumb'. Especificando esta opción, GRUB presentará un interfaz de menú alternativo, ya que el menú normal requiere varias características especiales de la terminal.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB admite un menú predeterminado que se carga siempre antes
de empezar. La posibilidad de un menú predeterminado es util cuando
por ejemplo, tu ordenador no tiene otra consola que el cable de serie.
En este caso, resulta crítico poner en marcha la terminal de serie
tan pronto como sea posible, puesto que no puedes ver ningún mensaje
hasta que la terminal de serie empieza a funcionar. Así que resulta
útil ejecutar las órdenes serial
(mirar sección 12.7.12 serial) y
terminal
(mirar sección 12.7.14 terminal) antes que cualquier nada más
comenzar.
El funcionamiento del menú predeterminado es un poco complicado:
Para habilitar la opción de menú predeterminado, debes especificar el archivo al realizar la configuración mediante la la opción `--enable-preset-menu'. Este archivo tiene el mismo contenido que los archivos de configuración. (mirar sección 5. Configuración).
Otro detalle que deberías tener en cuenta es que el soporte para
máquinas sin disco (mirar sección 6.2 Arranque desde la red) duplica el menú predeterminado.
Las imágenes sin disco incluyen un menú predeterminado para ejecutar
la orden bootp
(mirar sección 12.7.1 bootp) automáticamente, a no ser
que especifiques tu propio menú al configurar. Esto también implica que
debes incluir las órdenes para iniciar la red en tú menú, ya que
las imágenes sin disco no la inician de manera automática cuando
has especificado el menú explicitamente.
Por lo tanto, un menú típico para ser usado con soporte sin disco sería algo así:
# Lo primero de todo, iniciar la terminal de serie serial --unit=0 --speed=19200 terminal --timeout=0 serial # Iniciar la red dhcp |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Si compartes el ordenador con otras personas, quizás te interese evitar que cualquiera pueda usarlo a su antojo. Este capítulo describe como mejorar la seguridad de GRUB.
Una de las cosas que podría constituir un agujero de seguridad es que
el usuario puede hacer demasiadas cosas desde GRUB, ya que GRUB permite
que se modifique la configuración y que se ejecuten órdenes arbitrarias
en el arranque. Por ejemplo, el usuario puede incluso leer el archivo
`/etc/passwd' desde la interfaz de la línea de órdenes usando la
orden cat
(mirar sección 12.8.3 cat). Así que es necesario suprimir todas
las operaciones interactivas.
GRUB admite una contraseña, de manera que solo los administradores
puedan iniciar las operaciones interactivas (es decir, editar entradas
de menú y entrar en la interfaz de la línea de órdenes). Para utilizar
esta opción, necesitas ejecutar la orden password
en tu
archivo de configuración (mirar sección 12.7.10 password) de esta manera:
password --md5 PASSWORD |
Si se especifica esta línea, GRUB deshabilita cualquier control interactivo hasta que se pulse la tecla p y se introduzca la contraseña correcta. La opción `--md5' le dice a GRUB que `PASSWORD' tiene formato MD5. Si se omite, GRUB asume que la contraseña `PASSWORD' está en texto simple.
Puedes encriptar tu contraseña con la orden md5crypt
(mirar sección 12.8.24 md5crypt). Por ejemplo, ejecuta el intérprete (shell) de
grub (mirar sección 14. Invocar el intérprete grub) e introduce tu contraseña:
grub> md5crypt Password: ********** Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb. |
Después corta y pega la contraseña encriptada en tu archivo de configuración.
También puedes especificar un argumento opcional a la orden
password
como en el siguiente ejemplo:
password PASSWORD /boot/grub/menu-admin.lst |
En este caso, GRUB cargará el archivo `/boot/grub/menu-admin.lst' como archivo de configuración cuando se introduzca la contraseña correcta.
Otra de las cosas que puede ser peligrosa es la posibilidad de escoger cualquier entrada del menú. Por lo general esto no tiene que resultar un problema, pero quizás quieras que solo los administradores puedan usar algunas entradas en particular, como por ejemplo una entrada que arranque un SO sin seguridad como DOS.
GRUB facilita la orden lock
(mirar sección 12.8.21 lock). Esta orden falla
siempre hasta que introduzcas una contraseña válida, por lo que se
puede usar de la siguiente manera:
title Boot DOS lock rootnoverify (hd0,1) makeactive chainload +1 |
Deberías insertar lock
justo detrás de la orden title
porque cualquier usuario puede ejecutar las órdenes en una entrada
hasta que GRUB encuentra la orden lock
.
También puedes usar la orden password
en lugar de
lock
. En ese caso el proceso de arranque pediría la
contraseña, y se detendría si se introdujera incorrectamente. Como
la orden password
toma su propio argumento PASSWORD,
esto puede resultar útil si quieres contraseñas diferentes para cada
entrada.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB está compuesto por varias imágenes: dos imágenes esenciales, etapas opcionales llamadas Etapa 1.5, y dos imágenes de arranque de red. Aquí presentamos una pequeña descripción de todas ellas, ver @xref{Interiores}, para más detalles.
Todo lo que `stage1' tiene que hacer es cargar la Etapa 2 o la Etapa 1.5 de un disco local. Debido a las limitaciones de espacio, `stage1' codifica el emplazamiento de la Etapa 2 (o de la Etapa 1.5) en formato de lista de bloques, por lo que no llega a entender ninguna estructura de sistemas de ficheros.
Se les llama Etapa 1.5 porque su misión es la de un puente entre `stage1' y `stage2', es decir, la Etapa 1 carga la Etapa 1.5, y ésta carga la Etapa 2. La diferencia entre `stage1' y ` *_stage1_5' es que la primera no entiende de sistemas de ficheros y la segunda entiende uno (por.ej. `e2fs_stage1_5' entiende ext2fs). Por esto puedes mover la Etapa 2 a otro lugar sin problemas, incluso después de haber instalado GRUB.
Mientras la Etapa 2 no se puede, en general, insertar en una zona fija debido a su gran tamaño, la Etapa 1.5 se puede instalar en la zona justo detrás del MBR, o en la zona del gestor de arranque de un ResiserFS o FFS.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB utiliza una sintaxis especial para referirse a las unidades
de disco accesibles desde la BIOS. Debido a las limitaciones de la
BIOS, GRUB no puede distingur entre IDE, ESDI, SCSI u otros. Tú
serás el que tenga que saber la correspondencia entre dispositivos
del SO y las unidades de la BIOS. Normalmente estará bastante claro
una vez que veas los archivos de un dispositivo, o que uses la
orden find
(mirar sección 12.8.11 find).
11.1 How to specify devices Como especificar dispositivos 11.2 Como especificar archivos 11.3 Como especificar listas de bloques
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La sintaxis de dispositivos es como sigue:
|
`[' indica que el argumento es opcional. El dispositivo debe ser o `fd' o `hd' seguido de un dígito, como en `fd0'. También puedes representar dispositivo con un número hexadecimal o decimal (el número de unidad de la BIOS), por lo que los siguientes son equivalentes:
(hd0) (0x80) (128) |
nº-part representa el número de partición en el dispositivo, empezando desde cero para las particiones primarias y desde cuatro para las lógicas. letra-subpart-bsd representa la etiqueta de la subpartición de BSD, como por ejemplo `a' o `e'.
Una abreviatura para especificar subparticiones BSD es
(dispositivo,letra-subpart-bsd)
, con esto GRUB
busca la primera partición del PC con una etiqueta BSD, y después
selecciona la partición letra-subpart-bsd. Este es un ejemplo:
(hd0,a) |
Una sintaxis como `(hd0)' indica que se utilice el disco entero (o el MBR en caso de estar instalando GRUB), mientras que una sintaxis como `(hd0,0)' indica que se use la partición del disco (o el sector de arranque de la partición en caso de querer instalar GRUB).
Si has habilitado el soporte de red, también dispones de la unidad especial `(nd)'. Antes de poder usar la unidad de red debes iniciar la red. mirar sección 6. Descargar las imágenes del SO de la red, para más información.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Hay dos maneras de especificar archivos: mediante el nombre absoluto del fichero y mediante lista de bloques.
El nombre absoluto del fichero se asemeja al nombre absoluto de
fichero en Unix, usando `/' como separador de directorios
(no `\' como en DOS). Un ejemplo es
`(hd0,0)/boot/grub/menu.lst', que indica el archivo
`/boot/grub/menu.lst' en la primera partición del primer
disco duro. Si omites el nombre del dispositivo en el nombre
absoluto del fichero, GRUB usa implícitamente el dispositivo
raiz. Así que, si por ejemplo, has fijado el dispositivo raiz
en `(hd1,0)' con la orden root
(mirar sección 12.8.31 root),
/boot/kernel
sería equivalente a (hd1,0)/boot/kernel
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La lista de bloques se utiliza para especificar un archivo que no
aparece en el sistema de ficheros, como un gestor de arranque. La
sintaxis es
[inicio]+longitud[,[inicio]+longitud]...
.
Un ejemplo:
|
Esto indica que GRUB debe leer los bloques del 0 al 99, el bloque 200, y los bloques del 300 al 599. Si omites un inicio GRUB asume que debe empezar desde 0.
Igual que en la sintaxis de ficheros (mirar sección 11.2 Como especificar archivos), si
una lista de bloques no contiene un nombre de dispositivo, GRUB usa
el dispositivo raiz. Así (hd0,1)+1
equivale a +1
cuando el dispositivo raiz es `(hd0,1)'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GRUB posee tanto una simple interfaz de menú donde escoger entradas ya preparadas en un archivo de configuración como una línea de órdenes flexible para ejecutar cualquier combinación de órdenes de arranque que se desee.
Tan pronto como se carga GRUB, éste busca el archivo de configuración. Si encuentra uno, activa la interfaz de menú utilizando las entradas que se encuentren en el archivo. Si utilizas la opción del menú de línea de órdenes o si GRUB no encuentra un archivo de configuración, se activa la línea de órdenes.
12.1 La flexible interfaz de línea de órdenes 12.2 La sencilla interfaz de menú 12.3 Editar una entrada del menú 12.4 La interfaz de menú oculta
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La interfaz de la línea de órdenes consiste, como en Unix o DOS, de un cursor (prompt) con espacio a continuación para introducir texto. GRUB ejecuta las órdenes inmediatamente cuando son introducidas (7). Las órdenes (mirar sección 12.8 La lista de órdenes para el menú y la línea de órdenes) son un subconjunto de las disponibles en el fichero de configuración, y se usan exactamente con la misma sintaxis.
La edición de texto y el movimiento del cursor se puede hacer a través de un subconjunto de las funciones disponibles en el intérprete de órdenes Bash:
Cuando escribes órdenes interactivamente, si el cursor está en medio o antes de la primera palaba en la línea de órdenes, presionar el tabulador (o C-i) te mostrará una lista de las órdenes disponibles, y si el cursor está detrás de la primera palabra, el tabulador mostrará una lista de discos, particiones o nombres de archivos, dependiendo del contexto.
Nota que no puedes utilizar la función de auto completar en el sistema de ficheros de TFTP. Esto se debe a que TFTP no implementa el listado de ficheros por motivos de seguridad.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La interfaz de menú es muy sencilla de usar. Las órdenes son razonablemente intuitivos además de estar descritos en pantalla.
Básicamente, la interfaz de menú presenta una lista de opciones de arranque entre las que el usuario puede escoger. Usa las flechas del teclado para seleccionar la entrada que quieras, y pulsa RETORNO para ejecutarla. Opcionalmente, al concluir el tiempo de espera, se arranca la entrada seleccionada por defecto (la primera si no se ha especificado una), a no ser que se pulse una tecla.
Se pueden introducir órdenes pulsando la tecla c, lo que presenta una línea de órdenes (que opera exactamente igual que en la versión de GRUB sin fichero de configuración, con la excepción de que te permite volver al menú pulsando ESC). También se pueden editar las entradas de arranque pulsando la tecla e.
Si has protejido la interfaz de menú mediante una contraseña (mirar sección 9. Protege tu ordenador de accesos no autorizados), todo lo que podrás hacer será escoger una entrada pulsando RETORNO, o pulsar p para introducir la contraseña.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
El editor de entradas del menú se parece bastante a la interfaz de menú principal, pero en las líneas del editor verás las órdenes de la entrada seleccionada en lugar de los nombres de las distintas entradas.
Si se pulsa ESCAPE en el editor, se descartan todos los cambios hechos en la entrada seleccionada, volviendo a la pantalla del menú principal.
Cuando se selecciona una línea en particular, el editor coloca al usuario en una versión especial de la línea de órdenes de GRUB para que edite la línea. Cuando el usuario pulsa RETURN, GRUB reemplaza la línea en cuestión en la opción de arranque con los nuevos cambios (a no ser que se aborte a través de la tecla ESCAPE, en cuyo caso se descartan los cambios).
Si quieres añadir una línea nueva a la entrada del menú, pulsa o para añadirla debajo de la línea sobre la que te encuentres o O para añadirla sobre ella.
Para borrar una línea pulsa la tecla d. Aunque desafortunadamente GRUB no implementa la opción de deshacer, se obtiene practicamente el mismo resultado retornando al menú principal.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
En el caso de utilizar una terminal tipo "dumb" o de haber solicitado
explicitamente a GRUB que esconda el menú mediante la orden
hiddenmenu
(mirar sección 12.6.3 hiddenmenu), GRUB no presentará la interfaz de
menú (mirar sección 12.2 La sencilla interfaz de menú), y arrancará automáticamente la opción
por defecto, a no ser que se interrumpa pulsando ESCAPE.
Cuando se interrumpe la cuenta atrás del tiempo de espera y la terminal es del tipo "dumb", GRUB retorna a la interfaz de la línea de órdenes (mirar sección 12.1 La flexible interfaz de línea de órdenes).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
En este capítulo detallamos todas las órdenes disponibles en GRUB.
Las órdenes están divididas en diferentes grupos. Unas pocas sólo pueden usarse en la sección global del archivo de configuración (o "menú"); La mayoría de ellas se puede usar en la línea de órdenes y tanto en el menú como en las opciones del menú.
12.6 La lista de órdenes sólo para el menú 12.7 Lista de las órdenes generales 12.8 La lista de órdenes para el menú y la línea de órdenes
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Las reglas para componer un archivo de configuración son las siguientes:
Las órdenes siguientes solo pueden usarse en el menú:
12.6.1 default Fija la entrada por defecto 12.6.2 fallback Fija la entrada de repuesto 12.6.3 hiddenmenu Esconde la interfaz de menú 12.6.4 timeout Pone un tiempo de espera 12.6.5 title Encabeza una entrada del menú
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
También puedes utilizar `saved' en vez de un número. En este
caso, la opción por defecto es la guardada con la orden
savedefault
. mirar sección 12.8.33 savedefault, para más información.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
default
(mirar sección 12.6.1 default).
Obviamente, esto no surtirá efecto si el núcleo que GRUB arrancó
reinica la máquina.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Ordenes que se pueden usar tanto en el menú como en la línea de órdenes.
12.7.1 bootp Inicia un dispositivo de red mediante BOOTP 12.7.2 color Colorea la interfaz de menú 12.7.3 device Specifica un archivo como dispositivo 12.7.4 dhcp Inicia un dispositivo de red mediante DHCP 12.7.5 unhide Esconde una partición 12.7.6 ifconfig Configura una unidad de red manualmente 12.7.7 pager Cambia el estado del mensáfono interno 12.7.8 partnew Crea una partición primaria 12.7.9 parttype Cambia el tipo de una partición 12.7.10 password Pone una contraseña para la interfaz de menú 12.7.11 rarp Inicia un dispositivo de red mediante RARP 12.7.12 serial Prepara un dispositivo de serie 12.7.13 setkey Configura el mapa de teclas 12.7.14 terminal Elige una terminal 12.7.15 tftpserver Specifica un servidor TFTP 12.7.16 unhide Desvela una partición
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Si especificas la opción `--with-configfile' en la orden, GRUB obtendrá y cargará el archivo de configuración especificado por tu servidor BOOTP, con la marca de vendedor `150'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
primer plano/
fondo
. primer plano y fondo son nombres simbólicos de
colores. El nombre tiene que ser uno de estos:
Los siguientes solo se pueden usar para el primer plano.
Sólo los primeros ocho nombres son válidos para fondo. Puedes usar
el prefijo blink-
para el color primer plano si quieres un
color de primer plano parpadeante.
Esta orden se puede utilizar en el archivo de configuración y en la línea de órdenes, por lo que podriás escribir en tu archivo de configuración algo como esto:
# Poner los colores por defecto color light-gray/blue black/light-gray # Cambia los colores. title OS-BS like color magenta/blue black/magenta |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grub> device (fd0) /floppy-image grub> device (hd0) /dev/sd0 |
Esta orden sólo se puede usar en el intérprete grub (mirar sección 14. Invocar el intérprete grub).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Si con esta orden utilizas `--with-configfile', GRUB obtendrá y cargará el archivo de configuración especificado por tu servidor DHCP, con marca de vendedor `150'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
0-0xff
;
desde y a son los sectores inicial y final, expresados en valores
de sector absolutos.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
lock
.
Si se ha especificado nuevo-archivo-config, al introducir la
contraseña passwd éste es cargado como el nuevo archivo de
configuración, y se reinicia la Etapa 2 de GRUB. En caso contrario,
GRUB simplemente habilita las instrucciones privilegiadas. Puedes
usar esta orden en una sección de arranque automático, en cuyo caso
GRUB pedirá la contraseña antes de continuar. La opción `--md5'
le dice a GRUB que la contraseña está encriptada con md5crypt
(mirar sección 12.8.24 md5crypt).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
El puerto de serie no se utiliza como canal de comunicación a no
ser que se use la orden terminal
(mirar sección 12.7.14 terminal).
Esta orden solo está disponible cuando se ha compilado GRUB con soporte para terminal de serie. Ver también 7. Usar GRUB a través de la línea de serie.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grub> setkey capslock control grub> setkey control capslock |
La tecla debe ser una letra del alfabeto, un dígito o uno de estos símbolos: `escape', `exclam', `at', `numbersign', `dollar', `percent', `caret', `ampersand', `asterisk', `parenleft', `parenright', `minus', `underscore', `equal', `plus', `backspace', `tab', `bracketleft', `braceleft', `bracketright', `braceright', `enter', `control', `semicolon', `colon', `quote', `doublequote', `backquote', `tilde', `shift', `backslash', `bar', `comma', `less', `period', `greater', `slash', `question', `alt', `space', `capslock', `FX' (`X' es un dígito), and `delete'. La tabla siguiente describe el caracter al que corresponde cada símbolo:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Aunque para la mayoría de usuarios no tendrá mucho sentido, GRUB soporta también consola Hércules. La consola Hércules se usa como una consola ordinaria, y su uso se asemeja al de las terminales de serie: indica `hercules' como argumento.
La opción `--lines' define el número de líneas en tu terminal, y se utiliza para la función de mensáfono interno. Si no especificas esta opción, se asume un número de 24 líneas.
La opción `--silent' suprime el mensaje que te pide una pulsación de tecla. Esto puede resultar útil cuando tu sistema no posee un dispositivo de terminal.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ifconfig
(mirar sección 12.7.6 ifconfig) en su
lugar.
Prevalece sobre la dirección IP de un servidor TFTP indicado por el servidor BOOTP/DHCP/RARP. El argumento dirección_ip debe ir en formato decimal, como en `192.168.0.15'. Esta orden sólo está disponible si se compila GRUB con soporte de arranque por red. Ver también 6. Descargar las imágenes del SO de la red.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Las órdenes siguientes se pueden utilizar tanto en la línea de órdenes
como en las opciones del menú. Si no recuerdas alguna de ellas, puedes
utilizar la orden help
(mirar sección 12.8.15 help).
12.8.1 blocklist Notación en lista de bloques de un archivo 12.8.2 boot Arranca el sistema operativo 12.8.3 cat Muestra el contenido de un archivo 12.8.4 chainloader Carga en cadena otro gestor de arranque 12.8.5 cmp Compara dos archivos 12.8.6 configfile Carga un archivo de configuración 12.8.7 debug Pone la señal de debug 12.8.8 displayapm Muestra información de APM 12.8.9 displaymem Muestra configuración de la memoria 12.8.10 embed Inserta la Etapa 1.5 12.8.11 find Busca un fichero 12.8.12 fstest Comprueba un sistema de ficheros 12.8.13 geometry Manipula la geometría de una unidad 12.8.14 halt Apaga el ordenador 12.8.15 help Muestra mensajes de ayuda 12.8.16 impsprobe Prueba SMP 12.8.17 initrd Carga un initrd 12.8.18 install Instala GRUB 12.8.19 ioprobe Comprueba los puertos de E/S de una unidad 12.8.20 kernel Carga un núcleo 12.8.21 lock Bloquea una entrada de menú 12.8.22 makeactive Marca una partición como activa 12.8.23 map Apunta una unidad a otra 12.8.24 md5crypt Encripta una contraseña en formato MD5 12.8.25 module Carga un módulo 12.8.26 modulenounzip Carga un módulo sin descomprimir 12.8.27 pause Espera a que se pulse una tecla 12.8.28 quit Sale del intérprete grub 12.8.29 reboot Reinicia el ordenador 12.8.30 read Lee datos de la memoria 12.8.31 root Fija el dispositivo raiz de GRUB 12.8.32 rootnoverify Fija el dispositivo raiz sin montarlo 12.8.33 savedefault Salva la entrada actual como por defecto 12.8.34 setup Instala GRUB automáticamente 12.8.35 testload Comprueba el sistema de archivos cargando un fichero 12.8.36 testvbe Comprueba la VESA BIOS EXTENSION 12.8.37 uppermem Fija el tamaño de la memoria superior 12.8.38 vbeprobe Prueba la VESA BIOS EXTENSION
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grub> cat /etc/fstab |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Differ in size: 0x1234 [archivo1], 0x4321 [archivo2] |
Differ at the offset 777: 0xbe [archivo1], 0xef [archivo2] |
Si son completamente identicos no se imprimirá nada.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Generalmente no es necesario que ejecutes esta orden directamente. mirar sección 12.8.34 setup.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
/boot/grub/stage1
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
install
(mirar sección 12.8.18 install) o testload
(mirar sección 12.8.35 testload).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Si especificas un patrón, muestra información algo más larga sobre cada uno de las órdenes que contenga el patrón.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
setup
(mirar sección 12.8.34 setup) en su lugar.
Brevemente, realiza una instalación completa asumiendo que la Etapa 2 o la Etapa 1.5(9) se encuentra en su lugar de instalación final.
Algo más detalladamente, lo que hace es cargar stage1_file, validar que se trata de una Etapa 1 de GRUB con el número de versión correcto, instalar una lista de bloques para cargar stage2_file como una Etapa 2.Si está presente la opción `d', la Etapa 1 buscará siempre el disco en el que en realidad está instalado stage2_file en vez de utilizar el disco desde el que se arranca. La Etapa 2 se carga en la dirección de memoria addr, que debe ser `0x8000' para una verdadera Etapa 2 y 0x2000 para una Etapa 1.5. Si no se especifica addr, GRUB determinará la dirección automáticamente. Después escribe la Etapa 1 completa en el primer bloque de la unidad dest_dev. Si la opción `p' o config_file está presente, lee el primer bloque de stage2, lo modifica con los valores de la partición en la que se encuentra stage2_file (con la opción `p') o pone la cadena config_file en el área, indicando a la stage2 donde buscar el archivo de configuración en el arranque. De la misma forma, si está presente real_config_file y stage1_file es una Etapa 1.5, el config_file de la Etapa 2 será parcheado con el nombre de archivo de configuración real_config_file. Esta orden preserva el BPB de DOS (y para los discos duros la tabla de particiones) del sector en el que se instala la Etapa 1.
Precaución: Algunas BIOS con errores no comunican correctamente la unidad de arranque cuando se arranca desde el disco duro. Por lo tanto, si desafortunadamente tienes una BIOS de estas, tendrás que especificar la opción `d', resida o no la Etapa 2 en la unidad de arranque. Se conoce que las siguientes BIOS fallan en este sentido:
Precaución2: Algunas BIOS no devuelven un mapa de bits de soporte LBA correcto incluso cuando lo soportan. Así que GRUB posibilita como solución ignorar el mapa de bits incorrecto, mediante la opción `--force-lba'. No uses esta opción si sabes que tu BIOS no tiene soporte para LBA.
Precaución3: Debes especificar la opción `--stage2' en el intérprete de grub si no puedes desmontar el sistema de ficheros donde reside tu archivo stage2. El argumento debería ser el nombre del fichero en tú sistema operativo.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Esta orden también acepta la opción `--type', con la que puedes especificar explicitamente que tipo de kernel es archivo. El argumento tipo ha de ser uno de los siguientes: ` netbsd', `freebsd', `openbsd', `linux', ` biglinux' o `multiboot'. De todas formas, solo necesitas especificarlo si quieres cargar un núcleo ELF NetBSD, porque GRUB es capaz de determinar sin problemas el tipo de núcleo en los otros casos.
La opción `--no-mem-option' sólo es efectiva para Linux. Si se especifica, GRUB no le pasa la opción `mem=' al núcleo.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
password
si quieres que esta orden sea
realmente efectiva (mirar sección 12.7.10 password).
Esta orden se usa en un menú, tal y como muestra este ejemplo:
title Esta opción es demasiado peligrosa para que la ejecute cualquiera lock root (hd0,a) kernel /os-sin-seguridad |
Ver también 9. Protege tu ordenador de accesos no autorizados.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grub> map (hd0) (hd1) grub> map (hd1) (hd0) |
En el ejemplo se intercambia el orden entre el primer y el segundo disco duro. Ver también 4.2.6 DOS/Windows.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
password
(mirar sección 12.7.10 password). Ver también 9. Protege tu ordenador de accesos no autorizados.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
kernel
. Debes cargar una imagen de núcleo multiarranque
antes de cargar cualquier módulo. Ver también 12.8.26 modulenounzip.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
module
(mirar sección 12.8.25 module), solo que con
la descompresión automática deshabilitada.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grub
(mirar sección 14. Invocar el intérprete grub). Esta orden solo se puede usar en el intérprete.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ES:ESI
usado por algunos gestores
de arranque que se cargan en cadena), el tipo de unidad BSD (para arrancar
núcleos BSD utilizando su formato de arranque nativo), y para determinar
correctamente la "rodaja" (slice) de PC donde se encuentra una subpartición
BSD. Si por ejemplo existe un disco IDE y uno SCSI, y tu partición
raiz de FreeBSD está en el disco SCSI, utiliza `1' para
hdbias.
Ver también 12.8.32 rootnoverify.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
root
(mirar sección 12.8.31 root), pero no intenta
montar la partición. Util cuando un SO se encuentra fuera del area
de disco que GRUB es capaz de leer, pero aún así se quiere asignar
el dispositivo raiz correcto. Observa que los puntos mencionados
anteriormente para root
derivados del intento de montar
la partición no funcionarán correctamente.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
default saved timeout 10 title GNU/Linux root (hd0,0) kernel /boot/vmlinuz root=/dev/sda1 vga=ext initrd /boot/initrd savedefault title FreeBSD root (hd0,a) kernel /boot/loader savedefault |
Con esta configuración GRUB seleccionará la última opción arrancada como la opción por defecto. Ver también 12.6.1 default.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
install
(mirar sección 12.8.18 install) para hacer el trabajo,
e instala GRUB en el dispositivo install_device. Si se especifica
image_device, buscará las imágenes de GRUB (mirar sección 10. Archivos de imagen de GRUB) en el
dispositivo image_device, en caso contrario utiliza el
dispositivo raiz actual, fijado mediante la orden root
. Si
install_device es un disco duro, intentará insertar si fuera posible
una Etapa 1.5.
La opción `--prefix' especifica el directorio en el que están las imágenes de GRUB. Si no se indica, GRUB las busca automáticamente en `/boot/grub' y `grub'.
Las opciones `--force-lba' y `--stage2' sólo se pasan
a install
si se especifica explicitamente. mirar sección 12.8.18 install para
más información.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Precaución: Se debe usar esta orden con mucho cuidado, y sólo debería ser necesario con equipos viejos. La comprobación de BIOS de GRUB es capaz de detectar toda la RAM en todos los equipos recientes de los que el autor ha oído hablar. Se puede usar también con propósito de pulir errores mintiendo al SO.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Este capítulo describe los mensajes de error mostrados por GRUB cuando surjen problemas. mirar sección 14. Invocar el intérprete grub si tu problema es específico del intérprete grub.
13.1 Errores que imprime la Etapa 1 13.2 Errores que imprime la Etapa 1.5 13.3 Errores que imprime la Etapa 2
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Por lo general, la Etapa 1 responde a los errores imprimiendo un mensaje de error y parándose. Presionar CTRL-ALT-DEL hará que se reinicie.
Lo que sigue es una lista comprensiva de los mensajes de error de la Etapa 1:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Por lo general, la Etapa 1.5 responde a los errores imprimiendo un mensaje
de error con formato Error num
y parándose. Presionar
CTRL-ALT-DEL hará que se reinicie.
Los números de error corresponden a los errores devueltos por la Etapa 2. mirar sección 13.3 Errores que imprime la Etapa 2.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
La Etapa 2 responde a los errores de manera general abortando la operación que se esté realizando, imprimiendo un mensaje de error y (si es posible) o bien continuar basándose en el hecho de que ha ocurrido un error o esperar a que el usuario resuelva el error.
Lo que sigue es una lista comprensiva de los mensajes de error de la Etapa 2 (los números de error de la Etapa 1.5 se recojen en cada descripción delante de los dos puntos):
install
). En
este caso deberías montar la partición con la opción `-o notail'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Este capítulo documenta el intérprete de órdenes de grub grub
.
Observa que el intérprete de grub es un emulador; no funciona bajo el
sistema nativo, por lo que a veces puede equivocarse. Por lo tanto no
deberías fiarte de él demasiado. Si hubiera cualquier problema con él,
no dudes en usar un sistema GRUB nativo, especialmente si no acierta
con la correspondencia entre unidades de la BIOS y dispositivos del SO.
14.1 Introducción al intérprete de grub Como usar el intérprete grub 14.2 Como instalar GRUB mediante grub
14.3 La correspondencia entre unidades de la BIOS y dispositivos del SO Correspondencia entre uniidades de BIOS y dispositivos del SO
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Puedes usar la orden grub
para instalar GRUB bajo tus sistemas
operativos y como campo de pruebas cuando añadas una nueva caracteristica
en GRUB o cuando corrijas un fallo. La orden grub
es casi igual
a una Etapa 2, y de hecho, comparte el código fuente con la Etapa 2 y
en ambas puedes utilizar las mismas órdenes (mirar sección 12.5 Lista de las órdenes disponibles). La
emulación se realiza reemplazando las llamadas de la BIOS con llamadas
de sistema de UNIX y funciones de libc.
La orden grub
acepta las opciones siguientes:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grub
El procedimiento de instalación es el mismo que bajo una Etapa 2
nativa. mirar sección 3. Instalación para más información. Aquí se
describe la información específica de la orden grub
.
Con lo que debes tener cuidado es con el buffer cache.
grub
utiliza los dispositivos directamente (raw) en vez de los sistemas de
ficheros que proveen tus sistemas operativos, por lo que existe el
problema potencial de que inconsistencias del caché puedan corromper
tu sistema de ficheros. Lo que nosotros recomendamos es:
grub
las unidades
en las que GRUB pueda escribir datos.
grub
.
Además de esto, introduce la orden quit
cuando acabes la
instalación. Esto es muy importante porque quit
hace
consistente el buffer caché. No pulses C-c.
Si quieres instalar GRUB de manera no interactiva, especifica la opción `--batch' en la línea de órdenes. Aquí tienes un ejemplo sencillo:
#!/bin/sh # Usa /usr/sbin/grub si estás en un sistema antiguo. /sbin/grub --batch <<EOT 1>/dev/null 2>/dev/null root (hd0,0) setup (hd0) quit EOT |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Si el fichero del mapa de dispositivos ya existe, el intérprete de grub lo lee para corresponder unidades de la BIOS a dispositivos del SO. El archivo consiste en líneas como esta:
dispositivo archivo |
dispositivo es una unidad, con la sintaxis propia de GRUB (mirar sección 11.1 How to specify devices), y archivo es un fichero del SO, normalmente un fichero de dispositivo.
La razón por la que el intérprete de grub te da un fichero de dispositivos es que en algunos contextos no es capaz de adivinar la correspondencia de unidades de la BIOS a dispositivos del SO correctamente. Por ejemplo, si intercambias la secuencia de arranque entre IDE y SCSI en la BIOS, el intérprete equivoca el orden.
Así, puedes editar el archivo si el intérprete de grub comete algún error. Puedes poner los comentarios que necesites en el archivo, ya que el intérprete de grub asume que una línea es sólo un comentario si el primer caracter es `#'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
El programa grub-install
instala GRUB en tu disco mediante
el intérprete de grub (mirar sección 14. Invocar el intérprete grub). Debes
especificar el nombre del dispositivo en el que quieres instalar GRUB,
de la siguiente manera:
grub-install disp_instalación |
El nombre del dispositivo disp_instalación es un nombre de dispositivo del sistema operativo o de GRUB.
grub-install
acepta las opciones siguientes:
grub-install --root-directory=/boot '(hd0)' |
grub-install --grub-shell="grub --read-only" /dev/fd0 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
El programa grub-md5-crypt
encripta una contraseña en formato
MD5. Esto es solamente una interfaz del intérprete de grub (mirar sección 14. Invocar el intérprete grub). Las contraseñas encriptadas por este
programa se pueden usar con la orden password
(mirar sección 12.7.10 password).
grub-md5-crypt
acepta las opciones siguientes:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
El programa mbchk
comprueba el formato de un núcleo
Multiarranque. Recomendamos usar este programa antes de arrancar
un núcleo propio con GRUB.
mbchk
acepta las opciones siguientes:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Precaución: GRUB requiere binutils-2.9.1.0.23 o posterior porque el ensamblador GNU ha sido modificado para poder producir auténtico código máquina de 16bits entre las versiones 2.9.1 y 2.9.1.0.x. Ver http://sourceware.cygnus.com/binutils/, para información sobre como obtener la última versión.
GRUB está disponible en el servidor GNU de archivos alpha ftp://alpha.gnu.org/gnu/grub o en cualquiera de sus espejos. El archivo llevará el nombre grub-version.tar.gz. La versión actual es , por lo que el archivo que deberías descargar es:
ftp://alpha.gnu.org/gnu/grub/grub-.tar.gz
Para desempaquetar GRUB usa la instrucción:
zcat grub-.tar.gz | tar xvf - |
lo que creará un directorio llamado `grub-' con las fuentes. Puedes mirar el fichero `INSTALL' para instrucciones detalladas sobre como compilar e instalar GRUB, pero debería ser suficiente hacer:
cd grub- ./configure make install |
Esto instalará el intérprete de grub `grub' (mirar sección 14. Invocar el intérprete grub), el comprobador de Multiarranque `mbchk' (mirar sección 17. Invocar mbchk), y las imágenes de GRUB. También instalará el manual de GRUB.
La versión más reciente está también disponible en el CVS. El depósito es:
:pserver:anoncvs@subversions.gnu.org:/cvsroot/grub
y el módulo es:
grub
La contraseña para anoncvs está vacía. La instrucción es por tanto:
cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/grub login Password: ENTER cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/grub co grub |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Estas son las directrices sobre como informar de fallos. Echa un vistazo a la lista siguiente antes de enviar un correo electrónico a bug-grub@gnu.org:
La información sobre tu hardware es también esencial. Especialmente importantes son las geometrías y las tablas de partición de tus unidades de disco duro y tu BIOS.
Cuando adjuntes un parche, hazlo en formato diff unificado, y escribe entradas de ChangeLog. Aunque, incluso si haces un parche, no olvides explicar el problema para que podamos entender para que sirve el parche.
Si sigues los consejos anteriores, manda un correo electrónico a bug-grub@gnu.org e intentaremos arreglar los fallos.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Aquí están algunas de las ideas que quizás ocurran en el futuro:
Mira el archivo `TODO' en la distribución de las fuentes para más información.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Jump to: | B C D E F G H I K L M P Q R S T U V |
---|
Jump to: | B C D E F G H I K L M P Q R S T U V |
---|
[Top] | [Contents] | [Index] | [ ? ] |
arranque en cadena es el mecanismo para arrancar sistemas operativos no soportados a través de otro gestor de arranque. Se usa normalmente para arrancar DOS o Windows.
Existen unos pocos casos patológicos donde la carga de un núcleo ELF mal organizado podría llevar más tiempo, pero en la práctica esto nunca ocurre
El LInux LOader, un gestor que todo el mundo usa pero a nadie gusta
Observa
que el dispositivo raiz de GRUB no significa necesariamente la partición
raiz de tu SO; Si necesitas especificar la partición raiz para tu SO,
añade ese argumento en la orden kernel
.
Esto no es necesario para la mayoría de sistemas operativos modernos.
RARP está en desuso, ya que no puede servir mucha información
Este comportamiento se cambiara sin embargo en una versión futura, de manera invisible para el usuario
La última opción todavía no ha sido implementada.
Se cargan ambas de la misma manera, por lo que nos referiremos a la Etapa 1.5 como Etapa 2 de aquí en adelante.
[Top] | [Contents] | [Index] | [ ? ] |
grub
[Top] | [Contents] | [Index] | [ ? ] |
1. Introducción a GRUB
2. Nomenclatura
3. Instalación
4. Arranque
5. Configuración
6. Descargar las imágenes del SO de la red
7. Usar GRUB a través de la línea de serie
8. Embedding a configuration file into GRUB
9. Protege tu ordenador de accesos no autorizados
10. Archivos de imagen de GRUB
11. Sintaxis y semántica del sistema de ficheros
12. Interfaz de usuario de GRUB
13. Mensajes de error que produce GRUB
14. Invocar el intérprete grub
15. Invocar grub-install
16. Invocar grub-md5-crypt
17. Invocar mbchk
A. Frequently asked questions
B. Como obtener y compilar GRUB
C. Informar de fallos
D. Direcciones que tomará GRUB
Indice
[Top] | [Contents] | [Index] | [ ? ] |
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ < ] | Back | previous section in reading order | 1.2.2 |
[ > ] | Forward | next section in reading order | 1.2.4 |
[ << ] | FastBack | previous or up-and-previous section | 1.1 |
[ Up ] | Up | up section | 1.2 |
[ >> ] | FastForward | next or up-and-next section | 1.3 |
[Top] | Top | cover (top) of document | |
[Contents] | Contents | table of contents | |
[Index] | Index | concept index | |
[ ? ] | About | this page |