Quelle est la différence entre GRUB et SYSLINUX?

13

Cette question est liée à ma constatation qu'Ubuntu et son dérivé utilisent à la fois des chargeurs de démarrage SYSLINUX et GRUB sur des images ISO pour les versions de bureau .

Lors du démarrage à partir d' une image ISO 32 bits , il est dit que SYSLINUX gère le processus de démarrage (le démarrage qui affiche un bel écran de démarrage, avec une animation de point de progression).

Mais lors du démarrage à partir d' une image ISO 64 bits , GRUB est utilisé à la place (l'écran noir et blanc, clairement affiché GNU GRUB version...en haut de l'écran).

Par conséquent, pour reformuler ma question, quelles sont les différences qui ont amené Ubuntu à utiliser GRUB et SYSLINUX sur ses images ISO? Pourquoi ne pas simplement utiliser l'un ou l'autre à la place?

Pour clarification

Cette question a été quelque peu déroutante en raison de mon manque de clarification et de disponibilité du matériel. J'ai ajouté cette réponse (ou faites défiler vers le bas) pour mieux expliquer l'image ISO 64 bits.

Quelle réponse n'est pas

Le fil de commentaires ci-dessous a déjà donné une idée, mais je dois préciser ici. La réponse n'est pas parce que l'un ou l'autre prend correctement en charge EFI. Cette question visait à en savoir plus sur les raisons fondamentales, plutôt que sur le soutien EFI.

Dites, si cela devait être demandé d'une autre manière, c'est-à-dire "Pourquoi GRUB et SYSLINUX sont-ils utilisés dans les images ISO?" alors cela pourrait donner une réponse comme "GRUB est inclus pour prendre en charge les systèmes compatibles EFI et SYSLINUX a toujours été inclus et fonctionne sur les systèmes uniquement BIOS" - ce qui n'est pas mon intention.

Je dois admettre que le soutien EFI fait probablement partie de la réponse.

Cependant, je pense que cela ne devrait pas être la seule chose dans la réponse. Il doit y avoir plus que le support EFI, ce qui a amené Ubuntu à inclure deux chargeurs de démarrage dans leurs images ISO, oui? Ou, est-ce vraiment le support EFI qui est la seule différence? Aidez-moi à répondre à cette question, le cas échéant.

clearkimura
la source
L'animation du point de progression doit venir dans les deux cas, en supposant que rien ne va pas avec les graphiques. Et pourquoi dites-vous Live CD et Live USB en gras, alors que la différence est entre l'image UEFI 64 bits et d'autres images? Avez-vous essayé l'image UEFI sur un CD et obtenu Syslinux?
muru
Cela augmenterait la confusion, car GRUB n'est utilisé que par l'image de support UEFI 64 bits, et non par les autres. Je suggérerais l'autre façon: supprimez le libellé "live CD / USB" et restez avec les images que vous avez utilisées, car c'est là que résident les différences.
muru
1
D'accord, remplacé les mots clés en conséquence: Live CD -> image ISO 32 bits; USB direct -> image ISO 64 bits.
clearkimura
Syslinux est un chargeur de démarrage BIOS. Utilisé pour les versions 32 et 64 bits sur les partitions au format FAT32. Il s'agit d'un chargeur de démarrage de type Windows pour le BIOS uniquement. Grub2 n'est utilisé qu'avec le démarrage UEFI. Ils pourraient probablement utiliser grub2 avec le BIOS, mais il a toujours été plus grand maintenant, et historiquement, ils ont utilisé syslinux. Je ne sais pas exactement pourquoi. Quelques avantages mineurs pour différents chargeurs de démarrage afin que vous sachiez de quelle manière vous démarrez, UEFI ou BIOS.
oldfred
@oldfred Le système de fichiers de l'image ISO est ISO9660 et n'est pas FAT32. Syslinux fonctionne apparemment également sur une machine prise en charge par EFI, alors pourquoi utiliser toujours Syslinux et Grub?
clearkimura

Réponses:

14

Ceci est ma réponse finale, qui est basée sur les informations trouvées en faisant correspondre les mots clés dans plus de 2000 pages dans cette liste sur le wiki Ubuntu . Ce que j'ai trouvé était des notes datées du développement et des spécifications d'Ubuntu (lire: mots, mots, mots), donc cela m'a pris un certain temps pour arriver à cette réponse.

Ops, mauvais nom

Pour commencer, la dénomination des chargeurs de démarrage doit être clarifiée:

  • Le nom avec toutes les lettres en majuscule fait référence au chargeur de démarrage (par exemple GRUB, SYSLINUX)

  • Le nom avec la lettre initiale en majuscule fait référence au nom du projet ou à plusieurs ou à toutes les variantes de la famille du chargeur de démarrage (par exemple Syslinux)

  • En particulier, «Syslinux» est une collection de chargeurs de démarrage qui comprend «SYSLINUX», «ISOLINUX», «EXTLINUX» et «PXELINUX»

Suivant la convention de dénomination , la question se réfère en fait à "ISOLINUX" pour le chargeur de démarrage "El Torito sans émulation", pas à "SYSLINUX". Peut-être que ce dernier est utilisé de manière interchangeable avec l'ancien dans l'ancien temps. Pas de soucis alors.

Bref historique

2005: ISOLINUX est choisi pour le chargeur de démarrage de CD Ubuntu, au lieu de GRUB.

GRUB a été suggéré auparavant comme un chargeur de démarrage de remplacement possible, mais cette approche a été essayée dans le CD live de Warty où nous avons observé des régressions significatives de la capacité de démarrage par rapport au CD d'installation utilisant ISOLINUX. Nous pensons que s'en tenir aux solutions basées sur ISOLINUX est l'approche la plus appropriée pour une version prise en charge à long terme.

- depuis CdBootloader - Ubuntu Wiki

2006: gfxboot a été ajouté; Cela prend en charge les informations citées en 2010.

Dans Dapper, nous avons ajouté gfxboot à nos images de CD amd64 et i386, fournissant un menu de démarrage graphique convivial comme la première chose que les utilisateurs voient lors du démarrage des images de CD Ubuntu sur ces architectures [...]

- depuis PortableGfxboot - Ubuntu Wiki

2009: ISOLINUX (noté SYSLINUX) est toujours utilisé pour démarrer le CD Ubuntu.

Les CD live Ubuntu démarrent toujours à l'aide de SYSLINUX, qui n'inclut pas la prise en charge du démarrage du noyau en mode graphique. Cela signifie que les CD en direct affichent un menu de démarrage graphique, puis reviennent en mode texte pour démarrer le noyau, et reviendront ensuite normalement en mode graphique plus tard. En conséquence, les CD live scintillent actuellement plus que les systèmes installés normaux au démarrage.

- de BootGraphicsArchitecture - Wiki Ubuntu

2010: ISOLINUX a été utilisé, mais GRUB 2 est nécessaire pour la prise en charge UEFI.

Les CD Ubuntu actuels utilisent ISOLINUX, avec les extensions gfxboot de SuSE implémentant des menus graphiques.

Cela s'est révélé assez difficile à maintenir, avec une seule personne dans Ubuntu qui comprend le code de thème impliqué [...]

[Depuis] GRUB 2 a récemment ajouté une prise en charge des menus graphiques en amont, le passage à cela a le potentiel de réduire notre charge de maintenance. Il semble probable que nous devrons utiliser GRUB 2 de toute façon afin de prendre en charge EFI, et devoir configurer deux chargeurs de démarrage différents sur nos CD serait indésirable.

- de FoundationsTeam / Specs / MaverickCDBoot - Ubuntu Wiki

Conformément à la base-m-grub2-boot-framebuffer, nous devrons examiner notre capacité à prendre en charge les menus de démarrage graphiques dans EFI. GRUB a un certain niveau de support pour les graphiques UGA et GOP.

Cela nécessite d'utiliser GRUB pour le démarrage du CD, ou au moins d'avoir le strict minimum de configuration pour le prendre en charge [...]

- de FoundationsTeam / Specs / MaverickUefiSupport - Ubuntu Wiki

Différences trouvées ou non

Après un bref historique, nous comprenons maintenant que:

  • ISOLINUX a été préféré car GRUB avait des régressions à l'époque (2005)

  • ISOLINUX était toujours préféré malgré le manque de prise en charge du démarrage du noyau en mode graphique qui provoque un scintillement pendant la transition de démarrage (2009)

  • ISOLINUX a été utilisé avec gfxboot pour fournir un menu graphique, qui n'était pas implémenté ou impossible avec GRUB à l'époque (2010)

  • GRUB a été ajouté plus tard pour démarrer avec le support UEFI depuis Maverick (post-2010)

Ensuite, j'ai réalisé que ce n'est pas la différence entre GRUB et SYSLINUX qui a fait d'Ubuntu live CD inclure deux chargeurs de démarrage.

Raisons fondamentales

D'après ma lecture, ces faits justificatifs ont en fait laissé entendre que:

  1. Ubuntu live CD a utilisé un chargeur de démarrage particulier qui avait un meilleur support pour fournir un menu graphique et un thème, et une transition en douceur pour montrer les éclaboussures de démarrage. Dans ce cas, SYSLINUX (précisément ISOLINUX).

  2. Lorsque les systèmes UEFI sont devenus de plus en plus courants, seul Ubuntu avait inclus GRUB (précisément GRUB 2) dans le CD live Ubuntu pour démarrer avec le support UEFI.

Surtout, je crois que cela répond à la question que je me posais depuis plus d'un an et cette réponse a finalement mis ma curiosité au repos.

TL; DR GRUB et ISOLINUX sont tous deux utilisés dans Ubuntu live CD pour des raisons exclusives; Les deux ont été inclus dans le CD live pour une meilleure expérience de démarrage et une meilleure prise en charge matérielle.

clearkimura
la source
Bonne recherche. Les informations sur grub avant environ 2009/10 avec Ubuntu étaient héritées de grub. Ubuntu est ensuite passé à grub2 par défaut. Je ne pense pas que grub legacy a ensuite fonctionné avec UEFI, bien que de nombreuses fonctionnalités permettant à grub legacy de fonctionner avec des systèmes plus récents aient souvent été réalisées par une distribution.
oldfred
6

Ceci est ma réponse préliminaire, qui permet de mieux comprendre une partie de ma question mais ne répond toujours pas à la question elle-même.

Quelques clarifications ci-dessous:

  • Contrairement à l'image ISO 32 bits, l'image ISO 64 bits comprend en fait GRUB et SYSLINUX (cela est confirmé par /boot/grubet les /isolinuxrépertoires se trouvent tous les deux dans l'image ISO)
  • GRUB s'affiche lorsque l'image ISO est démarrée sur une machine compatible EFI.
  • SYSLINUX s'affiche lorsque l'image ISO est démarrée sur une machine uniquement BIOS.
  • Plymouth gère l'animation du point de progression, quel que soit GRUB ou SYSLINUX affiché (cela a été correctement suggéré par @muru dans le premier commentaire)

Expérience de démarrage : j'ai écrit "compatible EFI" car même ma machine a implémenté EFI, j'avais désactivé la fonction "Secure Boot" (1,2) afin de démarrer Ubuntu (Xubuntu 14.04 dans mon cas) à partir de Live USB.

  1. La version 64 bits de Xubuntu 14.04 est capable de démarrer lorsque le démarrage sécurisé est activé, après avoir été installé sur le disque local (pas Live USB).

  2. La version 64 bits de Xubuntu 16.04 est capable de démarrer lorsque le démarrage sécurisé est activé.

Méthode éprouvée : Au lieu d'essayer avec un support DVD physique et de démarrer à partir d'un lecteur optique externe, j'avais plutôt utilisé un logiciel de virtualisation (VirtualBox 4.3 dans mon cas) pour prouver les cas ci-dessus.

  • VirtualBox 4.3 a déjà une option pour basculer entre EFI et le système BIOS, peut être trouvé sous Machine> Paramètres> Système> Carte mère - Fonctionnalités étendues: Activer EFI (OS spéciaux uniquement) . Par défaut, l'option n'est pas cochée (3).

  • Une machine virtuelle doit être créée à l'aide de la version 64 bits de VirtualBox, exécutée sur un système hôte 64 bits. Une image ISO 64 bits Xubuntu 14.04 est utilisée dans mes tentatives suivantes.

  • Première tentative: j'ai exécuté l'image ISO avec les paramètres par défaut (cela suppose un système BIOS). La machine virtuelle affichera un fond violet avec des icônes en bas. Voici SYSLINUX .

  • Deuxième tentative: j'ai fermé la machine et je suis allé aux paramètres, j'ai vérifié l'option (3) pour activer EFI. En utilisant la même image ISO, j'ai redémarré la machine virtuelle. Cette fois, il a fallu un certain temps avant qu'il ne s'affiche GNU GRUB version...avec du texte monochrome. C'est GRUB .

  • Dans les deux cas, le processus de démarrage en cours affiche une animation de points de progression lors du démarrage.

  • Cette section de page sur Ubuntu Wiki a inclus des captures d'écran pour décrire les deux cas ci-dessus.

Avertissement : Cette réponse vise à clarifier l'expérience de démarrage et la méthode essayée. Cependant, ce n'est pas la réponse finale à ma question. La réponse finale sera publiée séparément, si j'ai réussi à répondre moi-même à la question.

clearkimura
la source
Merci pour cette information! J'ai réussi à démarrer le démarrage à partir de l'USB uniquement lorsque j'utilise rufos l'image .iso qui a créé syslinux au démarrage, mais pas avec la commande "dd <iso>" - que j'ai remarqué qu'il ne crée pas syslinux. Le truc c'est qu'ubuntu de hdd a du grub. Je ne comprends donc pas pourquoi grub fonctionne avec hdd, mais pas avec usb.
ransh
@ransh Vous voudrez peut-être comprendre "quelle méthode installe quel chargeur de démarrage" et ce QA ne règle pas cela. Vous devriez poser la vôtre en tant que nouvelle question , car le commentaire n'est pas à discuter.
clearkimura