#4sysadmins

Inicio » GNU/Linux » Configurar GRUB

Configurar GRUB

Últimas Entradas

Follow #4sysadmins on WordPress.com

En esta entrada vamos a terminar por fin nuestras experiencias con los cargadores de arranque por excelencia. Hemos escrito ya varias entradas en las que resolvemos algunos de los problemas mas típicos con GRUB, aquí definitivamente veremos algo de teoría y afianzaremos los últimos conceptos.

Aconsejo leer esta entrada para entender bien lo que queremos hacer en cada momento, pero sin duda, si quieres saber como trabajan los gestores de arranque, como podemos cambiar uno por otro, como el sistema es capaz de localizar el MBR o arrancar por UEFI, etc… échale un ojo a las varias entradas que ya hemos publicado desde 4sysadmin.

Recuerda que aquí siempre intentamos aprender en lugar de hacer copy&paste para “salir del paso”.

 

El gestor de arranque

El gestor de arranque es un pequeño programa instalado normalmente en el primer sector del primer disco físico de la máquina o MBR (Master Boot Record) y que tiene por función invocar y cargar el kernel del sistema.

El gestor de arranque mas extendido es GRUB (Grand Unified Boot Loader) y a día de hoy se instala su versión dos. Para entendernos, GRUB Legacy es GRUB 1, o primera versión, mientras que GRUB es su versión dos.

 

Configuración de GRUB Legacy

El archivo utilizado para configurar GRUB Legacy es /boot/grub/menu.lst. También podemos encontrar que este es un enlace simbólico al archivo /boot/grub/grub.conf.

Para configurar el arranque de un kernel en GRUB Legacy, basta con introducir las siguientes líneas en uno de los archivos anteriormente citados:

tittle <un nombre identificativo del sistema>
root hdX,Y (donde X es el número de disco y empieza por 0 e Y es el número de partición y empieza en 1)
kernel /ruta/al/kernel root=/dev/sda ro (normalmente /boot/vmlinuzxxx.yyy. ro es read only)
initrd /ruta/imagen/ (/boot/initrd.img-xxx.yyy)

GRUB Legacy ofrece una característica muy apreciada: la edición interactiva de las secciones ya escritas en el archivo de configuración. De esta manera, antes de cargar el kernel (desde el menú de inicio) podremos teclear la letra ‘e‘ y editar los parámetros de arranque (tittle, root, kernel e initrd). Una vez modificados, se presiona la tecla ‘b‘ y el kernel será cargado con las nuevas modificaciones.

Puede ocurrir que no se disponga de ninguna entrada definida, en este caso pulsaremos la tecla ‘c’ que abrirá una consola interactiva desde la que definir cada uno de los parámetros. La forma en la que se definen los parámetros será la misma que la utilizada en el archivo de configuración, es decir línea a línea, lo que requiere de un conocimiento exacto del valor de cada parámetro a cargar (partición, ubicación del kernel, ubicación de la imagen initrd, etc.). Una vez ejecutada (línea a línea) cada una de los parámetros, escribiremos ‘boot‘ en la consola interactiva y el sistema iniciará.

 

Configuración GRUB

GRUB en su versión dos utiliza el archivo de configuración /boot/grub/grub.cfg. Este archivo se genera de forma automática o al ejecutar de forma manual el comando update-grub. Este comando utiliza una serie de scripts almacenados en /etc/grub.d que por si solo realizan un inventario de los posibles kernels e imágenes initrd instalados en el sistema. También podemos crear el archivo grub.cfg (igualmente a partir de estos archivos) con el comando grub-mkconfig.

Existen ciertas opciones modificables por parte del usuario que podremos encontrar en el archivo /etc/default/grub.

 

Rescatando a GRUB

Reinstalación simple desde un sistema activo

La situación “mas sencilla” en la que nos podemos encontrar tras un percance con GRUB Legacy o GRUB (por ejemplo, hemos eliminado el contenido de /boot, o lo hemos dejado lo suficientemente inconsistente como para que nuestro GRUB sea capaz de iniciar el sistema en el próximo arranque) es que aún estemos ejecutando el sistema, es decir estamos trabajando sobre él. En esta situación lo mejor es reinstalar GRUB.

Instalación de GRUB Legacy:

# grub-install --root-directory=dir_nuevo_kernel disco_destino

Donde dir_nuevo_kernel es el directorio de montaje donde hemos montado un nuevo kernel (por ejemplo, lo hemos grabado a un USB y hemos montado este en el sistema) y disco_destino, será el primer disco del sistema (generalmente /dev/sda)

Instalación de GRUB:

# grub-install dispositivo_bloque

Donde ‘dispositivo_bloque’ generalmente es /dev/sda

Reinstalación desde un sistema que no arranca

Esta situación es algo mas compleja por el hecho de que nos ponemos nerviosos en cuanto vemos que el sistema no encuentra el gestor de arranque en el MBR y por lo tanto el sistema no inicia. Ante esta situación nos haremos con un Live CD, le diremos a la BIOS que arranque desde el CD (también vale un USB si la BIOS lo permite). Una vez iniciado el sistema Live, abriremos una terminal y ejecutaremos el comando ‘grub‘. Se abrirá el modo interactivo que ya vimos en el apartado anterior, por lo que el proceso prácticamente se repite:

Para GRUB Legacy:

Dentro del shell interactivo de GRUB, especificamos la partición ‘root (hdx,y)‘ y a continuación el comando ‘setup (hdx)‘. Por último tecleamos ‘quit‘, y ya desde la sesión de la terminal, comprobamos (o creamos) que existe el archivo /boot/grub/menu.lst con sus respectivos parámetros.

En GRUB:

Gracias a la configuración automática de GRUB, tan solo deberemos de ejecutar desde la terminal del LiveCD el comando grub-install.

Apertura de una consola en caso de error en el arranque

Existe la posibilidad de pasar un parámetro al kernel indicándole un proceso para que lo inicie. Por tanto si este proceso inicia un shell, tendremos una terminal desde la que poder trabajar, y si somos habilidosos recuperar nuestro gestor de arranque. Ya vimos que desde el menú de GRUB podíamos teclear la letra ‘e‘ para editar las propiedades. Una vez dentro de la línea del kernel bastará con añadir al final de la línea el parámetro init=/bin/bash. Por último tecleamos ‘b’.

 

Con esta entrada desde 4sysadmins, nos queremos despedir de GRUB :D

 

Anuncios

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: