Como a configuração de inicialização do UEFI é alterada durante a inicialização do Fedora?

1

Toda vez que eu inicializo um sistema instalado pelo UEFI do Fedora 27, ele mexe com as entradas do gerenciador de inicialização EFI. Por exemplo:

  1. Como root, altero a ordem de inicialização de modo que a entrada do Fedora não seja a primeira. E / ou eu apago a entrada do Fedora.
  2. Na inicialização, no menu de inicialização do UEFI do sistema, inicializo uma entrada de inicialização de disco rígido genérica.
  3. Isso inicializa o Fedora bem.
  4. Como root, verificando com efibootmgr eu vejo que o Fedora de alguma forma conseguiu adicionar uma entrada para si (se foi deletado antes) e colocar essa entrada na frente da ordenação de inicialização.

Este comportamento faz sentido para instalações padrão, mas não tanto se o Fedora estiver instalado em um dispositivo USB que você deseja inicializar para o trabalho de resgate, sem alterar implicitamente as entradas do gerenciador de inicialização EFI.

Assim, qual parte do Fedora é responsável por essas mudanças de tempo de inicialização? E como isso pode ser desativado?

edit: Outra experiência:

Como root, exclua todas as entradas de inicialização do Fedora com efibootmgr e altere o bootorder para incluir apenas uma entrada genérica (000C).

Inclua efibootmgr no initramfs (usando dracut).

Reinicialize e solte no shell dracut.

efibootmgr agora imprime:

BootCurrent: 000C
BootOrder: 000A,0000,...
...
Boot000A* Fedora    HD(2,GPT,...)/File(\EFI\fedora\shimx64.efi)
Boot000C* UEFI Misc Device 2    PciRoot(0x0)/Pci(0x5,0x0)...
...

O BootCurrent é como esperado, a mudança no BootOrder (contém tudo agora) e a nova entrada do Fedora é inesperada.

Assim, algo entre o shell de emergência shutdown -r now e o initramfs alterou a configuração do gerenciador de inicialização EFI.

É possível que o firmware UEFI tenha feito essa alteração, mas não vejo como ele derivaria o nome 'Fedora' e o caminho /EFI/fedora/shimx64.efi .

    
por maxschlepzig 11.03.2018 / 09:39

2 respostas

3

É o calço.

Com uma instalação padrão do Fedora, o EFI/BOOT/BOOTX64.EFI é um shim (para suportar inicialização segura) que também executa alguns lógica de fallback que restaura a entrada do gerenciador de boot do Fedora. O nome 'Fedora' vem do arquivo EFI/fedora/BOOTX64.CSV .

A lógica de fallback pode ser desativada por meio da remoção do código de fallback e da cópia dos bits do grub no diretório BOOT , ou seja:

cd /boot/efi/EFI
rm BOOT/fallback.efi BOOT/fbx64.efi
cp fedora/grub*.efi BOOT
cp fedora/MokManager.efi BOOT

A configuração padrão pode ser restaurada removendo os arquivos copiados e reinstalando os pacotes:

rm /boot/efi/EFI/fedora/*.efi
dnf reinstall grub2-efi-x64 shim-x64
    
por 11.03.2018 / 19:05
1

Pode haver algum script de inicialização ou arquivo systemd unit executando efibootmgr -c com as opções apropriadas, então você pode querer executar:

grep -r efibootmgr /etc /lib/systemd /usr

para localizar qualquer menção ao efibootmgr em quaisquer scripts que possam ser executados no momento da inicialização. Em seguida, leia os suspeitos prováveis para descobrir se existe uma maneira projetada de desligá-los.

Por outro lado, também pode ser seu firmware UEFI tentando ser "útil": registrar automaticamente quaisquer carregadores de inicialização inicializados usando um nome de dispositivo UEFI genérico, sob a suposição de que algo pode ter eliminado o registro existente. Nesse caso, um relatório de bug para o fornecedor do sistema ou da placa-mãe pode ser apreciado.

    
por 11.03.2018 / 09:49

Tags