Os bootloaders não aparecem na UEFI

1

Estou usando um Thinkpad T440p com um único disco rígido, ele está configurado para o modo somente UEFI (Inicialização segura desativada). Toda vez que eu usei para instalar um sistema operacional entradas correspondentes apareceria no UEFI para inicializar esses sistemas operacionais.

Desta vez, quando instalei o Debian 9 e o Windows 10, nenhuma entrada apareceu. Ainda posso inicializar os dois sistemas copiando o grub para /EFI/Boot/bootx64.efi na partição EFI e, em seguida, informando o UEFI para inicializar o disco rígido.

Como posso obter o UEFI para mostrar entradas para /EFI/debian/grubx64.efi e /EFI/Microsoft/Boot/bootmgfw.efi novamente?

A redefinição do UEFI não alterou nada. O uso do efibootmgr no Linux para adicionar manualmente as entradas cria entradas que aparecem no efibootmgr (marcado como ativo) durante as reinicializações, mas elas não aparecem na UEFI real e, portanto, não podem ser usadas.

Qual é o mecanismo por trás disso? Um instalador do SO deve adicionar uma entrada ao UEFI ou o UEFI deve encontrar automaticamente novos arquivos .efi na partição EFI?

    
por ralftoringo 23.06.2017 / 00:32

1 resposta

2

Para responder à sua pergunta final primeiro: Quando um sistema operacional é instalado em um computador baseado em EFI, ele deve registrar seu carregador de boot com o EFI, que armazena um ponteiro para esse gerenciador de inicialização no NVRAM. As distribuições Linux usam a ferramenta efibootmgr para isso, mas outros SOs possuem outras ferramentas com funcionalidade semelhante. (A Microsoft estendeu a ferramenta bcdedit para registrar seu gerenciador de inicialização com a EFI, por exemplo). Pelo menos um sistema operacional (FreeBSD) não faz isso; ele armazena seu carregador de boot usando o nome de arquivo de fallback ( EFI/BOOT/bootx64.efi ), que IMHO é uma má escolha - mas se eles não tiverem um equivalente de efibootmgr , pode ser sua única opção. Não conheço nenhuma EFI que procure ativamente por carregadores de inicialização com nomes arbitrários, embora eles inicializem o nome do arquivo de fallback se nada mais estiver presente. Alguns também tratam o gerenciador de inicialização da Microsoft ( EFI/Microsoft/Boot/bootmgfw.efi ) como um nome de arquivo de fallback.

Parece que sua EFI e suas entradas NVRAM ficaram confusas. Normalmente, recomendo restaurar o firmware para os padrões, na esperança de que essa ação corrija o problema, mas você já fez isso. Talvez você deva remover entradas estranhas com efibootmgr ou algo similar e tente redefinir a NVRAM. ( Não remove tudo, porém, eu vi EFIs se comportarem muito estranhamente depois que todas as entradas de boot foram removidas. Entradas do OS, como para o Debian e Windows, devem ser seguras para Remova, mas deixe as entradas que são claramente específicas do hardware, como entradas que se referem a modelos de disco rígido ou opções de inicialização PXE.) Removendo essas entradas pode deixar o computador não conseguir inicializar, para que meu O gerenciador de inicialização em uma unidade flash USB ou CD-R pode ser útil; você deve ser capaz de inicializar a partir dele e, em seguida, o rEFInd deve permitir que você inicialize qualquer sistema operacional que detectar, o que você pode usar para recriar as entradas de inicialização de trabalho.

Algumas abordagens adicionais incluem:

  • Remova todos os discos rígidos e inicialize o computador. Isso pode "chutar as calças" e consertar o problema de inicialização.
  • Atualize seu firmware. Até mesmo uma "atualização" para a mesma versão pode ajudar (embora o utilitário de atualização possa recusar uma atualização sem atualização). Uma atualização pode corrigir um bug que está causando o problema, mas tão importante quanto isso, pode redefinir algumas variáveis ou espaço de armazenamento que nem mesmo a operação de redefinição para padrão está tocando.

Estas são ambas medidas de desespero com uma pequena chance de sucesso, então não tenha esperanças. No entanto, ambos valem a pena tentar, IMHO. Esteja preparado com um disco de emergência rEFInd, já que qualquer um pode limpar qualquer entrada de inicialização que você já tenha.

Se o seu sistema estiver completamente sujo e não puder ser consertado, você pode tentar colocar o gerenciador de inicialização preferido no disco como EFI/BOOT/bootx64.efi e configurá-lo para fornecer opções de inicialização para seus outros sistemas operacionais. Existem computadores que quebraram EFIs que exigem essa abordagem mesmo quando são novíssimos, e não me surpreenderia saber das EFIs que podem ser quebradas para exigir essa solução, apesar de terem funcionado bem no passado.

    
por 24.06.2017 / 16:15