Utilizando o efibootmgr para tornar a unidade uma prioridade de inicialização permanente sem reordenar toda a ordem de inicialização

3

Estou tentando escrever um script que é executado no initramfs que usa o efibootmgr para definir permanentemente a maior prioridade de inicialização sem precisar reatribuir a ordem de inicialização.

efibootmgr -n 000A , por exemplo, é perfeito para isso, pois define a unidade 000A como a prioridade de inicialização, mas apenas para a próxima inicialização. efibootmgr -o requer que listemos todas as unidades e reatribuamos sua ordem, o que complica o script, pois eu teria que pegar esses valores e analisá-los de volta ao comando efibootmgr para reordenar.

Existe uma maneira de mudar a prioridade de inicialização, onde eu só tenho que referenciar a unidade que estou tentando priorizar em vez de reescrever a hierarquia?

    
por Shiri 18.12.2015 / 11:06

1 resposta

1

Resposta curta: Não.

Resposta longa: Primeiro, entenda que a EFI não inicializa "unidades", exceto em certos sentidos limitados ou em circunstâncias limitadas. As entradas de inicialização mais comumente usadas, reveladas por efibootmgr , são para programas de boot loader EFI, que são armazenados como arquivos comuns no ESP. Isso pode parecer uma distinção sutil, mas tentar resolver seu problema sem entender é provável que resulte em uma solução com bugs e / ou limitada.

A análise da saída efibootmgr provavelmente será necessária para fazer o que você deseja fazer. Isso não deveria ser muito difícil; entender alguns comandos comuns usados em scripts Bash, como grep e cut , levará um longo caminho.

Como alternativa, se seu objetivo for restaurar uma ordem de inicialização perdida devido a uma EFI com bugs, você poderá examinar o programa fallback.efi . AFAIK, não está disponível no Ubuntu, mas vem com o Fedora. Este programa irá restaurar um conjunto de variáveis de inicialização NVRAM de um arquivo se elas forem perdidas. Ele deve ser colocado no diretório EFI/BOOT e iniciado a partir do Shim (que o inicia automaticamente), para que as entradas de inicialização do firmware sejam restauradas, caso sejam perdidas. Essa abordagem tem alguns problemas, como sobrecarregar o ESP com ainda mais arquivos e criar novos arcos através dos quais você deve pular se quiser alterar as entradas de inicialização, mas pode ser o que você precisa.

    
por Rod Smith 21.12.2015 / 19:47