GRUB

GNU GRUB (GNU GRand Unified Bootloader) es un gestor de arranque múltiple, desarrollado por el proyecto GNU que se usa comúnmente para iniciar uno, dos o más sistemas operativos instalados en un mismo equipo. Se usa principalmente en sistemas operativos GNU/Linux.

GRUB fue inicialmente diseñado e implementado por el programador Erich Stefan Boleyn como parte del trabajo en el arranque del sistema operativo GNU Hurd desarrollado por la Free Software Foundation. En 1999, Gordon Matzigkeit y Yoshinori Okuji convirtieron a GRUB en un paquete de software oficial del Proyecto GNU y abrieron el desarrollo del mismo al público.

Desarrollo

El nombre de la versión más utilizada de GRUB es denominada GRUB Legacy. Esta versión es sobre la cual se solucionan los errores, pero no se añaden nuevas características. Los desarrolladores de GRUB han cambiado su enfoque hacia GRUB 2, una completa reescritura del gestor original, cuyos objetivos incluyen la puesta a un GNU GRUB más limpia, robusta, segura y potente.

El desarrollo de la versión más moderna, GRUB 2, se inició con el nombre de PUPA, hoy abandonado. El proyecto PUPA fue apoyado por la organización Information-technology Promotion Agency (IPA) en Japón. PUPA se integró en el desarrollo de GRUB 2 alrededor del 2002, cuando la versión 0.9x de GRUB fue renombrada a GRUB Legacy. Desde febrero del año 2008, GRUB 2 todavía sigue en desarrollo, aunque está siendo usado en las más recientes versiones de distribuciones de GNU/Linux.

Algunos de los objetivos del proyecto incluyen el soporte de plataformas no-x86, la internacionalización y localización, caracteres no ASCII, módulos dinámicos, gestión de memoria, un mini-lenguaje de escritura de guiones, la migración de plataforma específica (x86) de código a la plataforma de módulos específicos y un marco orientado a objetos.

Descripción

Técnicamente, un gestor de arranque múltiple es aquel que puede cargar cualquier archivo ejecutable y que contiene un archivo de cabecera en los primeros 8 KB del archivo. Tal cabecera consiste en 32 bits de un número “mágico”, 32 de indicadores (flags), otros 32 de un número “mágico”, seguidos de información sobre la imagen ejecutable.

Una de las características más interesantes de este tipo de gestor es que no es necesario instalar una partición nueva o un núcleo nuevo, pudiendo cambiar todos los parámetros en el arranque mediante el sistema de órdenes de consola de GRUB.

Mientras los gestores de arranque convencionales tienen una tabla de bloques en el disco duro, GRUB es capaz de examinar el sistema de archivos. Actualmente, soporta los siguientes sistemas de archivos:

  • ext2/ext3/ext4 (Grub2) usado por los sistemas UNIX (incluyendo GNU/Linux).
  • ReiserFS.
  • XFS de SGI (aunque puede provocar problemas).
  • UFS y UFS2 de FreeBSD u otros sistemas BSD.
  • VFAT, como FAT16 y FAT32 usados por Windows 9.x.
  • NTFS usado por los sistemas Windows NT (a partir de Windows NT v.3.51).
  • JFS de IBM.
  • HFS de Apple Inc.
  • ZFS de Opensolaris/Solaris.
  • Btrfs Sistema de archivos Copy-on-write como futuro reemplazo de ext4.
  • ISO 9660 Sistema de archivos de imágenes en disco CD-ROM o DVD-ROM.

Otros ejemplos de cargadores multiarranque son LILO y Syslinux.

GRUB soporta 14 colores de fondo, siendo el negro el color por defecto. Algunas distribuciones de GNU/Linux que incluyen GRUB frecuentemente utilizan fondos personalizados con el logotipo de dicha distribución. Los usuarios de GRUB pueden también hacer y colocar sus propios fondos.

Proceso de inicio de GRUB
  1. El BIOS busca un dispositivo de inicio (como el disco duro) y de ahí pasa el control al primer sector físico del dispositivo conocido como master boot record, son los primeros 512 bytes (primer sector) del disco duro y que forman la fase 1 de GRUB.
  2. La fase 1 de GRUB carga la siguiente fase de GRUB, ubicada físicamente en cualquier parte del disco duro. La fase 1 puede cargar ya sea la fase 1.5 o, directamente, la 2.
  3. La fase 1.5 de GRUB, ubicada en los siguientes 30 kilobytes del disco duro, carga la fase 2. (En GRUB 2, esta fase ha dejado de existir).
  4. La fase 2 de GRUB (cargada por las fases 1 ó 1.5) recibe el control, y presenta al usuario el menú de inicio.
  5. GRUB carga el kernel seleccionado por el usuario, en la memoria y le pasa el control.

 

Deja un comentario