Praticamente. A inicialização via modo EFI envolve duas coisas:
- Arquivos do carregador de inicialização gravados na partição do sistema EFI (ESP) no disco rígido.
- Ponteiros para os arquivos baseados em ESP armazenados na NVRAM na placa-mãe.
A intenção é que você possa instalar quantos carregadores de inicialização quiser e fornecer uma ordem na qual o computador deve testá-los. Os usuários também devem poder substituir esse pedido usando o gerenciador de inicialização interno de seus computadores. Em princípio, isso deve simplificar bastante as configurações de inicialização múltipla.
Infelizmente, muitos computadores excluem entradas da NVRAM que apontam para dispositivos que não estão disponíveis quando o computador inicializa. Assim, quando você troca discos, pode perder a capacidade de inicializar a partir deles. IMHO, isso é uma falha de design no EFI.
Felizmente, há uma solução relativamente fácil, mas requer alguma previsão para implementar: Além dos locais do carregador de boot armazenados, um especial existe: EFI\BOOT\boot{arch}.efi
, em que {arch}
é um código de arquitetura - normalmente x64
para sistemas x86-64 (AMD64). Este local é tentado se nenhuma outra entrada de inicialização funcionar. É normalmente usado em mídia removível, mas a maioria das EFIs também o usará como um substituto para discos rígidos. Portanto, se você copiar o GRUB ou algum outro carregador de inicialização válido para EFI\BOOT\bootx64.efi
no ESP (normalmente /boot/efi/EFI/BOOT/bootx64.efi
no Ubuntu), o disco permanecerá inicializável mesmo se as entradas de inicialização do EFI forem excluídas. Observe que você pode precisar copiar também a configuração do carregador de inicialização e os arquivos de suporte.
FWIW, o Fedora tem um gerenciador de inicialização chamado fallback.efi
, que foi projetado para restaurar entradas NVRAM excluídas. Eu não examinei profundamente, mas colocar isso na EFI\BOOT\bootx64.efi
location deve corrigir este problema também. O último que ouvi foi que algumas EFIs (quebradas) fazem com que esse arquivo seja executado em cada inicialização, e o resultado é um número cada vez maior de entradas de inicialização. Esse bug pode ter sido corrigido até agora, mas eu não o verifiquei recentemente.