GNU GRUB

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
Grub
gnu.org/software/grub
Grub logo.png Grub logo2.png
GRUB screenshot.png
Menú de GRUB en modo no gráfico
Tipo de programa gestor de arranque
Modelo de desarrollo software de código abierto
Desarrollador Proyecto GNU
Erich Boleyn
Lanzamiento 1995
Última versión estable 2.04 (info)
5 de julio de 2019 (1 año, 9 meses y 6 días)
Género Bootloader
Repositorio https://git.savannah.gnu.org/git/grub.git
git://git.sv.gnu.org/grub.git
https://git.savannah.gnu.org/cgit/grub.git
Programado en Ensamblador, C[1]
Sistema operativo Linux
tipo Unix
Plataforma IA-32, x86-64, PowerPC
Licencia GNU GPL 3+[1]
En español
Pantalla de StartUp-Manager, configurador gráfico para GRUB Legacy.
Pantalla de GRUB Customizer, configurador gráfico para GRUB 2.

GNU GRUB (GNU GRand Unified Bootloader) es un cargador de arranque múltiple, desarrollado por el proyecto GNU que nos permite elegir qué Sistema Operativo arrancar de los instalados.

Se usa principalmente en sistemas operativos GNU/Linux. El sistema operativo Solaris ha usado GRUB como cargador de arranque en sistemas x86 desde la revisión 10 1/06.

Historia[editar]

GRUB fue inicialmente diseñado e implementado por el programador Erich Stefan Boleyn[2]​ como parte del trabajo en el arranque del sistema operativo GNU Hurd desarrollado por la Free Software Foundation.[3]​ 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.

Alrededor de 2002 investigadores japoneses empezaron a trabajar en PUPA (siglas de Preliminary Universal Programming Architecture), cuyo objetivo era reescribir el cuerpo de GRUB para hacerlo más claro, seguro, robusto y poderoso. PUPA fue posteriormente renombrado a GRUB 2, y la versión original de GRUB fue renombrada a GRUB Legacy. A partir de entonces se fueron realizando actualizaciones de ambas versiones. La última actualización sobre GRUB Legacy (versión 0.97) fue realizada en 2005. [4]

Sobre 2007 algunas distribuciones de GNU/Linux empezaron a usar GRUB 2. A finales de 2009 la mayor parte de las distribuciones de GNU/Linux tenían instalado GRUB 2 por defecto.[4]

Características[editar]

GRUB es un cargador de arranque que cumple la Especificación Multiboot. De esta forma puede arrancar de forma uniforme los kernels que cumplen la Especificación Multiboot.[4]

Está diseñado para cumplir los siguientes objetivos, listados por orden de importancia:[4]

  • Funciones básicas tienen que ser sencillas para los usuarios finales.
  • Amplia funcionalidad para apoyar a los expertos y diseñadores del kernel.
  • Compatibilidad con versiones anteriores para arrancar FreeBSD, NetBSD, OpenBSD y Linux. Los núcleos compatibles como DOS, Windows NT y OS/2, son arrancables mediante una función de carga en cadena.

Características adicionales que soporta:[4]

  • Reconoce múltiples formatos ejecutables.
  • Soporta kernels que no cumplen especificación multiboot.
  • Admite comandos de configuración y puede cargar una configuración preestablecida.
  • Provee interfaz de menú.
  • Tiene una interfaz de línea de comandos flexible.
  • Admite muchos sistemas de ficheros (BtrFS, ext2/ext3/ext4, FAT12/FAT16/FAT32, exFAT, HFS, HFS+” ISO9660, nilfs2, NTFS, ReiserFS, ZFS, ROMFS, JFS, XFS, ...).
  • Descompresión automática.
  • Acceso a datos ubicados en cualquier dispositivo instalado.
  • Independiente de la geometría de la unidad.
  • Detecta toda la RAM instalada.
  • Admite direccionamiento de bloque lógico (LBA).
  • Arranque de red.
  • Terminales remotos para permitir el control desde una estación remota.

Proceso de inicio de GRUB Legacy[editar]

  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.[5]
  4. La fase 2 de GRUB (cargada por las fases 1 o 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.

En el caso de computadoras con sistema de arranque EFI, el firmware carga el ejecutable de GRUB directamente (fase 2), siempre y cuando esté correctamente instalado en la partición EFI y configurado en la NVRAM.

GRUB 2[editar]

boot.img tiene exactamente 446 Bytes y está escrito en el MBR (sector 0). core.img está escrito en el espacio restante entre el MBR y la primera partición, si es que lo hay disponible (por razones de compatibilidad con versiones anteriores la primera partición comienza en el sector 63 en vez del sector 1, aunque no es imposición). El /boot/grub-directorio puede estar ubicado en otra partición, o en la partición "/" ().

GRUB 2 es una reescritura de GRUB q

importantes diferencias entre GRUB 2 y GRUB Legacy son:[4]

  • El fichero de configuración de GRUB 2 es ‘grub.cfg’ en lugar del ‘grub.conf’ o ‘menu.lst’. Se añade nueva sintaxis y muchos nuevos comandos. El fichero ‘grub.cfg’ es típicamente automáticamente generado por ‘grub2-mkconfig’ lo que facilita mucho el uso.
  • Los números de partición en los nombres de los dispositivos GRUB ahora empiezan en 1, en lugar de en 0.
  • Una pequeña cantidad de almacenamiento persistente está disponible entre reinicios, usando los comandos ‘save_env’ y ‘load_env’ y la utilidad ‘grub2-editenv’. Esto no está disponible en todas las configuraciones.
  • GRUB 2 tiene formas más confiables de encontrar sus propios ficheros y los de los kernels de destino en sistemas de varios discos, y tiene comandos para buscar dispositivos usando etiquetas del sistema de archivos o identificadores únicos universales (UUID).
  • GRUB 2 soporta muchos más sistemas de ficheros, incluyendo pero no limitado a Ext4, HFS+, y NTFS.
  • GRUB 2 puede leer ficheros directamente de dispositivos LVM y RAID.
  • GRUB 2 tiene disponible un terminal gráfico y un sistema de menú gráfico
  • Los archivos de imagen que componen GRUB se han reorganizado; La etapa 1, la etapa 1.5 y la etapa 2 ya no existen. En su lugar GRUB 2 dispone de una variedad de imágenes de arranque (boot.img, diskboot.img, cdboot.img, pxeboot.img, lnxboot.img, kernel.img) para iniciar GRUB de varias formas, una imagen del núcleo (core.img) y un conjunto de módulos que se combinan con la imagen del núcleo (*.mod).[6]
  • GRUB 2 introduce muchas instalaciones en módulos cargados dinámicamente, lo que permite que la imagen del núcleo sea más pequeña y que se construya de formas más flexibles

Véase también[editar]

Referencias[editar]

  1. a b «Ohloh Analysis Summary - GNU GRUB». Ohloh. Consultado el 12 de mayo de 2010. 
  2. Sitio oficial de GNU GRUB (en inglés)
  3. GRUB Manual - 1.2 Grub History (en inglés)
  4. a b c d e f Mastering Grub – Part 1 – Introduction and Overview of Grub Boot Loader. Ramdev. 21 de septiembre de 2015
  5. «GRUB 2 en Ubuntu 9.10 Karmic Koala». Archivado desde el original el 17 de diciembre de 2009. Consultado el 30 de noviembre de 2009. 
  6. GNU GRUB manual. 11 GRUB image files. version 2.04, 24 de junio de 2019.

Enlaces externos[editar]