Inicializando um carregador de inicialização BIOS a partir do modo UEFI

3

Eu tenho uma configuração do Linux que inicializo no modo UEFI com o GRUB. Eu quero experimentar o OpenBSD, que infelizmente não suporta GPT ou UEFI ainda, então particionei uma unidade com uma tabela MBR tradicional e instalei o OpenBSD nesse disco usando o CD de instalação.

Eu então tentei carregar o bootloader do OpenBSD na forma típica do GRUB:

menuentry "OpenBSD" {
    insmod part_msdos
    insmod chain
    set root=(hd1,4)
    chainloader +1
}

mas recebi o "Caminho de arquivo EFI inválido".

É possível encadear um bootloader de BIOS depois de ter inicializado pela primeira vez no modo EFI? Eu posso voltar a selecionar a unidade para inicializar no menu de inicialização da minha placa-mãe, mas uma entrada no menu do GRUB obviamente seria preferível.

    
por Matt Kline 29.03.2015 / 21:22

2 respostas

3

Tanto quanto eu sei, não. Enquanto você pode usar discos particionados por MBR dentro da UEFI, você não pode usar bootloaders no formato BIOS (MBR), já que eles esperam rodar em um sistema "novo", não interno o ambiente preparado pela UEFI. Então o GRUB.efi nem sequer tenta iniciar um; Espera-se que você forneça apenas um caminho .efi.

    
por 29.03.2015 / 22:13
4

Você não pode fazer o que quiser com o GRUB, mas pode fazê-lo de pelo menos duas outras maneiras, pelo menos com a maioria dos computadores baseados em UEFI:

  • Você pode usar o gerenciador de inicialização interno do seu firmware. Normalmente, você acessa isso por meio de uma tecla de função no início do processo de inicialização. Ele deve apresentar opções para inicializar qualquer programa de inicialização do modo EFI instalado (como o GRUB, provavelmente por meio de uma opção com o nome da sua distribuição) e outros (como opções de mídia externa, inicializações de rede e BIOS / CSM / legacy -mode botas). Porém, os detalhes do que aparece variam muito de uma máquina para outra.
  • Você pode usar meu gerenciador de inicialização do rEFInd. Você precisará instalar isso no Linux e editar o refind.conf file: Descomente a linha scanfor e assegure-se de que hdbios seja uma das opções. Você também pode precisar descomentar a opção uefi_deep_legacy_scan , mas isso depende do seu firmware. Se isso gerar muitas opções, você poderá cortar a lista usando a opção dont_scan_volumes . Você pode experimentá-lo sem instalá-lo usando a versão da unidade flash USB, mas precisará editar o arquivo refind.conf .

Observe que essas opções dependem do firmware ter um flexível Compatibility Support Module (CSM). A maioria dos sistemas modernos baseados em UEFI possui um CSM, mas algumas implementações (na maioria das vezes mais antigas) realmente criam UEFI sobre um BIOS, em vez de fornecer um UEFI com um CSM. Esses sistemas mais antigos não podem mudar tão facilmente.

    
por 03.04.2015 / 03:54