Was ist der Unterschied zwischen GRUB und SYSLINUX?

13

Diese Frage hängt mit meiner Feststellung zusammen, dass Ubuntu und sein Derivat sowohl SYSLINUX- als auch GRUB- Bootloader für ISO-Images für Desktop- Versionen verwenden.

Beim Booten von einem 32-Bit-ISO-Image wird gesagt, dass SYSLINUX den Startvorgang übernimmt (der Start, der einen schönen Begrüßungsbildschirm mit Fortschrittspunktanimation zeigt).

Aber wenn sie von Booten 64-Bit - ISO - Image , GRäBT verwendet statt (der Schwarz-Weiß - Bildschirm und deutlich gemacht , GNU GRUB version...auf der Oberseite des Bildschirms).

Um meine Frage neu zu formulieren: Welche Unterschiede haben Ubuntu dazu veranlasst, GRUB und SYSLINUX für seine ISO-Images zu verwenden? Warum nicht stattdessen einfach eines verwenden?

Zur Klarstellung

Diese Frage war aufgrund meiner mangelnden Klärung und Hardwareverfügbarkeit irgendwie verwirrend. Ich habe diese Antwort hinzugefügt (oder nach unten gescrollt), um das 64-Bit-ISO-Image besser zu erklären.

Welche Antwort ist nicht

Der Kommentarthread unten gab bereits eine Idee, aber ich sollte hier klarstellen. Die Antwort ist nicht, weil beide EFI richtig unterstützen. Diese Frage zielte darauf ab, mehr über grundlegende Gründe als nur über die Unterstützung durch EFI herauszufinden.

Sagen Sie, wenn dies auf andere Weise gefragt werden sollte, z. B. "Warum werden sowohl GRUB als auch SYSLINUX in den ISO-Images verwendet?" Dann könnte dies eine Antwort geben wie: "GRUB ist enthalten, um EFI-fähige Systeme zu unterstützen, und SYSLINUX war immer enthalten und funktioniert nur auf BIOS-Systemen" - was nicht meine Absicht ist.

Ich muss zugeben, dass die EFI-Unterstützung wahrscheinlich Teil der Antwort ist.

Ich bin jedoch der Meinung, dass dies nicht das einzige sein sollte, was in der Antwort enthalten ist. Es muss mehr als nur EFI-Unterstützung geben, wodurch Ubuntu zwei Bootloader in seine ISO-Images aufgenommen hat, ja? Oder ist es wirklich die EFI-Unterstützung, die den einzigen Unterschied darstellt? Helfen Sie mir, dies zu beantworten, falls vorhanden.

Clearkimura
quelle
Die Fortschrittspunktanimation sollte in beiden Fällen erfolgen, vorausgesetzt, die Grafik stimmt nicht. Und warum sagen Sie Live-CD und Live-USB fett, wenn der Unterschied zwischen dem 64-Bit-UEFI-Image und anderen Images besteht? Haben Sie das UEFI-Image auf einer CD ausprobiert und Syslinux erhalten?
Muru
Dies würde die Verwirrung erhöhen, da GRUB nur vom 64-Bit-UEFI-unterstützenden Image und nicht von den anderen verwendet wird. Ich würde den anderen Weg vorschlagen: Löschen Sie den Wortlaut "Live-CD / USB" und bleiben Sie bei den von Ihnen verwendeten Bildern, denn hier liegen die Unterschiede.
Muru
1
Okay, ersetzte die Schlüsselwörter entsprechend: Live-CD -> 32-Bit-ISO-Image; Live USB -> 64-Bit-ISO-Image.
Clearkimura
Syslinux ist ein BIOS-Bootloader. Wird sowohl für 32- als auch für 64-Bit-Versionen auf FAT32-formatierten Partitionen verwendet. Es ist ein Windows-Bootloader nur für das BIOS. Grub2 wird nur beim UEFI-Boot verwendet. Sie könnten wahrscheinlich grub2 mit BIOS verwenden, aber es war jetzt immer größer, und in der Vergangenheit haben sie syslinux verwendet. Ich weiß nicht genau warum. Einige kleinere Vorteile für verschiedene Bootloader, damit Sie wissen, auf welche Weise Sie booten, UEFI oder BIOS.
Oldfred
@oldfred Das Dateisystem des ISO-Images ist ISO9660 und nicht FAT32. Syslinux funktioniert anscheinend auch auf EFI-unterstützten Computern. Warum also immer noch Syslinux und Grub verwenden?
Clearkimura

Antworten:

14

Dies ist meine endgültige Antwort, die auf Informationen basiert, die durch passende Schlüsselwörter auf mehr als 2000 Seiten in dieser Liste im Ubuntu-Wiki gefunden wurden . Was ich fand, waren datierte Notizen der Ubuntu-Entwicklung und -Spezifikationen (gelesen: Wörter, Wörter, Wörter), so dass ich einige Zeit brauchte, um zu dieser Antwort zu gelangen.

Ops, falsche Benennung

Zunächst ist die Benennung der Bootloader zu klären:

  • Der Name mit allen Großbuchstaben bezieht sich auf den Bootloader (z. B. GRUB, SYSLINUX).

  • Der Name mit dem Großbuchstaben bezieht sich auf den Projektnamen oder auf mehrere oder alle Varianten der Bootloader-Familie (z. B. Syslinux).

  • Insbesondere ist 'Syslinux' eine Sammlung von Bootloadern, zu denen 'SYSLINUX', 'ISOLINUX', 'EXTLINUX' und 'PXELINUX' gehören.

Gemäß der Namenskonvention bezieht sich die Frage tatsächlich auf "ISOLINUX" für den Bootloader "El Torito no-emulation", nicht auf "SYSLINUX". Vielleicht wird das letztere in alten Zeiten austauschbar mit dem ersteren verwendet. Egal Dann.

Kurze Geschichte

2005: ISOLINUX wird anstelle von GRUB für den Ubuntu CD Bootloader ausgewählt.

GRUB wurde bereits als möglicher Ersatz-Bootloader vorgeschlagen, aber dieser Ansatz wurde auf der Warty-Live-CD versucht, auf der wir signifikante Rückgänge bei der Bootfähigkeit im Vergleich zur ISOLINUX-installierenden Installations-CD beobachteten. Wir sind der Meinung, dass das Festhalten an Lösungen, die auf ISOLINUX basieren, der am besten geeignete Ansatz für eine langfristig unterstützte Version ist.

- aus CdBootloader - Ubuntu Wiki

2006: gfxboot wurde hinzugefügt; Dies unterstützt die im Jahr 2010 zitierten Informationen.

In Dapper haben wir unseren amd64- und i386-CD-Images gfxboot hinzugefügt und bieten ein benutzerfreundliches grafisches Startmenü als erstes, was Benutzer beim Booten von Ubuntu-CD-Images auf diesen Architekturen sehen [...]

- aus PortableGfxboot - Ubuntu Wiki

2009: ISOLINUX (als SYSLINUX bezeichnet) wird weiterhin zum Booten der Ubuntu-CD verwendet.

Ubuntu-Live-CDs booten weiterhin mit SYSLINUX, das das Starten des Kernels im Grafikmodus nicht unterstützt. Dies bedeutet, dass Live-CDs ein grafisches Startmenü anzeigen, dann wieder in den Textmodus wechseln, um den Kernel zu starten, und später normalerweise wieder in den Grafikmodus wechseln. Infolgedessen flackern Live-CDs derzeit beim Booten stärker als normal installierte Systeme.

- aus BootGraphicsArchitecture - Ubuntu Wiki

2010: ISOLINUX wurde verwendet, aber GRUB 2 wird für die UEFI-Unterstützung benötigt.

Aktuelle Ubuntu-CDs verwenden ISOLINUX, wobei die gfxboot-Erweiterungen von SuSE grafische Menüs implementieren.

Dies hat sich als ziemlich schwierig erwiesen, da nur eine Person in Ubuntu den Themencode versteht, [...]

[Seit] GRUB 2 wurde kürzlich die Unterstützung für grafische Menüs vorgelagert hinzugefügt. Wenn Sie auf GRUB 2 umsteigen, kann sich die Wartungslast verringern. Es ist wahrscheinlich, dass wir ohnehin GRUB 2 verwenden müssen, um EFI zu unterstützen, und dass es unerwünscht wäre, zwei verschiedene Bootloader auf unseren CDs konfigurieren zu müssen.

- aus FoundationsTeam / Specs / MaverickCDBoot - Ubuntu Wiki

Gemäß Foundations-m-grub2-boot-framebuffer müssen wir prüfen, ob wir grafische Boot-Menüs in EFI unterstützen können. GRUB bietet eine gewisse Unterstützung für UGA- und GOP-Grafiken.

Dies erfordert die Verwendung von GRUB zum Booten von CDs oder zumindest das Minimum an Konfiguration, um dies zu unterstützen [...]

- aus FoundationsTeam / Specs / MaverickUefiSupport - Ubuntu Wiki

Unterschiede gefunden oder nicht

Nach einer kurzen Geschichte verstehen wir jetzt Folgendes:

  • ISOLINUX wurde bevorzugt, da GRUB damals (2005) Regressionen hatte.

  • ISOLINUX wurde trotz mangelnder Unterstützung für das Starten des Kernels im Grafikmodus, der während des Startvorgangs zu Flackern führt, weiterhin bevorzugt (2009).

  • ISOLINUX wurde mit gfxboot verwendet, um ein grafisches Menü bereitzustellen, das damals (2010) mit GRUB nicht implementiert oder nicht möglich war.

  • GRUB wurde später hinzugefügt, um mit UEFI-Unterstützung seit Maverick (nach 2010) zu booten.

Dann wurde mir klar, dass es nicht der Unterschied zwischen GRUB und SYSLINUX ist, der Ubuntu Live CD zu zwei Bootloadern gemacht hat.

Grundlegende Gründe

Aus meiner Lektüre deuteten diese unterstützenden Fakten tatsächlich darauf hin, dass:

  1. Die Ubuntu-Live-CD verwendet einen bestimmten Bootloader, der eine bessere Unterstützung für die Bereitstellung von grafischen Menüs und Themen sowie einen reibungslosen Übergang zum Anzeigen von Boot-Splash bietet. In diesem Fall SYSLINUX (genau ISOLINUX).

  2. Als UEFI-Systeme immer häufiger wurden, hatte nur Ubuntu GRUB (genau GRUB 2) in die Ubuntu-Live-CD aufgenommen, um mit UEFI-Unterstützung zu booten.

Vor allem glaube ich, dass dies die Frage beantwortet, die ich seit mehr als einem Jahr hatte, und diese Antwort hat meine Neugier endlich zur Ruhe gebracht.

TL; DR GRUB und ISOLINUX werden beide aus exklusiven Gründen in Ubuntu Live-CDs verwendet. Beide wurden für eine bessere Boot-Erfahrung und Hardware-Unterstützung in die Live-CD aufgenommen.

Clearkimura
quelle
Gute Forschung. Info zu Grub vor ca. 2009/10 mit Ubuntu war Grub Legacy. Ubuntu wechselte dann standardmäßig zu grub2. Ich glaube nicht, dass Grub Legacy damals mit UEFI funktioniert hat, obwohl viele Funktionen, mit denen Grub Legacy mit neueren Systemen funktioniert, häufig von einer Distribution ausgeführt wurden.
Oldfred
6

Dies ist meine vorläufige Antwort, die einen Teil meiner Frage besser verstehen lässt, aber die Frage selbst immer noch nicht beantwortet.

Einige Erläuterungen unten:

  • Im Gegensatz zum 32-Bit-ISO-Image enthält das 64-Bit-ISO-Image sowohl GRUB als auch SYSLINUX (dies wird durch bestätigt /boot/grubund /isolinuxVerzeichnisse befinden sich beide im ISO-Image).
  • GRUB wird angezeigt, wenn das ISO-Image auf einem EFI-fähigen Computer gestartet wird.
  • SYSLINUX wird angezeigt, wenn das ISO-Image auf einem Nur-BIOS-Computer gestartet wird.
  • Plymouth übernimmt die Fortschrittspunktanimation, unabhängig davon, ob GRUB oder SYSLINUX angezeigt wird (dies wurde von @muru im ersten Kommentar korrekt angedeutet).

Boot-Erfahrung : Ich habe "EFI-fähig" geschrieben, da selbst mein Computer EFI implementiert hat. Ich hatte die "Secure Boot" -Funktion (1,2) deaktiviert, um Ubuntu (in meinem Fall Xubuntu 14.04) von Live USB zu booten.

  1. Die 64-Bit-Version von Xubuntu 14.04 kann gestartet werden, während Secure Boot aktiviert ist, nachdem sie auf der lokalen Festplatte (nicht Live USB) installiert wurde.

  2. Die 64-Bit-Version von Xubuntu 16.04 kann gestartet werden, während Secure Boot aktiviert ist.

Versuchte Methode : Anstatt es mit physischen DVD-Medien zu versuchen und von einem externen optischen Laufwerk zu booten, hatte ich stattdessen Virtualisierungssoftware (in meinem Fall VirtualBox 4.3) verwendet, um die oben genannten Fälle zu beweisen.

  • VirtualBox 4.3 bietet bereits eine Option zum Umschalten zwischen EFI und BIOS-System. Diese finden Sie unter Maschine> Einstellungen> System> Motherboard - Erweiterte Funktionen: EFI aktivieren (nur spezielle Betriebssysteme) . Standardmäßig ist die Option deaktiviert (3).

  • Eine virtuelle Maschine muss mit einer 64-Bit-Version von VirtualBox erstellt werden, die auf einem 64-Bit-Hostsystem ausgeführt wird. Bei meinen folgenden Versuchen wird ein Xubuntu 14.04 64-Bit-ISO-Image verwendet.

  • Erster Versuch: Ich habe das ISO-Image mit den Standardeinstellungen ausgeführt (dies setzt ein BIOS-System voraus). Die virtuelle Maschine zeigt einen violetten Hintergrund mit Symbolen unten. Das ist SYSLINUX .

  • Zweiter Versuch: Ich schloss die Maschine und ging zu den Einstellungen, aktivierte die Option (3), um EFI zu aktivieren. Mit demselben ISO-Image habe ich die virtuelle Maschine erneut gestartet. Dieses Mal dauerte es einige Zeit, bis es GNU GRUB version...mit monochromem Text angezeigt wurde. Das ist GRUB .

  • In beiden Versuchen zeigt der fortlaufende Startvorgang die Fortschrittspunktanimation beim Booten an.

  • Dieser Abschnitt der Seite im Ubuntu-Wiki enthält Screenshots zur Beschreibung der beiden oben genannten Fälle.

Haftungsausschluss : Diese Antwort soll die Starterfahrung und die erprobte Methode verdeutlichen. Dies ist jedoch nicht die endgültige Antwort auf meine Frage. Die endgültige Antwort wird separat veröffentlicht, wenn ich die Frage selbst beantworten konnte.

Clearkimura
quelle
Danke für diese Information! Ich habe es geschafft, das Booten von USB nur mit rufos zu starten, dem ISO-Image, das Syslinux im Boot erstellt hat, aber nicht mit dem Befehl "dd <iso>" - was mir aufgefallen ist, dass es kein Syslinux erstellt. Die Sache ist, dass Ubuntu von HDD Grub hat. Ich verstehe also nicht, warum Grub mit HDD funktioniert, aber nicht mit USB.
Ransh
@ransh Vielleicht möchten Sie verstehen, "welche Methode welchen Bootloader installiert" und diese Qualitätssicherung geht nicht darauf ein. Sie sollten Ihre Frage als neue Frage stellen , da der Kommentar nicht zur Diskussion steht.
Clearkimura