¿Cuál es la diferencia entre GRUB y SYSLINUX?

13

Esta pregunta está relacionada con mi hallazgo de que Ubuntu y sus derivados utilizan los cargadores de arranque SYSLINUX y GRUB en imágenes ISO para versiones de escritorio .

Al arrancar desde una imagen ISO de 32 bits , se dice que SYSLINUX maneja el proceso de arranque (el arranque que muestra una hermosa pantalla de bienvenida, con animación de puntos de progreso).

Pero al arrancar desde una imagen ISO de 64 bits , se usa GRUB en su lugar (la pantalla en blanco y negro, que se muestra claramente GNU GRUB version...en la parte superior de la pantalla).

Por lo tanto, para reformular mi pregunta, ¿cuáles son las diferencias que hicieron que Ubuntu usara GRUB y SYSLINUX en sus imágenes ISO? ¿Por qué no usar cualquiera de los dos en su lugar?

Para aclaraciones

Esta pregunta ha sido de alguna manera confusa debido a mi falta de aclaración y disponibilidad de hardware. He agregado esta respuesta (o desplácese hacia abajo) para explicar mejor la imagen ISO de 64 bits.

¿Qué respuesta no es

El hilo de comentarios a continuación ya dio alguna idea, pero debería aclararlo aquí. La respuesta no es porque ninguno de los dos admite EFI correctamente. Esta pregunta tenía como objetivo averiguar más sobre razones fundamentales, en lugar de solo el soporte de EFI.

Diga, si esto se hiciera de otra manera, es decir, "¿Por qué se usan GRUB y SYSLINUX en las imágenes ISO?" entonces esto podría dar una respuesta como "GRUB está incluido para admitir sistemas compatibles con EFI y SYSLINUX siempre se ha incluido y funciona en sistemas solo de BIOS", lo cual no es mi intención.

Debo admitir que el soporte de EFI es probablemente parte de la respuesta.

Sin embargo, siento que no debería ser lo único en la respuesta. Debe haber más que solo soporte EFI, lo que hizo que Ubuntu incluyera dos cargadores de arranque en sus imágenes ISO, ¿sí? ¿O es realmente el soporte de EFI la única diferencia? Ayúdame a responder esto, si lo hay.

clearkimura
fuente
La animación de puntos de progreso debería aparecer en cualquier caso, suponiendo que no haya nada malo con los gráficos. ¿Y por qué dice Live CD y Live USB en negrita, cuando la diferencia está entre la imagen UEFI de 64 bits y otras imágenes? ¿Probaste la imagen UEFI en un CD y obtuviste Syslinux?
muru
Eso aumentaría la confusión, ya que GRUB solo es utilizado por la imagen compatible con UEFI de 64 bits, y no por los demás. Sugeriría la otra forma: suelte la fraseología "CD / USB en vivo" y simplemente quédese con las imágenes que usó, porque ahí es donde radican las diferencias.
muru
1
Bien, reemplazó las palabras clave en consecuencia: Live CD -> imagen ISO de 32 bits; USB en vivo -> imagen ISO de 64 bits.
clearkimura
Syslinux es un cargador de arranque de BIOS. Se utiliza para versiones de 32 y 64 bits en particiones formateadas FAT32. Es un cargador de arranque de tipo Windows solo para BIOS. Grub2 solo se usa con el arranque UEFI. Probablemente podrían usar grub2 con BIOS, pero ahora siempre ha sido más grande, e históricamente han usado syslinux. No estoy seguro específicamente por qué. Algunas ventajas menores para los diferentes cargadores de arranque para que sepa de qué manera está arrancando, UEFI o BIOS.
oldfred
@oldfred El sistema de archivos de la imagen ISO es ISO9660 y no es FAT32. Aparentemente, Syslinux también funciona en máquinas compatibles con EFI, entonces, ¿por qué seguir usando tanto Syslinux como Grub?
clearkimura

Respuestas:

14

Esta es mi respuesta final, que se basa en la información encontrada haciendo coincidir las palabras clave en más de 2000 páginas en este listado en Ubuntu Wiki . Lo que encontré fueron notas anticuadas de desarrollo y especificaciones de Ubuntu (leer: palabras, palabras, palabras), por lo que me tomó un tiempo llegar a esta respuesta.

Ops, nombre incorrecto

Para comenzar, se debe aclarar el nombre de los cargadores de arranque:

  • El nombre con todas las letras en mayúscula se refiere al gestor de arranque (por ejemplo, GRUB, SYSLINUX)

  • El nombre con la letra inicial en mayúscula se refiere al nombre del proyecto o, varias o todas las variantes de la familia del cargador de arranque (por ejemplo, Syslinux)

  • En particular, 'Syslinux' es una colección de cargadores de arranque que incluye 'SYSLINUX', 'ISOLINUX', 'EXTLINUX' y 'PXELINUX'

Después de la convención de nomenclatura , la pregunta en realidad se refiere a "ISOLINUX" para el gestor de arranque "El Torito sin emulación", no "SYSLINUX". Quizás el último se usa indistintamente con el primero en los viejos tiempos. Olvidalo entonces.

Breve historia

2005: ISOLINUX se elige para el cargador de arranque de CD de Ubuntu, en lugar de GRUB.

GRUB ha sido sugerido anteriormente como un posible cargador de arranque de reemplazo, pero este enfoque fue probado en el CD en vivo de Warty donde observamos regresiones significativas en la capacidad de arranque en comparación con el CD de instalación que usa ISOLINUX. Creemos que apegarse a soluciones basadas en ISOLINUX es el enfoque más apropiado para una versión compatible a largo plazo.

- de CdBootloader - Ubuntu Wiki

2006: se ha agregado gfxboot; Esto respalda la información citada en 2010.

En Dapper, agregamos gfxboot a nuestras imágenes de CD amd64 e i386, proporcionando un menú gráfico de arranque amigable como lo primero que ven los usuarios al arrancar imágenes de CD de Ubuntu en esas arquitecturas [...]

- desde PortableGfxboot - Ubuntu Wiki

2009: ISOLINUX (conocido como SYSLINUX) todavía se usa para arrancar el CD de Ubuntu.

Los CD en vivo de Ubuntu aún se inician utilizando SYSLINUX, que no incluye soporte para iniciar el núcleo en modo gráfico. Esto significa que los CD en vivo muestran un menú de arranque gráfico, luego vuelven al modo de texto para iniciar el núcleo, y normalmente volverán al modo de gráficos más tarde. Como resultado, los CD en vivo actualmente parpadearán más que los sistemas instalados normales al momento del arranque.

- de BootGraphicsArchitecture - Ubuntu Wiki

2010: ISOLINUX se ha utilizado, pero GRUB 2 es necesario para el soporte UEFI.

Los CD de Ubuntu actuales usan ISOLINUX, con las extensiones gfxboot de SuSE implementando menús gráficos.

Esto ha demostrado ser bastante difícil de mantener, con solo una persona en Ubuntu que entiende el código de tema involucrado [...]

[Desde] GRUB 2 recientemente tuvo un soporte de menú gráfico agregado corriente arriba, pasar a eso tiene el potencial de reducir nuestra carga de mantenimiento. Parece probable que necesitemos usar GRUB 2 de todos modos para admitir EFI, y tener que configurar dos cargadores de arranque diferentes en nuestros CD sería indeseable.

- de FoundationsTeam / Specs / MaverickCDBoot - Ubuntu Wiki

De conformidad con foundations-m-grub2-boot-framebuffer, necesitaremos analizar nuestra capacidad para admitir menús de arranque gráficos en EFI. GRUB tiene cierto nivel de soporte para gráficos UGA y GOP.

Esto requiere el uso de GRUB para el arranque del CD, o al menos tener el mínimo de configuración para admitirlo [...]

- de FoundationsTeam / Specs / MaverickUefiSupport - Ubuntu Wiki

Diferencias encontradas o no

Después de una breve historia, ahora entendemos que:

  • ISOLINUX fue preferido debido a que GRUB tenía regresiones en aquel entonces (2005)

  • ISOLINUX todavía era preferido a pesar de la falta de soporte para iniciar el kernel en modo gráfico que causa parpadeo durante la transición de arranque (2009)

  • ISOLINUX se ha utilizado con gfxboot para proporcionar un menú gráfico, que no se implementó o no era posible con GRUB en ese entonces (2010)

  • GRUB se ha agregado más tarde para arrancar con soporte UEFI desde Maverick (post-2010)

Entonces, me di cuenta de que se trata no la diferencia entre GRUB y SYSLINUX que hizo Ubuntu Live CD incluye dos cargadores de arranque.

Razones fundamentales

De mi lectura, estos hechos de apoyo en realidad insinuaron que:

  1. Ubuntu live CD ha estado utilizando un cargador de arranque particular que tenía un mejor soporte para proporcionar un menú gráfico y un tema, y ​​una transición suave para mostrar el inicio de arranque. En este caso, SYSLINUX (precisamente ISOLINUX).

  2. Cuando los sistemas UEFI se volvieron cada vez más comunes, solo Ubuntu había incluido GRUB (precisamente GRUB 2) en el CD en vivo de Ubuntu para arrancar con soporte UEFI.

Sobre todo, creo que esto responde la pregunta que tuve durante más de un año y esta respuesta finalmente ha calmado mi curiosidad.

TL; DR GRUB e ISOLINUX se usan en Ubuntu live CD por razones exclusivas; Ambos se incluyeron en un CD en vivo para una mejor experiencia de arranque y soporte de hardware.

clearkimura
fuente
Buena investigacion. La información sobre grub antes de aproximadamente 2009/10 con Ubuntu era legado de grub. Ubuntu luego cambió a grub2 como predeterminado. No creo que grub legacy haya funcionado con UEFI, aunque muchas funciones para hacer que grub legacy trabaje con sistemas más nuevos a menudo fueron realizadas por una distribución.
oldfred
6

Esta es mi respuesta preliminar, que hace que una parte de mi pregunta se entienda mejor, pero aún así no responde la pregunta en sí.

Algunas aclaraciones a continuación:

  • A diferencia de la imagen ISO de 32 bits, la imagen ISO de 64 bits en realidad incluye tanto GRUB como SYSLINUX (esto se confirma /boot/gruby los /isolinuxdirectorios se encuentran en la imagen ISO)
  • GRUB se muestra cuando la imagen ISO se inicia en una máquina con capacidad EFI.
  • SYSLINUX se muestra cuando la imagen ISO se inicia en una máquina solo BIOS.
  • Plymouth maneja la animación del punto de progreso, independientemente de que se muestre GRUB o SYSLINUX (esto fue insinuado correctamente por @muru en el primer comentario)

Experiencia de arranque : escribí "EFI-able" porque incluso mi máquina ha implementado EFI, había desactivado la función "Secure Boot" (1,2) para arrancar Ubuntu (Xubuntu 14.04 en mi caso) desde Live USB.

  1. La versión Xubuntu 14.04 de 64 bits puede iniciarse mientras Secure Boot está activado, después de que se haya instalado en el disco local (no Live USB).

  2. La versión Xubuntu 16.04 de 64 bits puede arrancar mientras Secure Boot está activado.

Método probado : en lugar de intentar con un DVD físico y arrancar desde una unidad óptica externa, usé un software de virtualización (VirtualBox 4.3 en mi caso) para probar los casos anteriores.

  • VirtualBox 4.3 ya tiene una opción para cambiar entre el sistema EFI y BIOS, se puede encontrar en Máquina> Configuración> Sistema> Placa base - Funciones ampliadas: Habilitar EFI (solo sistemas operativos especiales) . Por defecto, la opción está desmarcada (3).

  • Se debe crear una máquina virtual utilizando la versión de 64 bits de VirtualBox, que se ejecuta en un sistema host de 64 bits. Se utiliza una imagen ISO Xubuntu 14.04 de 64 bits en mis siguientes intentos.

  • Primer intento: ejecuté la imagen ISO con la configuración predeterminada (esto supone un sistema BIOS). La máquina virtual mostrará un fondo morado con iconos en la parte inferior. Esto es SYSLINUX .

  • Segundo intento: cerré la máquina y fui a la configuración, marqué la opción (3) para habilitar EFI. Usando la misma imagen ISO, comencé la máquina virtual nuevamente. Esta vez, tomó algo de tiempo hasta que se muestra GNU GRUB version...con texto monocromo. Esto es GRUB .

  • En ambos intentos, el proceso de arranque en curso mostrará animación de puntos de progreso durante el arranque.

  • Esta sección de la página en Ubuntu Wiki ha incluido capturas de pantalla para describir los dos casos anteriores.

Descargo de responsabilidad : esta respuesta tiene la intención de aclarar la experiencia de arranque y el método probado. Sin embargo, esta no es la respuesta final a mi pregunta. La respuesta final se publicará por separado, si logré responder la pregunta.

clearkimura
fuente
¡Gracias por esta información! Me las arreglé para iniciar el arranque desde usb solo cuando uso rufos la imagen .iso que creó syslinux en el arranque, pero no con el comando "dd <iso>", que noté que no crea syslinux. La cosa es que ubuntu de hdd tiene grub. Entonces no entiendo por qué grub funciona con disco duro, pero no con usb.
ransh
@ransh Es posible que desee comprender "qué método instalar qué cargador de arranque" y este control de calidad no aborda eso. Debe hacer la suya como una nueva pregunta , ya que el comentario no es para discusión.
clearkimura