Como um gerenciador de inicialização funciona e funciona de maneira diferente em máquinas BIOS e UEFI?

Como um gerenciador de inicialização funciona e funciona de maneira diferente em máquinas BIOS e UEFI?

Depois de ler muito online, começo a ficar cada vez mais confuso sobre como funciona o gerenciador de boot. Percebi que o gerenciador de boot, como o rEFInd, não é uma atualização ou algo relacionado ao firmware (corrija-me se estiver errado). Agora tenho o seguinte entendimento:

Para máquinas BIOS, seria de esperar que o firmware do BIOS reconhecesse todos os discos presentes no computador (ele não reconhece partições em nenhum disco). Digamos que a máquina tenha um disco rígido interno e um CD externo conectado a ela. Então o BIOS permite que você escolha um deles e leia o carregador de boot no MBR do disco rígido ou CD. Agora, suponha que você tenha Windows e Linux instalados no disco rígido. Aí vem a parte que não tenho certeza, se você instalou o GRUB, tanto um gerenciador de boot quanto um carregador de boot, isso significa que depois de escolher inicializar a partir do disco rígido, o carregador de boot GRUB é lido e executado, o que invoca o Gerenciador de inicialização GRUB? então o gerenciador de inicialização GRUB reconhece os diferentes sistemas que você tem em sua máquina e invoca o carregador de inicialização para Windows ou o carregador de inicialização para Linux, que ainda faz parte do GRUB?

Para máquinas UEFI, parece que o firmware já é um gerenciador de boot, pois reconhece a tabela de partições e todos os discos conectados ao computador. Portanto, tudo que você precisa é gravar o carregador de boot na partição do sistema EFI e o firmware permitirá que você escolha qual carregador de boot deseja usar no momento da inicialização. Isso está certo? Porém, noto que ainda existe um gerenciador de boot como o rEFInd disponível para máquinas UEFI, para que servem então se o firmware já está agindo como um gerenciador de boot. Além disso, o rEFInd é considerado firmware ou apenas algum aplicativo instalado na partição do sistema EFI de um disco específico?

Responder1

Qualquer código executado antes do sistema operacional principal ser iniciado e envolvido na inicialização de outros programas é um gerenciador de inicialização. A maioria dos computadores, até mesmo a maioria dos dispositivos incorporados, possui uma cadeia de gerenciadores de inicialização: código em ROM ou memória flash que carrega outro trecho de código da memória flash ou de uma unidade de disco, que carrega outro trecho de código e assim por diante. O BIOS é um bootloader (e pode ter), reFInd é um bootloader, Grub é um bootloader, etc.

Alguns gerenciadores de inicialização não fazem nada além de carregar outro trecho de código e ramificar para ele, mas a maioria executa tarefas adicionais, como leitura de dados de configuração, detecção de periféricos conectados, teste de hardware, inicialização de dispositivos, enumeração de dispositivos de armazenamento e rede para determinar o que carregar em seguida, exibição de mensagens na tela, ouvindo a entrada do usuário para permitir que ele influencie o processo de inicialização, etc.

Um gerenciador de inicialização é um tipo específico de gerenciador de inicialização que inclui uma maneira de o usuário selecionar entre vários sistemas operacionais. O gerenciador de inicialização Grub realmente não “invoca” o gerenciador de inicialização Grub, a funcionalidade do gerenciador de inicialização é um aspecto do Grub.

Alguns BIOS legados de PC possuem recursos básicos de gerenciamento de inicialização, pois permitem ao usuário selecionar entre alguns dispositivos; é limitado porque o BIOS legado só pode carregar os primeiros 512 bytes de um disco e executar código neles. UEFI possui um gerenciador de inicialização mais poderoso que permite ao usuário selecionar entre arquivos em uma partição FAT.

Se os bootloaders contam como firmware depende exatamente de como você define o firmware. Pela definição “fornecido com o hardware do computador, em vez de instalado em um dispositivo de armazenamento”, BIOS e UEFI são firmware, mas reFInd e Grub não são. Pela definição “independente do sistema operacional”, reFInd e Grub são firmware.

informação relacionada