Qual é a diferença entre o GRUB e o SYSLINUX?

8

Esta questão está relacionada à minha descoberta de que o Ubuntu e sua derivada usam ambos os bootloaders SYSLINUX e GRUB em imagens ISO para versões Desktop .

Ao inicializar a partir de imagem ISO de 32 bits , diz-se que SYSLINUX lida com o processo de inicialização (a inicialização mostra bela tela inicial, com animação de ponto de progresso).

Mas ao inicializar a partir de imagem ISO de 64 bits , o GRUB é usado (a tela preta e branca, mostrando claramente GNU GRUB version... na parte superior da tela). / p>

Assim, para reformular minha pergunta, quais são as diferenças que fizeram o Ubuntu usar o GRUB e o SYSLINUX em suas imagens ISO? Por que não usar apenas um deles?

Para esclarecimentos

Esta questão tem sido confusa devido à minha falta de esclarecimento e disponibilidade de hardware. Eu adicionei esta resposta (ou role para baixo) para explicar melhor a imagem ISO de 64 bits.

Qual resposta não é

O comentário abaixo já deu uma ideia, mas devo deixar claro aqui. A resposta é não porque qualquer um deles suporta a EFI corretamente. Esta questão teve como objetivo descobrir mais por razões fundamentais, em vez de apenas o apoio da EFI.

Digamos, se isso for solicitado de outra maneira, por exemplo, "Por que tanto o GRUB quanto o SYSLINUX são usados nas imagens ISO?" então isso pode dar uma resposta como: "O GRUB está incluído para suportar sistemas com capacidade EFI e o SYSLINUX sempre foi incluído e funciona em sistemas somente com BIOS" - o que não é minha intenção.

Devo admitir que o apoio da EFI provavelmente faz parte da resposta.

No entanto, sinto que não deve ser a única coisa na resposta. Deve haver mais do que apenas suporte a EFI, o que fez com que o Ubuntu incluísse dois bootloaders em suas imagens ISO, sim? Ou será que o apoio da EFI é a única diferença? Ajude-me a responder isso, se houver.

    
por clearkimura 23.07.2015 / 21:28

2 respostas

7

Esta é a minha resposta final, que é baseada em informações encontradas pela correspondência de palavras-chave em mais de 2000 páginas em esta listagem no Ubuntu Wiki . O que eu encontrei foram notas datadas de desenvolvimento e especificações do Ubuntu (leia-se: palavras, palavras, palavras), de modo que me levou algum tempo para chegar a essa resposta.

Ops, nomeação incorreta

Para começar, a nomeação dos carregadores de boot deve ser esclarecida:

  • O nome com todas as letras maiúsculas refere-se ao carregador de boot (por exemplo, GRUB, SYSLINUX)

  • O nome com letra maiúscula inicial refere-se ao nome do projeto ou a várias ou todas as variantes da família do carregador de inicialização (por exemplo, Syslinux)

  • Em particular, 'Syslinux' é uma coleção de gerenciadores de inicialização que inclui 'SYSLINUX', 'ISOLINUX', 'EXTLINUX' e 'PXELINUX'

Seguindo a convenção de nomenclatura , a questão está se referindo a "ISOLINUX" para "El Torito não-emulação "bootloader, não " SYSLINUX ". Talvez o último seja usado de maneira intercambiável com o primeiro nos velhos tempos. Não importa, então.

Breve histórico

2005: O ISOLINUX é escolhido para o carregador de inicialização do CD do Ubuntu, ao invés do GRUB.

% bl0ck_qu0te%

2006: o gfxboot foi adicionado; Isso suporta informações citadas em 2010.

% bl0ck_qu0te%

2009: ISOLINUX (conhecido como SYSLINUX) ainda é usado para inicializar o CD do Ubuntu.

% bl0ck_qu0te%

2010: ISOLINUX foi usado, mas o GRUB 2 é necessário para suporte a UEFI.

% bl0ck_qu0te%

Diferenças encontradas ou não

Após uma breve história, agora entendemos que:

  • ISOLINUX foi preferido devido ao GRUB ter regressões na época (2005)

  • O ISOLINUX ainda era preferido apesar da falta de suporte para iniciar o kernel no modo gráfico que causa oscilações durante a transição de inicialização (2009)

  • ISOLINUX foi usado com o gfxboot para fornecer menus gráficos, o que não foi implementado ou não foi possível com o GRUB na época (2010)

  • O GRUB foi adicionado posteriormente para inicializar com suporte a UEFI desde Maverick (pós-2010)

Então, percebi que não é a diferença entre o GRUB e o SYSLINUX que fez o live CD do Ubuntu incluir dois gerenciadores de inicialização.

Razões fundamentais

De minha leitura, esses fatos de apoio, na verdade, sugeriram que:

  1. O Live CD do Ubuntu tem usado um gerenciador de inicialização especial que tinha melhor suporte para fornecer menus gráficos e temas, além de uma transição suave para mostrar inicializações de inicialização. Neste caso, SYSLINUX (precisamente ISOLINUX).

  2. Quando os sistemas UEFI tornaram-se cada vez mais comuns, somente o Ubuntu incluiu o GRUB (precisamente GRUB 2) no Live CD do Ubuntu para inicializar com o suporte a UEFI.

Acima de tudo, acredito que isso responda à pergunta que eu tive por mais de um ano e essa resposta finalmente acabou com minha curiosidade.

TL; DR GRUB e ISOLINUX são usados no live CD do Ubuntu por motivos exclusivos; Ambos foram incluídos no CD ao vivo para melhor experiência de inicialização e suporte de hardware.

    
por clearkimura 19.10.2016 / 10:18
4

Esta é a minha resposta preliminar, que faz com que uma parte da minha pergunta seja melhor compreendida, mas ainda não responde à pergunta em si.

Alguns esclarecimentos abaixo:

  • Diferentemente da imagem ISO de 32 bits, a imagem ISO de 64 bits inclui GRUB e SYSLINUX (isso é confirmado pelos diretórios /boot/grub e /isolinux encontrados na imagem ISO)
  • O GRUB é exibido quando a imagem ISO é inicializada em uma máquina compatível com EFI.
  • O SYSLINUX é exibido quando a imagem ISO é inicializada na máquina somente do BIOS.
  • Plymouth lida com a animação de ponto de progresso, independentemente do GRUB ou SYSLINUX ser mostrado (isso foi corretamente sugerido por @muru no primeiro comentário)

Discrepância na experiência de inicialização

Eu escrevi "EFI-able" porque mesmo a minha máquina implementou o EFI, eu desliguei o recurso Secure Boot [* 1] [* 2] para inicializar o Ubuntu (Xubuntu 14.04 no meu caso) do Live USB.

[* 1] O release de 64 bits do Xubuntu 14.04 é capaz de inicializar enquanto o Secure Boot está ativado, após ter sido instalado no disco local (não Live USB).

[* 2] O release de 64 bits do Xubuntu 16.04 é capaz de inicializar enquanto o Secure Boot está ativado.

Método de clarificação

Em vez de tentar com mídia de DVD física e inicializar a partir de uma unidade óptica externa, eu usei software de virtualização (VirtualBox 4.3 no meu caso) para provar casos acima.

  • O VirtualBox 4.3 já tem uma opção para alternar entre o sistema EFI e o sistema BIOS, pode ser encontrado em Máquina > Configurações > Sistema > Placa-mãe . Na guia, procure por Recursos estendidos: [] Habilite o EFI (apenas sistemas operacionais especiais) . Por padrão, é desmarcado [* 3].

  • Uma máquina virtual deve ser criada usando a versão de 64 bits do VirtualBox, em execução no sistema host de 64 bits. Uma imagem ISO de 64 bits do Xubuntu 14.04 é usada nas minhas tentativas a seguir.

  • Primeira tentativa: Eu corri a imagem ISO com configurações padrão (isso pressupõe um sistema BIOS). A máquina virtual mostrará o plano de fundo roxo com ícones na parte inferior. Isso é SYSLINUX .

  • Segunda tentativa: fechei a máquina e fui para as configurações, marquei a opção [* 3] para habilitar o EFI. Usando a mesma imagem ISO, iniciei a máquina virtual novamente. Desta vez, demorou algum tempo até mostrar GNU GRUB version... com texto monocromático. Isso é GRUB .

  • Em ambas as tentativas, o processo de inicialização continuará mostrando a animação do ponto de progresso durante a inicialização.

  • Esta seção da página no Ubuntu Wiki incluiu capturas de tela para descrever os dois casos acima. / p>

Aviso de isenção

Esta resposta pretende fornecer explicações para a discrepância na experiência de inicialização e o método de clarificação. No entanto, isso não é a resposta final à minha pergunta. A resposta final será postada separadamente, se eu conseguir responder a pergunta.

    
por clearkimura 11.08.2015 / 19:32