Según Wikipedia , GRUB se lanzó en 1995. En ese momento, Linux y xBSD existían durante varios años. Sé que las primeras versiones de Unix estaban vinculadas al hardware en los años 70 y 80, pero Linux y xBSD eran libres de distribuir e instalar. Lo que plantea la pregunta de cómo arrancarías Linux en ese entonces. ¿Se distribuyeron distribuciones con sus propias implementaciones de cargadores de arranque?
boot-loader
history
Sergiy Kolodyazhnyy
fuente
fuente
biosboot(8)
.biosboot
dos arquitecturas, i386 y amd64. ¿Eso significa que OpenBSD específicamente tuvo que apuntar a las arquitecturas en lugar de tener una herramienta unificadora?Respuestas:
La primera distribución de Linux que usé en los años 90 (
Slackware 3.0
IIRC) usó LILO como gestor de arranque. Y muchas distribuciones se utilizaronLILO
durante años, incluso cuando seGRUB
estaba convirtiendo en el gestor de arranque "predeterminado".Además, en los primeros años de Linux era común arrancar Linux desde otro sistema operativo (es decir, DOS o Windows) en lugar de depender de un gestor de arranque / arranque dual. Por ejemplo había loadlin .
No olvides Syslinux , que es un gestor de arranque más simple que se usa a menudo para las distribuciones de instalación / recuperación de autoarranque USB. O Isolinux (del mismo proyecto) utilizado por muchas distribuciones "Live".
Tenga en cuenta que hoy en día
GRUB
se puede usar para cargar muchos sistemas operativos, mientras queLILO
era más limitado y estaba específicamente dirigido a Linux (es decir, LInux LOader), con cierto soporte para el arranque dual en Windows.GRUB
es muy útil para múltiples arranque dual / debido a sus muchas opciones configurables, las capacidades de scripting, etc ...Si lo que desea es un único sistema operativo en la máquina "ninguna" (es decir, el que sea gestor de arranque es el predeterminado para la distribución de Linux / BSD) debe bastar.
fuente
other=/dev/hda1
contable=/dev/hda
tolilo.conf
, y lilo simplemente transferiría el control al sector de arranque en hda1, sabiendo que la tabla de particiones estaría en hda.LILO fue el estándar de facto para arrancar Linux en PC antes de Grub, desde una etapa muy temprana (MCC, una de las primeras distribuciones de Linux, lo usó). Varios otros gestores de arranque se utilizaron simultáneamente. Loadlin era bastante común; arrancó Linux desde DOS e incluso se usó en algunas configuraciones
umsdos
para alojar un entorno Linux en un sistema de archivos DOS ... Otra configuración común no involucraba en absoluto un gestor de arranque: el núcleo podía arrancarse desde un disquete, y la mayoría Los usuarios de Linux mantuvieron un par de disquetes "boot y root" bien conocidos, uno que contiene el kernel y el otro un sistema básico de archivos raíz para fines de rescate.También había varias formas de usar los cargadores de arranque de otros sistemas operativos para arrancar Linux; por ejemplo, el administrador de arranque de OS / 2 o el NTLDR de Windows NT.
Otros sistemas tenían sus propios gestores de arranque:
Incluso hoy en día Grub no es el único gestor de arranque que verá. Si bien el inicio del kernel directamente desde un disquete ya no es muy útil (no he comprobado si todavía es posible, suponiendo que pueda construir un kernel lo suficientemente pequeño como para caber en un disquete), puede arrancar directamente desde EFI (que es efectivamente su propio sistema operativo pequeño diseñado para cargar otros sistemas operativos, como es Grub). En muchos sistemas más pequeños (sistemas integrados, computadoras de placa única ...) encontrará U-Boot . (Y también hay una capa EFI para U-Boot ).
fuente
Hasta mediados de 2.6 núcleos, el núcleo x86 era directamente arrancable si se copiaba en un disquete (como si fuera una imagen de disco).
Esta fue, de hecho, la forma original de arrancar Linux.
Si observa el encabezado de un núcleo x86 hoy, verá un mensaje de error que dice que el arranque desde disquetes como ese ya no funciona.
fuente
Comencé con Linux a finales de los 90 y, como se mencionó,
lilo
era el predeterminado. Si quisieras un arranque dual con un sistema DOS, podrías hacer un arranque simple sin cargar cosas en HIMEM o cargar controladores de CD, etc. y usarloadlin
. Para el arranque dual de Win95, puede hacer que la unidad arranque primero con DOS, luego instalar '95, y el cargador de arranque de '95 le permitiría arrancar el kernel de DOS aún, y luego podría usarloloadlin
.Para el arranque dual con NT4, el truco consistía en escribir LILO en la
/
partición, luego quitar los primeros 512 bytes usandodd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
) y colocar el archivo resultante dondentldr
pudiera verlo y podría usarlo desde el cargador de arranque de WinNT. El problema al hacerlo es que cuando actualizaste tu kernel, tenías que recordar repetir todos los pasos antes de reiniciar, de lo contrario tendrías problemas para volver al sistema Linux. El mismo proceso funcionó con Win2k.Con LILO, cada vez que se actualizaba el kernel, tenía que recordar actualizar LILO.
Cada
loadlin
vez que el núcleo se actualizaba, tenía que recordar copiar el núcleo a la partición de DOS.Otra opción que se insinúa en otras respuestas fue escribir el núcleo directamente en un disquete utilizando
dd if=/path/to/vmlinuz of=/dev/fd0
PERO el dispositivo raíz tenía que estar configurado correctamente en el núcleo, ya sea en el momento de la compilación o mediante lardev
utilidad.Cuando
GRUB
surgió, hubo mucho regocijo porque ya no tenía que recordar actualizar LILO, o actualizar LILO y volver a quitar la información de arranque, etc. No más quedar fuera de su sistema Linux porque olvidó actualizar el cargador de arranque info ...fuente
make install
se ejecutaría/sbin/lilo
, por lo que realmente no tuvo que actualizar nada a mano (y ese puede ser el caso, si lo halilo
instalado). Eso puede ser una cuestión de opinión, pero no recuerdo mucho regocijarmegrub
, por el contrario. Ylilo
(al menos su versión de 1999) podría tener dos ventanas de arranque bien, sin necesidadloadlin
.Y antes de LILO y GRUB, tenía que iniciarlo desde la línea de comandos con algún tipo de utilidad de cargador de arranque personalizado.
Como ejemplo, el Amiga tenía Linux disponible. Debía usar una utilidad de línea de comandos llamada amiboot para cargar el kernel ELF en la memoria y saltar a él.
Aquí hay un video de alguien usando amiboot desde la línea de comando para iniciar Linux en un Amiga 600 . Su script StartInstall está llamando al ejecutable amiboot. Puede ver amiboot configurar la memoria, averiguar la dirección de carga deseada y pasar los parámetros al núcleo alrededor de las 0:55.
fuente