Qual è la differenza tra GRUB e SYSLINUX?


13

Questa domanda è correlata alla mia scoperta che Ubuntu e il suo derivato utilizzano sia bootloader SYSLINUX che GRUB su immagini ISO per le versioni desktop .

Quando si avvia da un'immagine ISO a 32 bit , si dice che SYSLINUX gestisce il processo di avvio (l'avvio che mostra una bella schermata iniziale, con animazione a punti progressivi).

Ma quando si avvia da un'immagine ISO a 64 bit , viene utilizzato invece GRUB (lo schermo in bianco e nero, chiaramente visibile GNU GRUB version...nella parte superiore dello schermo).

Quindi, per riformulare la mia domanda, quali sono le differenze che hanno fatto sì che Ubuntu usasse GRUB e SYSLINUX nelle sue immagini ISO? Perché non usare solo uno dei due invece?

Per chiarire

Questa domanda è stata in qualche modo confusa a causa della mia mancanza di chiarimenti e disponibilità hardware. Ho aggiunto questa risposta (o scorrere verso il basso) per spiegare meglio l'immagine ISO a 64 bit.

Quale risposta non lo è

Il thread di commento qui sotto ha già dato qualche idea, ma dovrei chiarire qui. La risposta non è perché nessuno dei due supporta EFI correttamente. Questa domanda mirava a scoprire di più sulle ragioni fondamentali, piuttosto che sul solo supporto EFI.

Dì, se questo dovesse essere chiesto in altro modo, ad esempio "Perché sia ​​GRUB che SYSLINUX sono utilizzati nelle immagini ISO?" allora questo potrebbe dare una risposta del tipo "GRUB è incluso per supportare sistemi compatibili con EFI e SYSLINUX è sempre stato incluso e funziona su sistemi solo BIOS" - che non è mia intenzione.

Devo ammettere che il supporto EFI è probabilmente parte della risposta.

Tuttavia, ritengo che non dovrebbe essere l'unica cosa nella risposta. Ci deve essere molto di più del semplice supporto EFI, che ha fatto sì che Ubuntu includesse due bootloader nelle loro immagini ISO, sì? Oppure, è davvero il supporto EFI essere l'unica differenza? Aiutami a rispondere a questa domanda, se presente.


L'animazione del punto di avanzamento dovrebbe arrivare in entrambi i casi, supponendo che non ci sia nulla di sbagliato nella grafica. E perché dici Live CD e Live USB in grassetto, quando la differenza è tra l'immagine UEFI a 64 bit e altre immagini? Hai provato l'immagine UEFI su un CD e hai ottenuto Syslinux?
Muru,

Ciò aumenterebbe la confusione, poiché GRUB è utilizzato solo dall'immagine che supporta UEFI a 64 bit e non dagli altri. Vorrei suggerire l'altro modo: rilasciare la dicitura "live CD / USB" e attenersi alle immagini che hai usato, perché è qui che si trovano le differenze.
Muru,

1
Bene, ho sostituito le parole chiave di conseguenza: Live CD -> immagine ISO a 32 bit; Live USB -> immagine ISO a 64 bit.
clearkimura,

Syslinux è un caricatore di avvio del BIOS. Utilizzato per entrambe le versioni a 32 e 64 bit su partizioni formattate FAT32. Si tratta di un caricatore di avvio di tipo Windows solo per BIOS. Grub2 viene utilizzato solo con l'avvio UEFI. Probabilmente potrebbero usare grub2 con BIOS, ma ora è sempre stato più grande e storicamente hanno usato syslinux. Non sono sicuro del perché. Alcuni piccoli vantaggi per i diversi bootloader in modo da sapere in che modo si sta avviando, UEFI o BIOS.
oldfred

@oldfred Il filesystem dell'immagine ISO è ISO9660 e non è FAT32. Apparentemente Syslinux funziona anche su macchine supportate da EFI, quindi perché usare ancora sia Syslinux che Grub?
clearkimura,

Risposte:


14

Questa è la mia risposta finale, che si basa sulle informazioni trovate abbinando la parola chiave all'interno di oltre 2000 pagine in questo elenco su Ubuntu Wiki . Quello che ho trovato sono note datate sullo sviluppo e le specifiche di Ubuntu (leggi: parole, parole, parole), quindi mi ci è voluto del tempo per raggiungere questa risposta.

Ops, denominazione sbagliata

Innanzi tutto, la denominazione dei bootloader deve essere chiarita:

  • Il nome con tutte le lettere maiuscole si riferisce al boot loader (ad es. GRUB, SYSLINUX)

  • Il nome con la lettera iniziale in maiuscolo si riferisce al nome del progetto o, diverse o tutte le varianti della famiglia del boot loader (es. Syslinux)

  • In particolare, "Syslinux" è una raccolta di caricatori di avvio che include "SYSLINUX", "ISOLINUX", "EXTLINUX" e "PXELINUX"

In seguito alla convenzione di denominazione , la domanda si riferisce in realtà a "ISOLINUX" per il bootloader "El Torito no-emulation", non "SYSLINUX". Forse il secondo è usato in modo intercambiabile con il primo ai vecchi tempi. Non importa, quindi.

Breve storia

2005: ISOLINUX viene scelto per il caricatore di avvio per CD di Ubuntu, anziché per GRUB.

GRUB è stato suggerito in precedenza come possibile caricatore di avvio sostitutivo, ma questo approccio è stato provato nel CD live di Warty, dove abbiamo osservato regressioni significative nella avviabilità rispetto al CD di installazione che utilizza ISOLINUX. Riteniamo che attenersi alle soluzioni basate su ISOLINUX sia l'approccio più appropriato per una versione supportata a lungo termine.

- da CdBootloader - Ubuntu Wiki

2006: gfxboot è stato aggiunto; Questo supporta le informazioni citate nel 2010.

In Dapper, abbiamo aggiunto gfxboot alle nostre immagini di CD amd64 e i386, fornendo un menu di avvio grafico intuitivo come la prima cosa che gli utenti vedono quando avviano immagini di CD di Ubuntu su quelle architetture [...]

- da PortableGfxboot - Ubuntu Wiki

2009: ISOLINUX (indicato come SYSLINUX) viene ancora utilizzato per l'avvio del CD di Ubuntu.

I CD live di Ubuntu si avviano ancora usando SYSLINUX, che non include il supporto per l'avvio del kernel in modalità grafica. Ciò significa che i CD live visualizzano un menu di avvio grafico, quindi tornano alla modalità testo per avviare il kernel e torneranno normalmente alla modalità grafica in un secondo momento. Di conseguenza, al momento dell'avvio i CD live sfarfalleranno più dei normali sistemi installati.

- da BootGraphicsArchitecture - Ubuntu Wiki

2010: ISOLINUX è stato utilizzato, ma GRUB 2 è necessario per il supporto UEFI.

Gli attuali CD di Ubuntu usano ISOLINUX, con le estensioni gfxboot di SuSE che implementano i menu grafici.

Ciò si è rivelato piuttosto difficile da mantenere, con una sola persona in Ubuntu che comprende il codice tematico coinvolto [...]

[Dal momento che] GRUB 2 ha recentemente aggiunto supporto grafico ai menu a monte, passando a quello ha il potenziale per ridurre il nostro carico di manutenzione. Sembra probabile che dovremo comunque utilizzare GRUB 2 per supportare EFI e non sarebbe auspicabile configurare due caricatori di avvio diversi sui nostri CD.

- da FoundationsTeam / Specs / MaverickCDBoot - Ubuntu Wiki

In base a foundations-m-grub2-boot-framebuffer, dovremo esaminare la nostra capacità di supportare i menu di avvio grafici in EFI. GRUB ha un certo livello di supporto per la grafica UGA e GOP.

Ciò richiede l'utilizzo di GRUB per l'avvio da CD o almeno il minimo indispensabile di configurazione per supportarlo [...]

- da FoundationsTeam / Specs / MaverickUefiSupport - Ubuntu Wiki

Differenze rilevate o meno

Dopo una breve storia, ora capiamo che:

  • L'ISOLINUX era preferito a causa del fatto che GRUB aveva regressioni allora (2005)

  • ISOLINUX era ancora preferito nonostante la mancanza di supporto per l'avvio del kernel in modalità grafica che causasse sfarfallio durante la transizione di avvio (2009)

  • ISOLINUX è stato utilizzato con gfxboot per fornire menu grafici, che non era implementato o impossibile con GRUB allora (2010)

  • GRUB è stato aggiunto in seguito per l'avvio con il supporto UEFI da Maverick (post 2010)

Poi, mi sono reso conto che è non è la differenza tra GRUB e SYSLINUX che ha reso Live CD di Ubuntu includono due boot loader.

Ragioni fondamentali

Dalla mia lettura, questi fatti a sostegno hanno effettivamente suggerito che:

  1. Ubuntu live CD utilizza un particolare boot loader che aveva un supporto migliore per fornire menu e temi grafici e una transizione graduale per mostrare lo splash di avvio. In questo caso, SYSLINUX (precisamente ISOLINUX).

  2. Quando i sistemi UEFI sono diventati sempre più comuni, solo Ubuntu aveva incluso GRUB (precisamente GRUB 2) nel CD live di Ubuntu per l'avvio con il supporto UEFI.

Soprattutto, credo che questo risponda alla domanda che avevo da più di un anno e questa risposta ha finalmente messo fine alla mia curiosità.

TL; DR GRUB e ISOLINUX sono entrambi utilizzati nel CD live di Ubuntu per motivi esclusivi; Entrambi sono stati inclusi nel CD live per una migliore esperienza di avvio e supporto hardware.


Buona ricerca. Le informazioni su grub prima del 2009/10 circa con Ubuntu erano eredità di grub. Ubuntu è quindi passato a grub2 come predefinito. Non credo che Grub Legacy abbia poi lavorato con UEFI, anche se molte funzioni per far funzionare Grub Legacy con sistemi più recenti sono state spesso realizzate da una distribuzione.
oldfred,

6

Questa è la mia risposta preliminare, che rende migliore una parte della mia domanda, ma non risponde ancora alla domanda stessa.

Alcuni chiarimenti di seguito:

  • A differenza dell'immagine ISO a 32 bit, l'immagine ISO a 64 bit in realtà include sia GRUB che SYSLINUX (questo è confermato da /boot/grube /isolinuxentrambe le directory si trovano nell'immagine ISO)
  • GRUB viene visualizzato quando l'immagine ISO viene avviata su una macchina compatibile con EFI.
  • SYSLINUX viene visualizzato quando l'immagine ISO viene avviata su una macchina solo BIOS.
  • Plymouth gestisce l'animazione del punto di avanzamento, indipendentemente da GRUB o SYSLINUX (questo è stato correttamente suggerito da @muru nel primo commento)

Esperienza di avvio : ho scritto "compatibile con EFI" perché anche la mia macchina ha implementato EFI, avevo disattivato la funzione "Secure Boot" (1,2) per avviare Ubuntu (nel mio caso Xubuntu 14.04) da Live USB.

  1. Xubuntu 14.04 a 64 bit è in grado di avviarsi mentre Secure Boot è attivato, dopo che è stato installato sul disco locale (non Live USB).

  2. La versione a 64 bit di Xubuntu 16.04 è in grado di avviarsi mentre l'avvio protetto è attivato.

Metodo provato : Invece di provare con un supporto DVD fisico e avviare da un'unità ottica esterna, avevo usato il software di virtualizzazione (VirtualBox 4.3 nel mio caso) invece di provare i casi precedenti.

  • VirtualBox 4.3 ha già un'opzione per passare dal sistema EFI al BIOS e si trova in Macchina> Impostazioni> Sistema> Scheda madre - Funzionalità estese: abilita EFI (solo sistemi operativi speciali) . Per impostazione predefinita, l'opzione è deselezionata (3).

  • È necessario creare una macchina virtuale utilizzando la versione a 64 bit di VirtualBox, in esecuzione sul sistema host a 64 bit. Un'immagine ISO Xubuntu 14.04 a 64 bit viene utilizzata nei seguenti tentativi.

  • Primo tentativo: ho eseguito l'immagine ISO con le impostazioni predefinite (questo presuppone un sistema BIOS). La macchina virtuale mostrerà uno sfondo viola con icone in basso. Questo è SYSLINUX .

  • Secondo tentativo: ho chiuso la macchina e sono andato alle impostazioni, ho selezionato l'opzione (3) per abilitare EFI. Utilizzando la stessa immagine ISO, ho riavviato la macchina virtuale. Questa volta, ci è voluto del tempo prima che venga visualizzato GNU GRUB version...con testo monocromatico. Questo è GRUB .

  • In entrambi i tentativi, il processo di avvio in corso mostrerà l'animazione del punto di avanzamento durante l'avvio.

  • Questa sezione della pagina su Ubuntu Wiki ha incluso schermate per descrivere i due casi precedenti.

Dichiarazione di non responsabilità : questa risposta intende chiarire l'esperienza di avvio e il metodo provato. Tuttavia, questa non è la risposta finale alla mia domanda. La risposta finale verrà pubblicata separatamente, se sono riuscito a rispondere autonomamente alla domanda.


Grazie per questa informazione! Sono riuscito ad avviare l'avvio da USB solo quando ho usato rufos l'immagine .iso che ha creato syslinux all'avvio, ma non con il comando "dd <iso>" - che ho notato che non crea syslinux. Il fatto è che Ubuntu di HDD ha grub. Quindi non capisco, perché grub funziona con HDD, ma non con USB.
riscatto

@ransh Potresti voler capire "quale metodo installa quale bootloader" e questo QA non risolve questo problema. Dovresti porre la tua come nuova domanda , poiché il commento non è da discutere.
Clearkimura,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.