Em um sistema de dual boot, como o BIOS escolhe qual bootloader deve ser executado?

21

Eu tenho uma inicialização dupla do Windows e Ubuntu. Quando eu ligo a máquina, a BIOS faz o POST e depois disso o bootloader é iniciado.

Eu quero entender como o BIOS escolhe qual bootloader deve ser executado. Eu quero saber o processo acontecendo entre o BIOS e o bootloader em um computador de inicialização dupla.

    
por Prashant Singh 29.11.2017 / 10:58

3 respostas

36

O firmware do BIOS não escolhe realmente o bootloader. Ele carrega o código do setor 0 de uma unidade e o executa. O que quer que esteja lá, será executado. Espero que seja um bootloader (ou algo que carregue um bootloader), mas não precisa ser. Nos primeiros dias do PC, você tinha jogos em disquetes que simplesmente eram inicializados e executados sem um SO - agora eles são chamados de "inicializadores".

O firmware UEFI realmente entende as partições e os sistemas de arquivos e verifica as unidades para um tipo de partição do Sistema UEFI. Como este é um sistema de arquivos, vários gerenciadores de inicialização podem ser colocados aqui. O firmware UEFI deve fornecer um menu ou outra maneira de selecionar qual bootloader é usado.

Muitos sistemas UEFI estão inicializando no "Modo legado" - no qual o UEFI carrega um "Compatibility Service Module" - algo que faz com que pareça um BIOS - e funciona como o BIOS.

O GRUB é um gerenciador de boot de código aberto comum que pode inicializar o Linux ou "chainload" (dar controle a) um gerenciador de inicialização do Windows (geralmente winload.exe na pasta Boot de uma partição do Windows). O GRUB é o que está lhe dando a capacidade de tomar uma decisão. O GRUB pode ler arquivos de configuração e escolher sua opção padrão.

Leia este se você quero detalhes copiosos e sangrentos.

    
por LawrenceC 29.11.2017 / 15:22
10

Este diagrama mostra como o controle passa do firmware (BIOS ou UEFI) para o gerenciador de inicialização e do carregador de inicialização para o sistema operacional no Ubuntu.


BIOSvs.UEFI

SeosSOsforaminstaladosemmodosdiferentes(BIOSeUEFI),oWindowsdualbooteoUbuntunãofuncionam.

  • Analise link na seção sobre Como converter o Ubuntu no modo UEFI .

  • O bootloader grub também pode ser convertido na direção oposta do UEFI para o BIOS. Linux pode inicializar bem a partir de um disco GPT no modo BIOS. Veja esta resposta: Converta de EFI para inicialização do BIOS

por karel 29.11.2017 / 12:37
7

No modo legado (inicialização do BIOS e não UEFI), o BIOS controla a ordem dos discos. Era uma vez isto costumava ser controlado pelos cabos; mas mudar uma configuração da BIOS é melhor que abrir a caixa & mudando os cabos.

O BIOS carrega (na memória) o primeiro setor (512 bytes de disco chamado MBR ou registro mestre de inicialização) do primeiro disco (ou ordem de unidade controlada pelo BIOS) e então passa o controle (CPU) para este 'bootloader'. A BIOS completou assim seu trabalho e o código no primeiro setor é executado.

    
por guiverc 29.11.2017 / 11:15