Como o bootloader legado / UEFI sabe onde encontrar o bootloader do estágio dois?

2

A maioria dos sistemas aos quais fui exposto formata seus discos de maneira muito simples, com apenas boot e rootfs partitions. Outros também têm recovery (como o Windows) e swap , mas estou tentando simplificar.

Eu não li nenhum padrão que especifique em qual partição o gerenciador de inicialização deve estar. Eu nunca li nada sobre se há para ser uma partição de inicialização. Naturalmente, a designação de uma partição como boot é irrelevante; nós só precisamos de alguma partição que é carregada na memória e executada pelo estágio um bootloader (legado / UEFI).

Então, minha pergunta é: Como o bootloader do estágio um encontra o bootloader do segundo estágio? Isso:

  • Espera uma tabela de partições?

  • Leia a tabela de partições do disco (ou qualquer meio que você está inicializando) e verifique cada um para um arquivo inicializável?

  • Espera que o bootloader de segundo estágio esteja na primeira partição?

Eu assumirei o segundo da lista acima, mas isso é resultado de apenas especulação. Eu uso o Linux como um sistema operacional principal, mas imagino que esse processo de inicialização inicial seja agnóstico do sistema operacional.

    
por sherrellbc 29.07.2016 / 15:59

1 resposta

3

Precisamos diferenciar entre o sistema legado (BIOS) e o UEFI porque eles são muito diferentes. Em um PC não UEFI ou em um PC UEFI rodando no modo legado, o processo de inicialização é assim: primeiro O BIOS carrega o setor de inicialização do MBR na RAM e inicia a execução da inicialização código. Porque o setor de inicialização tem apenas 512 bytes e também contém a tabela de partições, o setor de inicialização não pode conter código compreende os componentes internos dos sistemas de arquivos mais simples. GRUB resolve isso instalando código adicional nos setores 1-62 no disco rígido dirigir. Esta área da unidade é mais ou menos "terra de ninguém" entre o setor de inicialização e o início da primeira partição. Este assim chamado "Estágio 1.5" pode ler arquivos de um sistema de arquivos e carrega o GRUB Stage 2 e arquivos de configuração do diretório / boot.

O firmware na memória flash da placa-mãe evoluiu desde o início primeiros dias da BIOS. Considerando que o BIOS é capaz de ler o primeiro setor de um conjunto fixo de dispositivos, os sistemas UEFI mais modernos entender o sistema de arquivos FAT32 diretamente no firmware. Quando um UEFI inicialização do sistema, ele primeiro procura pela partição do sistema EFI. O disco contendo a partição do sistema deve ter uma Tabela de Partição GUID (GPT) e a partição do sistema é reconhecida pelo seu GUID fixo. O sistema partição deve ser uma partição FAT32 a partir do qual o firmware lê e executa o gerenciador de inicialização. Alternativamente, o primeiro programa a ser carregado também pode ser um gerenciador de boot, que permite ao usuário escolher qual boot loader (e consequentemente qual sistema operacional) deve ser executado. O UEFI também pode ser configurado usando variáveis que são armazenado em memória não volátil na placa-mãe.

    
por 02.09.2016 / 22:02