Configurar GRUB 2


Configurar GRUB 2

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Cambios de configuración normalmente son hechos a /etc/default/grub y a los ficheros personalizados localizados en /etc/grub.d. El archivo /boot/grub/grub.cfg no debería ser editado por el usuario; los cambios a este archivo son hechos por guiones (scripts) de configuración.
Algunos de los muchos cambios comunes, tales como la omisión OS/kernel y fuera de tiempo (timeout) del menú pueden ser hechos desde dentro de una aplicación llamada StartUp-Manager. Ver la documentación comunitaria de StartUpManager ( https://help.ubuntu.com/community/StartUpManager ) para más información acerca de cómo instalar y usar esa aplicación.

 

El fichero /etc/default/grub
Es el fichero de configuración principal para cambiar la configuración por omisión. Hasta la instalación las siguientes líneas están disponibles para alteración por el usuario:
GRUB_DEFAULT
Establece la entrada de menú por defecto. Podrían ser entradas numéricas, una completa entrada de menú entrecomillada, o "saved".

Nota para usuarios de múltiples OS: Si GRUB 2's os-prober identifica sistemas operativos adicionales mientras corre el guión (script) /etc/grub.d/30_os-prober la característica de ocultación de menú timeout está deshabilitada por declaraciones condicionantes. Esto también deshabilita la habilidad de usar la tecla SHIFT para mostrar el menú durante el arranque. Usuarios con múltiples sistemas operativos que quieran disimular el menú pueden encontrar guiones editados en varios forums que les permitirán agregar una característica de ocultación timeout para la secuencia de arranque (por ejemplo en ubuntuforums http://ubuntuforums.org/showthread.php?t=1287602 ).

 

Boot Display Behavior (Conducta de Arranque en Pantalla)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GRUB 2 es cargado antes que cualquier sistema operativo. Sus componentes modulares son cargados sobre una base as-needed (según necesidades). El comportamiento del menú en pantalla generalmente está determinado por la configuración en /etc/default/grub. Revise la sección "Configurar GRUB 2" para entradas específicas y formatos orientativos.
Initial Default (La omisión inicial)

GRUB 2 arrancará directamente en el sistema operativo por defecto si ningún otro OS es detectado. Ningún menú será presentado. Si otro OS es detectado el menú GRUB 2 se mostrará.

Timed Display (Tiempo de presentación)

El menú es mostrado por un número de segundos predeterminado. La entrada por defecto es resaltada y otras selecciones podrían hacerse por el usuario antes de que expire timeout (el temporizador). El timeout por defecto es de 3 segundos ahora. El temporizador continúa antes de presionar cualquier tecla o la entrada resaltada se selecciona presionando [Enter]. Si el usuario no selecciona una entrada GRUB 2 arranca la entrada por defecto al finalizar el período temporal.
Una vez una tecla ha sido pulsada el temporizador es desactivado y el usuario tiene que hacer una selección manualmente.
La entrada por defecto está determinada por el DEFAULT=setting en /etc/default/grub; el primer "menuentry" tiene un valor de "0".

Hidden (Ocultación)

Ninguna entrada de menú es presentada. La pantalla gráfica, si se configuró, será mostrada.
El usuario puede interrumpir el proceso de arranque y mostrar el menú por mantener presionada la tecla SHIFT hasta que el menú es presentado.

GRUB 2 busca por una señal de la tecla SHIFT depresionada durante el arranque. Si la tecla está presionada o GRUB 2 no puede determinar el estado de la tecla, el menú se muestra.

El tiempo que la pantalla sigue en blanco pero disponible para mostrar es determinado por una configuración en /etc/default/grub.
GRUB 2 puede mostrar un contador temporizador para proveer reacción visual en el tiempo que permanece hasta que la selección por omisión es elegida. La configuración del temporizador es permitida en /etc/default/grub.
Al finalizar el temporizador, la entrada por defecto determinada en la configuración de /etc/default/grub será seleccionada.

Saved (Salvado)

Salvar un OS puede alcanzarse por correr sudo grub-set-default si DEFAULT=saved está establecido en /etc/default/grub. También podría ser salvado si SAVEDEFAULT=true también está establecido en /etc/default/grub. En este caso, el OS por omisión permanece hasta que un nuevo OS es seleccionado manualmente desde el menú GRUB 2 o el comando grub-set-default es ejecutado.

Last Boot Failed or Boot into Recovery Mode (Falló el último arranque o Arrancar en Modo de Recuperación)

Si el último arranque falló o después de un arranque en Recovery Mode el menú será presentado hasta que el usuario haga una selección. La configuración del temporizador en /etc/default/grub no se aplica en este caso. Para cambiar esta conducta, /etc/grub.d/00_header tiene que ser modificado (si el estado de comprobación registrado falla al final de 00_header).

 

Custom Menu Entries (Entradas de menú personalizadas)  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GRUB 2 permite a los usuarios crear selecciones de menú personalizadas que serán automáticamente agregadas al menú principal cuando sudo update-grub sea ejecutado. Un fichero 40_custom vacío está disponible en /etc/grub.d/ para usar o para servir como un ejemplo para crear otros menús personales. Hay algunas consideraciones para menús personales:

La entrada 10_linux aparecerá antes que la entrada 30_os-prober, que será puesta antes que la entrada 40_custom, que precederá a la entrada my.custom.entries.

Un usuario querrá una entrada de menú personalizada que aparezca primero en el menú principal entonces debería nombrar la directiva 06_xxx de modo que su listado sea primero en el menú.

Si el fichero personal es puesto arriba del listado de las entradas de menú de grub.cfg, el usuario podría querer confirmar el DEFAULT=setting de /etc/default/grub después de correr update-grub. Asegúrese aún de que el punto deseado es listado en menuentry. Cuando cuente el primer "menuentry" en /boot/grub/grub.cfg es 0.

 

Creating the Custom Menu (Creando el menú personalizado) 

 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

El usuario puede, ó editar el fichero /etc/grub.d/40_custom por defecto ó crear uno de nuevo. El modo fácil de crear el contenido de un menú personalizado es copiar una entrada de trabajo desde /boot/grub/grub.cfg. Una vez copiado, el contenido de 40_custom puede ser adaptado al uso deseado.

#!/bin/sh
exec tail -n +3 $0

* title cambiado a menuentry. La línea tiene que finalizar con una llave abierta ({)

* root cambiado a set root=

* kernel tiene que ser cambiado a linux

* Cualquier partición designada (sda4, sda6) tiene que ser cambiada como GRUB y GRUB 2 cuentan las particiones diferentemente. La primera partición para GRUB 2 es 1, no 0. Los dispositivos aún comienzan la cuenta en 0.

* Mirar cuidadosamente en el formato de cualquier entrada de trabajo en la lista del menú GRUB 2 para asegurarse que el formato correcto es usado.

* La primera línea tiene que comenzar con menuentry y terminar con {

* El área entre las comillas que aparece en el menú GRUB 2, edítelas como desee.

* La última línea del menuentry tiene que ser }

* No dejar espacios vacíos al final de las líneas

* La línea set root= debería apuntar a la localización /boot de GRUB 2 (sdXY)

* La referencia root en la línea linux debería apuntar a la partición del sistema.

- Si GRUB 2 no puede encontrar el núcleo referenciado, intente reemplazar el UUID con el nombre del dispositivo (ejemplo: /dev/sda6)

menuentry "My default Karmic" {
set root=(hd0,1)
search --no-floppy --fs-uuid --set cb201140-52f8-4449-9a95-749b27b58ce8
linux /boot/vmlinuz-2.6.31-11-generic root=UUID=cb201140-52f8-4449-9a95-749b27b58ce8 ro quiet splash
initrd /boot/initrd.img-2.6.31-11-generic
}

menuentry "System Rescue CD" {
set root=(hd0,8)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz
}

menuentry "Grub 1 Bootloader" {
set root=(hd0,8)
chainloader +1

}

 

Command Line and Rescue Mode (Línea de comando y Modo rescate) 

 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Hay varios modos para un usuario intentar resumir una falla de arranque. Si el menú aún está disponible, la configuración del menú puede ser visualizada y alterada por el usuario. Adicionalmente, si GRUB 2 detecta errores durante el arranque y no puede pasar el control a un núcleo seleccionado debido a un error u omisión en grub.cfg revertirá al modo de rescate. Ambos métodos permiten al usuario recuperar un sistema usable via una limitada interfaz de línea de comando. Si solamente la palabra "Grub" aparece arriba de la pantalla sin un indicador (acceso a la línea de comando) o menú, refiérase a la sección "Reinstalling from LiveCD".

Los problemas: Si usted está en esta sección, usted probablemente está teniendo problemas de arranque a su OS. Las siguientes secciones detallan métodos para usar el editor y capacidades de la línea de comando de GRUB 2 para intentar arrancar el sistema. Uno de los progresos de GRUB 2 es la capacidad para buscar contenidos de particiones desde la línea de comando. Si las instrucciones en las siguientes secciones no trabajan, especialmente si acompañadas por mensajes "not found" (no encontrado) ó "the kernel must be loaded first" (el núcleo tiene que ser cargado primero), use los siguientes comandos para explorar las particiones. Para Ubuntu, el directorio /boot normalmente debería contener por lo menos un núcleo "vmlinuz" y un fichero .img "initrd". El directorio /boot/grub/ normalmente debería contener "grub.cfg" y varios ficheros ".mod". X es la unidad, comienza con 0. Y es el número de partición, comienza con 1. Para una mera instalación Ubuntu sobre una única unidad, la principal unidad/partición frecuentemente es hd0,1. Para arranque dual con Windows sobre una única unidad, la localización normal frecuetemente es hd0,5. Utilice el comando ls por si mismo para ver qué unidad(es)/partición(es) son conocidas para GRUB 2.

 

Para explorar los dispositivos conocidos para GRUB 2, presione "c" desde el menú GRUB 2 para entrar en la línea de comando (si no la hay ya).

 

 

Editing Menus During Boot (Edición de menús durante el arranque)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Si el menú no es presentado normalmente durante el arranque, mantener presionada la tecla SHIFT cuando la computadora intenta arrancar para mostrar el menú GRUB 2.
Con el menú presentado, pulsar cualquier tecla (excepto Enter) para detener el contador de tiempo y seleccionar la entrada deseada con las teclas cursoras up/down.
Pulse la tecla "e" para mostrar la configuración de selecciones.

Use el teclado para posicionar el cursor. En este ejemplo, el cursor ha sido movido de modo que el usuario pueda cambiar o eliminar el número 9.
Haga un único cambio o varios para cada línea o evento. No utilice Enter para moverse entre líneas.
Tabulación completa está disponible, que es especialmente útil en introducir entradas de kernel e initrd.
Cuando acabe, resuelva los siguientes pasos:

Los cambios son listados al pie de la pantalla como un recuerdo.

Command Line Mode (Modo línea de comando)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Desde la pantalla del menú principal GRUB 2 el usuario puede elegir para lanzar una línea de comando por teclear 'c'.
Hay algunos útiles trucos y características para usar con la línea de comandos:


Algunos de los más útiles comandos incluyen:

Comando background_image

Resultado

Carga una imagen de escritorio existente. Use tab completion para ayudar a completar la entrada del nombre de fichero.

background_image=/usr/share/images/grub/ entonces tabule para mostrar una lista de todas las imágenes. Comando útil cuando inicialmente compruebe imágenes gráficas.

 

Comando cat

Resultados

Usado para presentar el actual contenido de un determinado fichero. cat /boot/grub/grub.cfg , cat /etc/fstab

 

Comando help

Resultados

Visualiza todos los comandos disponibles. Teclee help x para conseguir un listado de comandos comenzando con la letra x.

help xxx para información acerca del comando xxx. Este comando debería ser precedido por correr "set pager=1", el cual actúa como el comando "| more" en el Terminal, para prevenir desplazamiento péguelo arriba de la pantalla.

 

Comando ls

Resultados

Usado a solas, lista todos los dispositivos conocidos para GRUB 2, tales como (hd0) (hd0,1) etc. Visualice particiones disponibles con ls. Visualice contenidos de directorio /boot y /grub con ls /boot, ls /grub.

 

Comando initrd

Resultados

Carga un initrd.

 

Comando linux

Resultados

Carga un núcleo Linux.

 

Comando loopback

Resultados

Monta un fichero como un dispositivo. loopback loop (hd0,2)/iso/my.iso

 

Comando lsmod

Resultados

Muestra módulos cargados.

 

Comando reboot

Resultados

Reinicia la máquina.

 

Comando rescue

Resultados

Entra en modo rescate.

 

Comando set

Resultados

Muestra las variables de entorno en su lugar. Combinado con otros, set variables tales como set gfxmode=640x480, set color_normal=cyan/black. Use el segundo comando en modo línea de comando para comprobar diversas fuentes de color para el menú.

 

Comando vbeinfo

Resultados

Muestra las resoluciones de monitor disponibles.

 

Using CLI to Boot (Usar CLI - http://en.wikipedia.org/wiki/Command-line_interface - para arrancar)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Si el usuario tiene problemas de arranque pero el menú está disponible, el método más fácil de arrancar el sistema es editar el menú existente. Refiérase a "Editing Menus During Boot". Si GRUB 2 falla para encontrar un fichero grub.cfg usable debería revertirlo al modo grub-rescue. El indicador de la línea de comando mostrará grub-rescue> y ningún menú será presentado. Desde la línea de comando el usuario puede intentar entrar manualmente las instrucciones para arrancar un sistema utilizable.


Si el indicador de la línea de comando no está ya activo presione "c" para entrar el modo "Command Line". Usted verá el indicador GRUB 2: grub> ó grub rescue>

 

Si usted quiere cancelar y volver a iniciar en cualquier momento, ESC retirará cambios y le regresa al menú previo. Use los dos comandos siguientes para determinar el dispositivo (drive) y partición del sistema que quiere arrancar.

     En este ejemplo sda, sda1, sdb5, son reconocidos.

Express Boot to the Most Recent Kernel (Arranque expreso al núcleo más reciente)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sumario de comandos *:


Instrucciones ampliadas *:

Presione ENTER después de completar cada línea. Algunas entradas no proveerán reacción. Esto es normal.

Si un mensaje de error "file not found" o similar se presentó mientras corre esos comandos, asegúrese de usar los valores correctos X e Y. El comando ls puede ayudarle a determinar los valores correctos.

Una vez los valores X e Y son confirmados ejecute el siguiente comando:

set prefix=(hdX,Y)/boot/grub

 

1º. set root=(hdX,Y)

Escriba con corrección X,Y producido desde el comando ls y presione ENTER.

Recuerde que GRUB 2 cuenta la primera unidad como 0, la primera partición como 1.

Ejemplo: Si el sistema Ubuntu está sobre sda5, entre: set root=(hd0,5)

2º. linux /vmlinuz root=/dev/sdXY ro

Ejemplo: linux /vmlinuz root=/dev/sda3 ro

* Ver nota para usuarios Wubi.

3º. initrd /initrd.img

Selecciona la última imagen initrd.

4º. boot

Arranca el último núcleo en la partición seleccionada.

* Solo para usuarios Wubi - sustituya esos comandos en los pasos 1 y 2:

set root=(loop0)

linux /vmlinuz root=/dev/sdXY loop=/ubuntu/disks/root.disk ro

Esos cambios no son permanentes. Después de arrancar exitosamente en el sistema el usuario debería correr sudo update-grub e inspeccionar el fichero de configuración de GRUB 2 (/boot/grub/grub.cfg). Para problemas con arrancar el principal núcleo Linux, asegúrese de que las líneas search, linux, e initrd en la sección [###BEGIN /etc/grub.d/10_linux ###END] del fichero ahora apuntan correctamente a las localizaciones correctas. El usuario podría necesitar reinstalar GRUB 2 (sudo grub-install /dev/sdX).

Boot a Specific Kernel Manually (Arrancar manualmente un núcleo específico)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Si un menú GRUB 2 no está disponible para editar durante el proceso de arranque la línea de comando aún podría permitir arrancar un núcleo específico. Si GRUB 2 está mirando en la localización correcta un usuario podría ser capaz de entrar toda la información necesaria en la línea de comando en una única entrada. Esta sección suministrará una guía paso a paso sobre cómo entrar esta información. La línea mirará similar a lo siguiente cuando complete:

 

Sumario de comandos *:

set

linux /boot/vmlinuz-<su versión> root=/dev/sdXY ro

initrd /boot/initrd-<su versión>

boot

 

Instrucciones ampliadas *:
Presione ENTER solamente después de completar cada paso ("1", "2", "3" y "4").

 

1º paso. Establecer la partición raíz.

set root=(hdX,Y)

Use el correcto X,Y producido desde el comando ls y ENTER. Recuerde que GRUB 2 cuenta la primera unidad como 0, la primera partición como 1. Por ejemplo, si el sistema Ubuntu está en sda5, entre: set root=(hd0,5)

* Para una instalación Wubi dentro de Windows, sustituya el siguiente comando:

set root=(loop0)

 

2º paso. Introduzca la información de la línea "linux"

linux /boot/vmlinuz-<su versión> root=/dev/sdXY ro

* Para una instalación Wubi dentro de Windows, sustituya el siguiente comando:

root=/dev/sdXY loop=/ubuntu/disks/root.disk

Después de teclear linux /boot/, el usuario puede tabular para mostrar los núcleos disponibles. No hay carácter espacio después de "/". Si ningún núcleo está visible, la dirección en la sección "Set Root" podría ser incorrecta. Introduzca el núcleo correcto por tecleo o use la tabulación para completar.

Para la sección root=/dev/ use el dispositivo correcto tal como "/dev/sda1", "/dev/sdb5", etc.

Agregar cualquier opción, tal como ro (read-only) al final de la línea (normalmente no es requerido).

Una vez toda la información en la línea es correcta debería mirar similar al ejemplo siguiente:

linux /boot/vmlinuz-2.6.31-16-generic root=/dev/sda1 ro

Cuando correctamente tecleado y ENTER, si el núcleo Linux se encuentra, una línea similar a la "Linux-bzImage" aparecerá confirmada la linea resaltada abajo.

Si un mensaje de error "file not found" o similar ocurre, ó el dispositivo/partición/fichero no existe, ó GRUB 2 no está mirando a la unidad correcta, partición y/o directorio. Determine la localización correcta utilizando el comando ls y entonces ejecute el siguiente comando. Repita el paso 2.

set prefix=(hdX,Y)/boot/grub

 

3º paso. Introduzca la información de la línea "initrd"

initrd /boot/initrd.img-<su versión>

Después de teclear initrd /boot/, el usuario puede tabular para mostrar las imágenes initrd disponibles. No deje un espacio después del "/". Si ninguna imagen es visible, la dirección en la sección "Set Root" podría ser incorrecta. Entre la imagen correcta por tecleo o use la tabulación para completar.

Una vez toda la información en la línea es correcta debería mirar similar al ejemplo siguiente. Presione ENTER. Mire de confirmar.

initrd /initrd-2.6.31-16-generic root=/dev/sda1 ro

Cuando correctamente tecleado e introducido, si la imagen initrd se encuentra, una línea similar a la línea de confirmación "initrd" resaltada en el gráfico anterior debería aparecer.

 

4º paso. Arranque

boot

Teclee el comando y pulse ENTER.


Rescue Mode (Modo de rescate)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

El modo de rescate es el mayor avance de GRUB 2. Si GRUB 2 falla para encontrar un grub.cfg utilizable para transferir control a un núcleo le arrojará a un indicador grub-rescue>. Desde este indicador el usuario puede investigar problemas, hacer cambios, y reintentar el arranque.
El modo de rescate suministra unos pocos comandos que la línea normal del indicador GRUB, pero también provee esos comandos adicionales:

 

Comando: dump

Resultado Aclara la memoria.

Comando: exit

Resultado Sale de GRUB 2.

Comando: normal

Resultado Regresa al modo estándar "grub>" si es posible.

Los siguientes comandos pueden ser utilizados en el modo de rescate de grub:

boot cat chainloader dump exit kfreebsd kfreebsd_loadenv kfreebsd_module help initrd insmod linux lsmod multiboot normal rmmod set unset

Mientras no todos los siguientes comandos son necesarios para arrancar un núcleo Linux, correr todos los comandos suministrará una mejor suerte de sucesos por permitir al usuario identificar problemas antes de que el comando boot sea ejecutado.

Si comandos adicionales son necesitados, el usuario podría intentar cargar el módulo normal GRUB 2 con insmod normal. Si es afortunado, help y comandos adicionales serán disponibles.

Sumario de comandos *:

1. ls

2. set prefix=(hdX,Y)/boot/grub

3*. set root=(hdX,Y)

4. set

5. ls /boot

6. insmod /boot/grub/linux.mod

7*. linux /vmlinuz root=/dev/sdXY ro

8. initrd /initrd.img

9. boot

* Para instalaciones Wubi (dentro de Windows) solamente sustituir estos comandos en los pasos 3 y 7.

set root=(loop0)

linux /vmlinuz root=/dev/sdXY loop=/ubuntu/disks/root.disk ro

Instrucciones ampliadas:

1. ls

Esto mostrará los dispositivos y particiones conocidos. Desde esta información, el usuario tiene que determinar el dispositivo y partición sobre qué el sistema está instalado.

2. set prefix=(hdX,Y)/boot/grub

Si es incorrecto, errores "no such disk" o "not found" ocurrirán después.

3. set root=(hdX,Y)

En este comando, X es el dispositivo/unidad, comenzando con 0. Y es la partición, comenzando con 1.

Ejemplo: (hd0,1) es sda1. (hd2,5) es sdc5.

4. set

Inspecciona el listado "prefix=". Debería igualar la designación root en el paso 3 en el siguiente formato: prefix=(hdX,Y)/boot/grub

5. ls /boot/

Inspecciona los contenidos. El usuario debería ver diversos núcleos, imágenes initrd y el directorio grub. Si no, use el comando ls para inspeccionar el dispositivo e intente encontrar esos ficheros y directorios. Si es necesario, establezca otro dispositivo como root.

6. insmod /boot/grub/linux.mod

Carga (inserta módulo) el módulo linux. Sin este módulo cargado el usuario recibirá un mensaje "Unknown command linux" cuando intente cargar el núcleo.

7. linux /vmlinuz root=/dev/sdXY ro

Carga el núcleo linux, sustituya la designación correcta para "X" e "Y" (ejemplo: sda1). El usuario verá un mensaje mostrando que el núcleo ha sido cargado. (Ver gráfico en la previa sección anterior).

* Los usuarios de Wubi tienen que utilizar el comando alternativo presentado anteriormente.

8. initrd /initrd.img

Carga la imagen initrd. Cuando presione ENTER el usuario podría (o no podría) ver un mensaje en el Terminal. (Ver resaltado en el gráfico anterior).

9. boot

Intenta arrancar usando la información introducida.

Esos comandos no son permanentes. Después de un afortunado arranque del sistema el usuario debería ejecutar sudo update-grub e inspeccionar el fichero de configuración de GRUB 2 (/boot/grub/grub.cfg). Para problemas con arrancar el principal núcleo Linux asegúrese de que las lineas search, linux, e initrd en la sección [###BEGIN /etc/grub.d/10_linux ###END] del fichero ahora apuntan a la localización correcta. El usuario podría necesitar reinstalar GRUB 2 usando sudo grub.install /dev/sdX.

 

Sigue en "Errores de GRUB" ...