Gestor de arranque

Cuando se testea el hardware y es posible arrancarlo, la BIOS o UEFI pasan el control a un gestor de arranque, el cual es un programa muy pequeño que se encarga de cargar el sistema operativo y pasarle el control.

En Linux uno de los primeros gestores de arranque era LILO o Linux Loader, este es un cargador bastante antiguo que esta hoy en día en desuso.

También existe el gestor de arranque GRUB (Legacy): Este mejoro a LILO aunque muy pocas distribuciones lo implementan, ya que está siendo reemplazado por GRUB2.

GRUB2 es el gestor de arranque predeterminado para la mayoría de las distribuciones actuales.

Tomar en cuenta cuando decidimos usar GRUB1

  • Admite BIOS y no UEFI
  • Su fichero de configuración está en /boot/grub/menu.lst o grub.conf.
  • Numera las unidades y particiones de forma especial. (El primer disco será hd0, la primera partición hd0,0, después con 1 y así sucesivamente.

En la configuración tiene las opciones.

  • default: S.O. por defecto que arrancará.
  • timeout: Es el tiempo para pasar al sistema por defecto.
  • title: Nombre que aparecerá en el menú.
  • root: Indica con su nomenclatura, la partición que contiene el S.O. por ejemplo: root (hd1,2)
  • kernelb: Ruta del fichero del kernel y opciones de arranque.
  • initrm: Ruta del disco RAM, con opciones y controladores para poder arrancar.

Para sistemas operativos que no son Linux.

  • rootnoverify: Partición del S.O.
  • chainloader: Para pasar el control a otro cargador de arranque (+1 significa que lee el primer sector de la partición indicada por rootnoverify).

Al estar dentro del GRUB en la parte inferior aparecen algunas opciones para arrancar, mover, editar, etc.


¿Como podemos ver lo que contiene el fichero de configuración de GRUB?

  • Como root ir a la dirección /boot/grub/
  • Escribir en la terminal nano menu.lst o cualquier otro editor.
  • Dentro se encuentra el default, timeout, color, entradas definidas del S.O. a cargar, etc.

GRUB2

Es el actual gestor de arranque en casi todas las distribuciones de Linux. Es versátil y puede cargar módulos según las necesidades del sistema.

Algunas de las características son:

  • Hereda la nomenclatura de GRUB, pero las particiones empiezan en 1.
  • El fichero de configuración es: /boot/grub/grub.cfg o /boot/grub2/grub.cfg
  • Las entradas de los S.O. empiezan por la palabra reservada menuentry seguida del título y el resto de opción van dentro de llaves.
  • Otras diferencias, es que root no va solo, en su lugar se puede poner, set root = (hd0,1) o la partición que se quiera arrancar.
  • rootnoverify ya no existe y se sustituye por root.
  • Su fichero de configuración no se modifica manualmente con nanou cualquier editor, las opciones se personalizan en /etc/default/grub y el resto de datos se obtienen con unos scripts que se encuentran en /etc/grub.d/ donde se van ejecutando por orden según el nombre.

Para generar el grub.d que se encuentra en /etc/ es update-grub o update-grub2 aunque analizándolo bien se observa que es un enlace al primer comando.

También se podría usar el comando, grub-mkconfig pero la salida será redirigida a dicho fichero.

En caso de que no esté el gestor de arranque, la orden para instalar es grub-install.

Analizando el fichero de configuración de grub.

En el fichero /boot/grub/ se encuentra el fichero grub.cfg, pero no deberíamos de editarlo manualmente, incluso si se hace un less grub.cfg aparece un mensaje que advierte de no editar el fichero, ya que esta generado automáticamente por grub-mkconfig.

En el mismo fichero muestra cuál es el fichero de configuración.

grub2

Para ir al fichero de configuración y poder editar nano /etc/default/grub. Aquí podemos cambiar las variables necesarias dependiendo las necesidades.

edición grub2

Bueno, ahora que vimos los distintos cargadores de arranque veremos como cambiar de grub1 a grub2.

# apt-get install grub2
# update-grub

Al reiniciar el sistema, mostrar las opciones para actualizar de uno a otro.

Entrando escribir upgrade-from-grub-legacy para tomar las configuraciones del grub1 y pasarlas al grub2. Mostrará un asistente donde seleccionaremos el disco y no la partición.

Cuando se instala Windows 10, automáticamente por la configuración que este trae, el gestor de arranque desaparece, veremos como recuperarlo a continuación.

  • Tener una USB con un .iso de la distribución que no se puede ver por la instalación de Windows 10.
  • Reiniciar la PC con arranque desde USB. Ir a opciones avanzadas.
  • Entrar en modo rescate.
  • Iniciará una pequeña configuración del idioma, teclado, etc.
  • En la opción dispositivo a utilizar, escoger la unidad donde está instalado el sistema, ejemplo, /dev/sda1.
  • Ejecutar un intérprete de órdenes en /dev/sda1.
  • Aparecerá una advertencia donde le dice que deberá montar otros sistemas de ficheros, usted mismo si los necesita, omitir si el sistema está en una sola partición.
  • Abierto el intérprete de comandos usar los siguientes comandos.
  • # ls
  • # update-grub2
  • Instalar el grub en todo el disco.
  • #grub-install /dev/sda
  • # exit
  • Reiniciar el sistema.

Ya para terminar tenemos algunas opciones que le podemos pasar como parámetros al KERNEL.

  • QUIET: Evita mostrar los mensajes que pasan súper rápido al arrancar.
  • DEBUG: Aparecen mensajes de depuración, los cuales son tecnicos y no se suele revisar a diario.
  • INIT: Indica el programa que se ejecutará al arrancar, en lugar de /sbin/init, ejemplo: init=/bin/bash
  • SINGLE: Se ejecuta en modo monousuario, este suele encontrarse en los modos de depuración, es decir, arranque normal y a prueba de fallos.
  • ROOT=/DEV/DEVICE: Indica la partición que tiene el sistema raiz.
  • RW o RO: Se monta en solo lectura o en lectura y escritura.
  • MEM = SIZE: Fuerza a usar una cantidad determinada de RAM (mem=1024M)

Para modificar los parámetros, ir a /etc/default/grub con algún editor de textos.

Para añadirle opciones al kernel, aplicar en la línea GRUB_CMDLINE_LINUX_DEFAULT="quiet" si queremos que solo sea en arranque por defecto y si queremos que sea en todos los SO, ir a la línea GRUB_CMDLINE_LINUX="".

Por si se tiene algún problema con el inicio, contraseña, etc. en vez de sacar el sistema de inicio de systemd sacarlo de /bin/bash.

GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/bin/bash"

Se puede editar entrando en el grub con la tecla e y situándose hasta la línea que empieza con Linux y control x o f10 para arrancar. Esto solo tendrá efecto en el arrancado actual.

#Fotos del grub editando esta parte.

Para más referencia y evitar fallas de seguridad pueden leer el siguiente post.

Cada vez que se actualice el GRUB teclear en la línea de comandos update-grub2 para que los cambios surtan efecto.

Esto fue como trabajar y saber algo sobre el sistema de arranque en Linux, les invito a compartir.

Related Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada.